Назад | Перейти на главную страницу

ShibRequestSetting REMOTE_ADDR и Apache RequestHeader

У меня Apache / Shibboleth обслуживает запросы к обратному прокси-серверу и напрямую к веб-клиентам. Когда запрос приходит через прокси, я извлекаю исходный IP-адрес и пытаюсь отправить его в shibboleth. Однако это не работает правильно. У меня по-прежнему появляется ошибка, что IP-адрес не соответствует тому, который использовался при аутентификации с помощью IdP.

В моей конфигурации apache есть следующий блок Location. Я знаю, что 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>