Apache: autenticación básica LDAP verificada pero no requerida

Apache: autenticación básica LDAP verificada pero no requerida

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-Usersiempre 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-Userconjunto establecido en el nombre de usuario proporcionado solo si la contraseña coincide.

Edité la configuración: si comento la Require env noauthlínea, la autenticación básica funciona correctamente.

información relacionada