Por padrão, quando o WAF (Firewall de Aplicativo Web) do Azure Front Door bloqueia uma solicitação devido a uma regra correspondente, ele retorna um código de status 403 com a mensagem "A solicitação está bloqueada". A mensagem padrão também inclui a cadeia de caracteres de referência de acompanhamento usada para vincular a entradas de log para a solicitação.
Neste artigo, você aprenderá a configurar um código de status de resposta personalizado e uma mensagem personalizada com uma cadeia de caracteres de referência para seu caso de uso usando o portal do Azure, o PowerShell ou a CLI do Azure.
Pré-requisitos
Uma conta do Azure com uma assinatura ativa.
Crie uma conta gratuitamente.
Azure Cloud Shell ou Azure PowerShell.
As etapas deste artigo executam os cmdlets do Azure PowerShell interativamente no Azure Cloud Shell. Para executar os cmdlets no Cloud Shell, selecione Open Cloud Shell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e cole-o no Cloud Shell para executá-lo. Você também pode executar o Cloud Shell no portal do Azure.
Você também pode instalar o Azure PowerShell localmente para executar os cmdlets. Este artigo requer o módulo do Azure PowerShell. Se você executar o PowerShell localmente, faça login no Azure usando o cmdlet Connect-AzAccount.
Uma conta do Azure com uma assinatura ativa.
Crie uma conta gratuitamente.
Azure Cloud Shell ou CLI do Azure.
As etapas neste artigo executam os comandos da CLI do Azure interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Abrir Cloud Shell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e colá-lo no Cloud Shell para executá-lo. Você também pode executar o Cloud Shell no portal do Azure.
Você também pode instalar a CLI do Azure localmente para executar os comandos. Este artigo requer a CLI do Azure versão 2.67.0 ou superior e a extensão front-door . Execute o comando az --version para encontrar a versão instalada. Se você executar a CLI do Azure localmente, entre no Azure usando o comando az login.
Para personalizar o código e o corpo do status da resposta, siga estas etapas:
Acesse sua política WAF do Front Door no portal do Azure.
Em Configurações, selecione Configurações de política.
Insira o código de status de resposta personalizado e o corpo da resposta nos campos Bloquear código de status de resposta e Bloquear corpo da resposta, respectivamente.
Observação
O desafio JavaScript e os recursos CAPTCHA estão disponíveis apenas nas políticas do WAF na camada Premium do Azure Front Door.
Clique em Salvar.
Para personalizar o código de status e o corpo da resposta, utilize o cmdlet Update-AzFrontDoorWafPolicy.
# Update WAF policy settings to customize response body and status code
Update-AzFrontDoorWafPolicy `
-Name 'myWAFPolicy' `
-ResourceGroupName 'myResourceGroup' `
-RequestBodyCheck 'Enabled' `
-RedirectUrl 'https://learn.microsoft.com/en-us/azure/web-application-firewall/' `
-CustomBlockResponseStatusCode '403' `
-CustomBlockResponseBody '<html><head><title>WAF Demo</title></head><body><p><h1><strong>WAF Custom Response Page</strong></h1></p><p>Please contact us with this information:<br>{{azure-ref}}</p></body></html>'
Para personalizar o código de status da resposta e o corpo, use o comando az network front-door waf-policy update.
# Update WAF policy settings to customize response body and status code
az network front-door waf-policy update \
--name 'myWAFPolicy' \
--resource-group 'myResourceGroup' \
--request-body-check 'Enabled' \
--redirect-url 'https://learn.microsoft.com/en-us/azure/web-application-firewall/' \
--custom-block-response-status-code '403' \
--custom-block-response-body 'PGh0bWw+PGhlYWQ+PHRpdGxlPldBRiBEZW1vPC90aXRsZT48L2hlYWQ+PGJvZHk+PHA+PGgxPjxzdHJvbmc+V0FGIEN1c3RvbSBSZXNwb25zZSBQYWdlPC9zdHJvbmc+PC9oMT48L3A+PHA+UGxlYXNlIGNvbnRhY3QgdXMgd2l0aCB0aGlzIGluZm9ybWF0aW9uOjxicj57e2F6dXJlLXJlZn19PC9wPjwvYm9keT48L2h0bWw+'
Observação
O valor do --custom-block-response-body parâmetro deve ser uma cadeia de caracteres codificada em base64 .
No exemplo anterior, o código de resposta era mantido como 403 com uma mensagem personalizada: "Contate-nos com essas informações:".
Observação
{{azure-ref}} insere a cadeia de caracteres de referência exclusiva no corpo da resposta. O valor corresponde ao campo TrackingReference nos logs FrontDoorAccessLog e FrontDoorWebApplicationFirewallLog.
Importante
Se você deixar o corpo da resposta de bloqueio em branco, o WAF retornará uma resposta 403 Forbidden para bloqueios WAF normais e uma resposta 429 Too many requests para bloqueios de limite de taxa.
Próxima etapa