Apache – LDAP-Basisauthentifizierung geprüft, aber nicht erforderlich

Apache – LDAP-Basisauthentifizierung geprüft, aber nicht erforderlich

Ich brauche Apache, konfiguriert als Proxy-Pass, um den Authorization: Basic ...Header mit einem LDAP-Server abzugleichen. Dabei wird ein benutzerdefinierter Header gesetzt, wenn die Anmeldeinformationen vorhanden und korrekt sind, aber die Anfrage wird an den nachgelagerten Server weitergeleitet, selbst wenn die Authentifizierung fehlt oder schlicht falsch ist.

Ich habe die folgende Konfiguration versucht:

      <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>

Auf diese Weise X-Authenticated-Userist dies jedoch immer der Fall, (null)auch bei gültigen Anmeldeinformationen. Dies liegt wahrscheinlich daran, dass Apache optimiert und die Prüfung überhaupt nicht durchführt.

Ich könnte es schaffen, (null)wenn das Passwort nicht übereinstimmt oder überhaupt nicht vorhanden ist.

Meine Voraussetzung ist, dass die AnfragestetsWird an den nachgelagerten Server gesendet und X-Authenticated-Usernur dann auf den angegebenen Benutzernamen gesetzt, wenn das Passwort übereinstimmt.

Ich habe die Konfiguration bearbeitet: Wenn ich die Require env noauthZeile kommentiere, funktioniert die Basisauthentifizierung ordnungsgemäß.

verwandte Informationen