auth_request

Директива auth_request используется для реализации аутентификации на основе субзапросов путём указания location, который будет проверяться перед предоставлением доступа к ресурсу.

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

Описание

auth_request позволяет NGINX выполнять аутентификацию через субзапрос к указанному location. Этот location предназначен для обработки запросов аутентификации, и если субзапрос возвращает код состояния 2xx, доступ к исходному запросу предоставляется. Если ответ отличается от кода 2xx, доступ запрещается и исходный запрос не обрабатывается. \n\nЭта директива может использоваться в различных контекстах, включая http, server и location, что позволяет гибко интегрировать её в разные конфигурации сервера. Аргумент ожидает одно имя location или путь, которые NGINX будет использовать для выполнения проверки аутентификации. Как правило, это назначенная конечная точка, которая обрабатывает логику проверки учётных данных пользователя или условий доступа для обрабатываемого запроса.\n\nПри использовании auth_request важно убедиться, что location для субзапроса правильно настроен для возврата корректного кода состояния в зависимости от результата аутентификации. Субзапрос также может передавать заголовки исходного запроса при необходимости, что позволяет выполнять более сложные проверки аутентификации с учётом информации о клиенте.

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

location /protected {
    auth_request /auth;
}

location = /auth {
    internal;
    # Authentication logic here
    if ($http_authorization = "Bearer valid_token") {
        return 200;
    }
    return 401;
}

Убедитесь, что subrequest location настроен на обработку только запросов internal; в противном случае к нему могут получить доступ клиенты.

Имейте в виду риск каскадных сбоев subrequest, если вложенные locations настроены неправильно, что может привести к неожиданному отказу в доступе.

Ответ от subrequest должен возвращать подходящие HTTP-коды статуса (200 для успеха, другие коды — для отказа), чтобы он корректно обрабатывался.

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