
Necesito Apache, configurado como paso de Proxy, para verificar el Authorization: Basic ...
encabezado con un servidor LDAP, configurando un encabezado personalizado si las credenciales existen y son correctas, pero pasando la solicitud al servidor descendente incluso si falta la autenticación o si es completamente incorrecta.
Probé la siguiente configuración:
<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>
Pero de esta manera X-Authenticated-User
siempre está (null)
parejo con credenciales válidas, probablemente porque Apache optimiza y no realiza ninguna verificación.
Podría lograr tenerla (null)
si la contraseña no coincide o no está presente en absoluto.
Mi requisito es que la solicitud seasiempreenviado al servidor descendente, con el X-Authenticated-User
conjunto establecido en el nombre de usuario proporcionado solo si la contraseña coincide.
Edité la configuración: si comento la Require env noauth
línea, la autenticación básica funciona correctamente.