Модуль ngx_http_auth_request_module
Пример конфигурации Директивы auth_request auth_request_set |
Модуль ngx_http_auth_request_module
(1.5.4+) предоставляет
возможность авторизации клиента, основанной на результате подзапроса.
Если подзапрос возвращает код ответа 2xx, доступ разрешается.
Если 401 или 403 — доступ запрещается с соответствующим кодом ошибки.
Любой другой код ответа, возвращаемый подзапросом, считается ошибкой.
При ошибке 401 клиенту также передаётся заголовок “WWW-Authenticate” из ответа подзапроса.
По умолчанию этот модуль не собирается, его сборку необходимо
разрешить с помощью конфигурационного параметра
--with-http_auth_request_module
.
Модуль может быть скомбинирован с другими модулями доступа, такими как ngx_http_access_module, ngx_http_auth_basic_module и ngx_http_auth_jwt_module, с помощью директивы satisfy.
До версии 1.7.3 ответы на авторизационные подзапросы не могли быть закэшированы (с использованием директив proxy_cache, proxy_store и т.п.).
Пример конфигурации
location /private/ { auth_request /auth; ... } location = /auth { proxy_pass ... proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Original-URI $request_uri; }
Директивы
Синтаксис: |
auth_request |
---|---|
Умолчание: |
auth_request off; |
Контекст: |
http , server , location |
Включает авторизацию, основанную на результате выполнения подзапроса, и задаёт URI, на который будет отправлен подзапрос.
Синтаксис: |
auth_request_set |
---|---|
Умолчание: | — |
Контекст: |
http , server , location |
Устанавливает переменную
в запросе в заданное
значение
после завершения запроса авторизации.
Значение может содержать переменные из запроса авторизации,
например, $upstream_http_*
.