Apache2 - Definieren Sie zwei funktionierende Authentifizierungsanbieter

Apache2 - Definieren Sie zwei funktionierende Authentifizierungsanbieter

Ich möchte in meiner Apache2 .htaccess zwei verschiedene Authentifizierungsanbieter definieren, falls einer ausfällt (der gewünschte ist LDAP, aber ich möchte mich auch bei einem LDAP-Ausfall über die lokale htpasswd-Datei anmelden können).

Ich habe es versuchtDasaber ich bekomme es nicht zum Laufen, da Apache sich über einen bereits definierten Authentifizierungstyp beschwert.

Wenn ich beide Authentifizierungstypen in meiner site.conf definiere, kann ich mich nicht über die lokale htpasswd-Datei anmelden, da die Zeile „Require“ die richtige LDAP-Gruppe sicherstellt und die lokale Datei diese Regel nicht verarbeiten kann, da sie nur benötigt Require valid-user.

          Require ldap-group CN=admins,OU=Groups,OU=main,DC=my,DC=tld

Antwort1

Wenn Sie sowohl den fileals auch den ldapAuthentifizierungsanbieter angegeben haben (mithilfe der AuthBasicProvider ldap fileDirektive), können Sie den folgenden Regelsatz definieren, um sich von beiden aus authentifizieren zu können. Ich gehe davon aus, dass Sie das uidAttribut als Benutzernamen verwenden, aber wenn nicht, sollte es nicht zu schwer sein, die folgende Bedingung umzuschreiben.

<RequireAny>
    <RequireAll>
        Require valid-user
        Require ldap-group cn=admins,ou=groups,out=main,dc=my=dc=tld
    </RequireAll>
    <RequireAll>
        Require valid-user
        Require not ldap-attribute uid="%{REMOTE_USER}"
    </RequireAll>
</RequireAny>

Der Benutzer wird also authentifiziert, wenn eine der folgenden Bedingungen zutrifft:

  1. Der Benutzer ist gültig und hat die richtige LDAP-Gruppenmitgliedschaft. In diesem Fall muss der Benutzer vom ldapBackend authentifiziert worden sein.
  2. Das uidAttribut des Benutzers stimmt nicht mit dem angegebenen Benutzernamen überein, dennoch ist der Benutzer gültig. Dies kann nur passieren, wenn das uidAttribut nicht vorhanden ist. Wenn dies jedoch der Fall ist, ldapkonnte der Anbieter den Benutzer nicht in der LDAP-Datenbank finden. In diesem Fall wurde die Gültigkeit der Benutzeranmeldeinformationen vom fileAnbieter bestimmt.

verwandte Informationen