Eu tenho um bloco de localização com um auth_request
como este
location /somepath {
auth_request /authorize;
auth_request_set $header_variable $upstream_http_custom_header;
proxy_path http://backendaddress;
}
O que eu quero fazer é, se $header_variable
não corresponder a um regex específico, quero retornar um código 403.
if
não vai funcionar porque é executado muito cedo. Há mais alguma coisa que me permita fazer isso?
O módulo Nginx auth_request aguarda o código HTTP 200 ou 401/403 do back-end:
Sua solicitação tem um cabeçalho que exige a verificação de permissão:
Durante o ciclo de solicitação/resposta de autenticação, seu back-end precisa verificar o cabeçalho e retornar o código 403 para evitar que a próxima solicitação ocorra sem autenticação. O módulo auth_request funciona como uma simples declaração de teste que retorna um dos códigos. Isso significa que o processo de back-end responsável por esta URL para responder http://backendaddress/authorize precisa ter uma verificação adicional para o cabeçalho obrigatório.