shib_request_set
Устанавливает атрибуты Shibboleth в заголовки запроса или переменные на основе ответа сабзапроса.
Описание
Директива shib_request_set в NGINX Shibboleth Auth Request module позволяет задать атрибут Shibboleth, который будет помещён в HTTP-запрос. Эта директива работает путём определения соответствия между атрибутами, полученными в ответе авторизатора Shibboleth FastCGI, и требуемыми заголовками или NGINX-переменными в исходном запросе. По сути, она позволяет передавать атрибуты пользователя, такие как адрес электронной почты или членство в группах, которые могут быть использованы при последующей обработке NGINX или отправлены на бэкенд-приложения.
Директива требует два ключевых параметра: имя устанавливаемого атрибута и переменную или заголовок назначения, в котором этот атрибут будет сохранён. Первый параметр обычно представляет собой строку с именем атрибута Shibboleth, тогда как второй указывает, где в контексте запроса NGINX значение должно сохраняться (например, в качестве пользовательского заголовка или конкретной переменной). Это позволяет бэкенд-приложениям иметь необходимый контекст авторизации для корректной обработки проверенных запросов.
Однако крайне важно, чтобы эта директива использовалась в правильных контекстах NGINX (http, server и location) и в сочетании с shib_request для обеспечения корректной работы. Обработка значений атрибутов также должна выполняться аккуратно, чтобы избежать внедрения заголовков или подделки со стороны злоумышленников, поскольку атрибуты потенциально могут быть изменены в процессе их передачи.
Пример конфига
location /protected {
shib_request_set user_email X-User-Email;
shib_request /shibboleth;
proxy_pass http://backend;
}Убедитесь, что директива shib_request установлена перед использованием shib_request_set, чтобы гарантировать применение контроля доступа.
Будьте внимательны к возможному внедрению заголовков; проверяйте ввод, если заголовки устанавливаются на основе атрибутов пользователя.
Подзапросы не пересылают тело запроса; убедитесь, что такое поведение приемлемо для вашего сценария использования.