Ich verwende das Symfony-Framework v 2.4.2 , um eine bestehende Website zu aktualisieren, die eine doppelte Überprüfung zum Anmelden von Benutzern durchführt:
ldap_bind()
); Wie kann ich diesen Auth-Prozess in Symfony2 replizieren?
Bisher bin ich bei FOSUserBundle und FR3DLdapBundle stecken geblieben: Ich habe es geschafft, verkettete Provider zu verwenden ( ldap
und db
), aber anscheinend werden LDAP-Anmeldeinformationen vollständig ignoriert : Benutzer können sich mit den in der Datenbank gespeicherten Anmeldeinformationen anmelden, selbst wenn ldap_bind()
fehlschlägt - was genau das genaue Gegenteil der Punkte ist 1 & amp; 2.
Außerdem scheint es bei der Verwendung von FOSUserBundle notwendig, Passwörter in der Datenbank zu speichern.
Bitte beachten Sie Punkt Nr. 2: Benutzern steht es frei, ihr LDAP-Passwort von außerhalb der Website (also von Active Directory) zu ändern und sich dann mit den neuen Anmeldeinformationen anzumelden - ohne die Benutzerdatenbank der Website zu aktualisieren.
Jede Lösung ist willkommen, ich bin nicht so sehr in FOSUserBundle und noch weniger in FR3DLdapBundle verliebt.
Ich habe es so ausgearbeitet:
providers
-Abschnitt in app/config/security.yml
; Sie müssen einen CustomUserProvider für LDAP definieren, der den Benutzer in AD findet und in Ihrer security.yml müssen Sie diesen Provider einstellen ( Benutzerdefinierter Benutzeranbieter )
%Vor%Sie müssen Ihren Dienst auch in Ihrer Firewall aktivieren Im nächsten Schritt erstellen Sie einen benutzerdefinierten Authentifizierungsanbieter für LDAP, der den Benutzer und das Kennwort über LDAP authentifiziert und das Benutzerobjekt aus der DB zurückgibt ( Benutzerdefinierter Authentifizierungsanbieter )
Als Grundlage für diesen Prozess wird zuerst versucht, einen Benutzer in LDAP zu finden, wenn er existiert, wird die Authentifizierung über LDAP fortgesetzt und wenn der Benutzer authentifiziert wird, wird das Benutzerobjekt von der DB zurückgegeben.
Hier ist ein Beispiel für einen benutzerdefinierten Benutzeranbieter
%Vor%Ich nehme an, Sie haben die adLDAP-Klasse, um Benutzer über LDAP zu authentifizieren
Tags und Links authentication symfony active-directory