Модуль 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_*.