Usando a variável Apache

1

Estou tentando usar o módulo de autenticação OpenID do Apache. De acordo com esta página , eu deveria poder usar a variável REMOTE_USER do Apache para identificar o usuário. Eu gostaria de passar isso como um cabeçalho para um aplicativo upstream (estou usando o Apache para autenticar e fazer proxy reverso).

Minha configuração do site do Apache é a seguinte:

<VirtualHost *:80>

  ProxyPass / http://localhost:3000/
  ProxyPassReverse / http://localhost:3000/

  <Location />
    AuthType OpenID
    require valid-user
    AuthOpenIDAXRequire email http://axschema.org/contact/email @muller\.io$
    AuthOpenIDAXUsername email
    RequestHeader set x-username $REMOTE_USER
  </Location>
</VirtualHost>

Eu pesquisei e pesquisei, mas o máximo que posso encontrar é como usar uma variável de ambiente nesse contexto. Eu verifiquei que uma cadeia de caracteres codificada funciona (na verdade, o acima passa a string "$REMOTE_USER" para o meu aplicativo).

Se mod_auth_openid está definindo a variável REMOTE_USER dentro do Apache , como posso passar esse envio para o meu aplicativo?

    
por Ryan Kennedy 17.04.2014 / 06:32

1 resposta

1

Depois de pesquisar um pouco mais, encontrei esta página com o seguinte código:

 RewriteEngine On
 RewriteCond %{REMOTE_USER} (.+)
 RewriteRule . - [E=RU:%1]
 RequestHeader set REMOTE_USER %{RU}e

Essa foi a bala mágica que consertou para mim. Eu li algumas páginas que sugerem que isso pode estar incorreto (e de fato parece desajeitado), então sinta-se à vontade para recomendar algo melhor.

    
por 17.04.2014 / 06:57