shib_request_set

根据子请求的响应,将 Shibboleth 属性设置到请求头或变量中。

语法shib_request_set attribute_name header_name;
默认值none
上下文http, server, location
参数2

说明

NGINX Shibboleth Auth Request 模块中的 shib_request_set 指令允许用户指定要在 HTTP 请求中设置的 Shibboleth 属性。该指令通过定义从 Shibboleth FastCGI 授权器的响应中接收的属性与原始请求中目标请求头或 NGINX 变量之间的映射来工作。本质上,它可用于传递用户属性,例如电子邮件地址或组成员身份,这些属性可以在 NGINX 的后续处理过程中使用,或发送到后端应用程序。

该指令需要两个关键参数:要设置的属性名称,以及该属性将被存储的目标变量或请求头。第一个参数通常是表示 Shibboleth 属性名称的字符串,而第二个参数指定该值应存储在 NGINX 请求上下文中的位置(例如,作为自定义请求头或特定变量)。这使后端应用程序能够拥有处理已验证请求所需的授权上下文。

但是,必须确保该指令在适当的 NGINX 上下文中使用(httpserverlocation),并与 shib_request 一起使用以确保正确功能。对属性值的处理也必须谨慎管理,以避免头注入或伪造,因为属性在传递过程中可能被恶意者操纵。

配置示例

location /protected {
    shib_request_set user_email X-User-Email;
    shib_request /shibboleth;  
    proxy_pass http://backend;
}

确保在使用 shib_request_set 之前已设置 shib_request 指令,以保证访问控制得以强制执行。

注意可能发生 header injection;如果根据 user attributes 设置 headers,则应验证输入。

Subrequests 不会转发 request body;请确保此行为对您的使用场景是可接受的。

← 返回所有指令