auth_request_set

Директива `auth_request_set` устанавливает переменную на основании ответа внутреннего запроса аутентификации.

Синтаксисauth_request_set variable value;
По умолчаниюnone
Контекстhttp, server, location
Аргументы2

Описание

Директива auth_request_set в NGINX используется для определения переменной, которая будет хранить результат внутреннего запроса аутентификации. Как правило, директива принимает два аргумента: имя переменной, которую нужно установить, и тот ответ, который вы хотите проверить (либо код статуса, либо конкретная переменная). В сценариях, когда внутренний запрос аутентификации проходит успешно, переменная устанавливается; если он не проходит, переменная остаётся неустановленной или сбрасывается в начальное состояние.

Эта директива особенно полезна в сочетании с директивой auth_request, поскольку позволяет выполнять более детализированный контроль доступа, оценивая результат запросов аутентификации. Например, в зависимости от значения переменной, установленной auth_request_set, можно выполнять дополнительную логику, обеспечивая разные уровни доступа или обработку ошибок. Если запрос аутентификации возвращает ответ 2xx, это означает успех, тогда как любые ответы 4xx или 5xx указывают на ошибку, что позволяет настраивать реакции на попытки неавторизованного доступа. Размещение директивы auth_request_set гибко: её можно использовать в контекстах http, server или location, что обеспечивает широкую вариативность конфигурации.

Кроме того, важно убедиться, что внутренние запросы аутентификации корректно сконфигурированы и доступны. Поведение добавляемой переменной и её взаимодействие с другими директивами может существенно влиять на маршрутизацию и поведение контроля доступа в NGINX, поэтому при внедрении в рабочую среду требуется тщательное тестирование.

Пример конфига

location /protected {
    auth_request /auth;
    auth_request_set $auth_status $upstream_status;
    error_page 401 = @error401;
} 
location = /auth {
    internal;
    proxy_pass http://backend_auth;
}

Убедитесь, что внутренний URL запроса в auth_request правильно настроен, чтобы избежать недоступных конечных точек.

Будьте осторожны при установке переменной на основе ответа, если запрос может не вернуть корректный код ответа, поскольку это может привести к запутанному поведению при оценке контроля доступа.

Порядок определения переменных с помощью auth_request_set может влиять на их доступность при дальнейшей обработке; убедитесь, что они задаются до того, как на них ссылаются.

← Ко всем директивам