
Eu preciso do Apache, configurado como passagem de proxy, para verificar o Authorization: Basic ...
cabeçalho em um servidor LDAP, definindo um cabeçalho personalizado se as credenciais existirem e estiverem corretas, mas passando a solicitação para o servidor downstream, mesmo se a autenticação estiver ausente ou totalmente errada.
Tentei a seguinte configuração:
<Location ~ /my/path/(.*)/my/resource(/.+)?>
AuthType Basic
AuthName "Login with user id"
AuthBasicProvider ldap
AuthUserFile /dev/null
AuthLDAPURL "my LDAP url"
AuthLDAPBindDN "my bind variables"
AuthLDAPBindPassword ******
RequestHeader set X-Authenticated-User %{AUTHENTICATE_uid}e
SetEnv 1 noauth
<RequireAny>
Require valid-user
Require env noauth
</RequireAny>
ProxyPreserveHost On
ProxyPass http://downstream.server/my/other/path/$1/$2
ProxyPassReverse http://downstream.server/my/other/path/$1/$2
</Location>
Mas desta forma X-Authenticated-User
está sempre (null)
mesmo com credenciais válidas, provavelmente porque o Apache otimiza e não realiza a verificação.
Eu poderia conseguir isso (null)
se a senha fosse incompatível ou não estivesse presente.
Minha exigência é que a solicitação sejasempreenviado para o servidor downstream, com o X-Authenticated-User
nome de usuário fornecido somente se a senha corresponder.
Editei a configuração: se eu comentar a Require env noauth
linha a autenticação básica funciona corretamente.