shib_request_set

Устанавливает атрибуты Shibboleth в заголовки запроса или переменные на основе ответа сабзапроса.

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

Описание

Директива 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, чтобы гарантировать применение контроля доступа.

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

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

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