shib_request
Директива `shib_request` настраивает NGINX для выполнения аутентификации Shibboleth путём отправки подзапроса к указанному FastCGI authorizer URI.
Описание
Директива shib_request используется внутри NGINX для включения аутентификации Shibboleth путём направления входящих запросов к службе авторизации, определённой указанным URI. Эту директиву можно установить либо в действительный URI, указывающий на NGINX location block of a FastCGI authorizer, либо в 'off' для отключения аутентификации. Когда она включена, NGINX обрабатывает входящий запрос и инициирует подзапрос к назначенному URI. Если авторизатор возвращает успешный ответ аутентификации, NGINX может извлечь атрибуты пользователя из заголовков ответа и прикрепить их к исходному запросу, позволяя бэкенд-приложениям использовать эти данные. Напротив, если авторизация не удачна, клиенту возвращаются статус ошибки и заголовки, обеспечивая соответствующее управление доступом.
Крайне важно понимать, что при использовании shib_request тело запроса не пересылается авторизатору, и любой контент тела из ответа авторизатора не будет возвращён клиенту. Поскольку директива shib_request срабатывает на фазе доступа, её можно комбинировать с другими модулями управления доступом в NGINX. Необходима аккуратная конфигурация для обеспечения безопасной обработки заголовков, чтобы предотвратить подделку конфиденциальной информации. Модули должны использоваться правильно, чтобы избежать непредсказуемого поведения, особенно при совместном использовании разных методов авторизации в одном location блоке.
Пример конфига
location /protected {
shib_request /auth;
}
location /auth {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}Убедитесь, что указанный URI ссылается на действительный location block, который обрабатывает Shibboleth authorization.
Не рассчитывайте, что request body будет переслан в authorizer, это может ограничить функциональность некоторых приложений.
Смешивание Shibboleth и других authorization modules в одном location может привести к непроверенному поведению, поэтому используйте с осторожностью.