ShibRequestSetting Configuração de REMOTE_ADDR e Apache RequestHeader

1

Eu tenho o Apache / Shibboleth atendendo solicitações para um proxy reverso e diretamente para os clientes da web. Quando um pedido vem através do proxy, eu extraio o endereço IP original e tento enviá-lo para o shibboleth. No entanto, isso não parece estar funcionando corretamente. Ainda me dá um erro que o endereço IP não corresponde ao usado quando autenticado com o IdP.

Eu tenho o seguinte bloco de localização na configuração do meu apache. Eu sei que REMOTE_ADDR é pelo menos enviado para o shibd desde quando eu o configurei como X-Forwarded-Para o erro inclui toda a cadeia de IPs de proxy, mas o seguinte não funciona e apenas mostra o endereço IP do último proxy como não correspondendo ao IP de autoria.

<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>
    
por Argothian 17.11.2014 / 23:57

0 respostas