Proxy do Apache: passando em REMOTE_USER para o servidor backend

2

Estamos usando o shibboleth para autenticação. Nosso provedor de serviços shibboleth está executando em um host que está executando o apache com configuração de proxy reverso (mod_proxy). Os aplicativos que usam o shibboleth estão executando no backend, nenhum SP está instalado nesses servidores. Estamos recebendo todos os cabeçalhos shibboleth nos servidores de back-end.

Agora preciso que a variável REMOTE_USER preenchida pela autenticação shibboleth no servidor proxy esteja disponível no servidor backend. Eu consegui obter o valor em HTTP_REMOTE_USER e passá-lo nos servidores de back-end, mas estou lutando para colocar esse valor em REMOTE_USER no servidor de back-end.

Eu gostaria de saber qual é a diferença entre HTTP_REMOTE_USER e REMOTE_USER e como manipular REMOTE_USER da configuração do apache sem fazer autenticação real.

    
por Wouter 10.06.2009 / 14:09

2 respostas

0

Eu queria fazer exatamente o mesmo que você com shibboleth. Mas infelizmente eu encontrei isso nos documentos correspondentes do apache . REMOTE_USER faz parte do padrão CGI, portanto, não pode ser modificado com as diretivas do apache.

It is not possible to override or change the standard CGI variables using the environment manipulation directives.

    
por 17.06.2009 / 21:49
0

Você pode enviar o valor de REMOTE_USER na string de consulta enviada para seus servidores de back-end:

RewriteCond %{LA-U:REMOTE_USER} (.*)
RewriteRule ^/test.asp(.*) test.asp?userid=%{LA-U:REMOTE_USER} [QSA,P,L] 

O LA-U significa olhar para frente. Do manual do mod_rewrite :

%{LA-U:variable} can be used for look-aheads which perform an internal (URL-based) sub-request to determine the final value of variable. This can be used to access variable for rewriting which is not available at the current stage, but will be set in a later phase.

For instance, to rewrite according to the REMOTE_USER variable from within the per-server context (httpd.conf file) you must use %{LA-U:REMOTE_USER} - this variable is set by the authorization phases, which come after the URL translation phase (during which mod_rewrite operates).

    
por 17.06.2009 / 17:38