ShibRequestSetting REMOTE_ADDR 设置和 Apache RequestHeader

ShibRequestSetting REMOTE_ADDR 设置和 Apache RequestHeader

我使用 Apache/Shibboleth 向反向代理和 Web 客户端直接发送请求。当请求通过代理时,我会提取原始 IP 地址并尝试将其发送到 shibboleth。但是,这似乎无法正常工作。它仍然显示错误,提示 IP 地址与使用 IdP 进行身份验证时使用的 IP 地址不匹配。

我的 apache 配置中有以下位置块。我知道 REMOTE_ADDR 至少会被发送到 shibd,因为当我将其设置为 X-Forwarded-For 时,错误包括整个代理 IP 链,但以下内容不起作用,仅显示最后一个代理的 IP 地址与经过身份验证的 IP 不匹配。

<Location />
    SetEnvIf X-FORWARDED-FOR "^.+$" DenyRequest
    SetEnvIf Remote_Addr "^XXX\.XXX\.XXX\.XXX$" !DenyRequest
    Order allow,deny
    Deny from env=DenyRequest
    Allow from all
    SetEnvIf Remote_Addr "^(.+)$" RealAddress=$1
    SetEnvIf X-Forwarded-For "^(\d{1,3}+\.\d{1,3}+\.\d{1,3}+\.\d{1,3}+).*" RealAddress=$1
    RequestHeader set X-RealAddress %{RealAddress}e
    AuthType shibboleth
    ShibRequestSetting requireSession 1
    ShibRequestSetting REMOTE_ADDR X-RealAddress
    Require user
</Location>

相关内容