Wie binden Sie den AD-Server in PHP mit den Anmeldeinformationen der vertrauenswürdigen Domäne?

9

Wir haben mehrere AD-Server mit festgelegter Gesamtstrukturvertrauensstellung, sodass Windows-Benutzer aus verschiedenen Domänen Zugriff auf eingeschränkte Ressourcen erhalten. Angenommen, wir haben domainA.com und domainB.com, sodass sich jeder Benutzer der Domäne domainB.com bei der Ressource domainA.com anmelden kann. Aus Sicherheitsgründen ist der anonyme Zugriff auf LDAP-Server von Administratoren deaktiviert.

Jetzt müssen wir alle Benutzer von allen LDAP-Servern in unserem PHP-Code mit Hilfe des OpenLDAP-Clients auflisten. Unten ist PHP-Code, um Informationen über alle Benutzer von domainB.com

zu erhalten %Vor%

Mein Skript stirbt mit der Nachricht "Kann nicht binden" mit ldap Fehler "49 Ungültige Anmeldeinformationen". Zusätzliche Informationen von AD:
80090308: LdapErr: DSID-0C0903A9, Kommentar: AcceptSecurityContext-Fehler, Daten 52e, v1db1

Ich denke, dass das Problem mit einem einfachen Authentifizierungsmechanismus ist, denn wenn ich die Authentifizierung von GSS Negotiate im Ldap Administrator-Client mit den gleichen Anmeldeinformationen für [email protected] verwende, ist alles in Ordnung.

Was kann ich tun, um eine erfolgreiche Bindung auf domainB.com mit den Anmeldeinformationen von [email protected] durchzuführen?

UPD1 Authentifizierung mit SASL DIGEST-MD5

%Vor%

Logs von AD:

%Vor%     
lisachenko 07.07.2011, 11:12
quelle

2 Antworten

2

Ich habe dieses Problem bei der Konfiguration von Moodle erfahren, das PHP-LDAP-Bibliotheken und OpenLDAP zur Verbindung mit AD-Servern verwendet. Die Lösung war ziemlich einfach und eines von zwei Dingen (was wirklich nur zu einer Sache führte):

  1. Verwenden Sie den nicht beschnittenen Benutzernamen (d. h. kein '@ example.com' nach dem Benutzernamen)
  2. Verwenden Sie die Domäne \ Benutzername

Im Grunde ging es nur um die korrekte, erwartete Syntax für den Benutzernamen. Ich denke, das hängt von der jeweiligen AD-Konfiguration ab, weil ich auf verschiedenen AD-Servern vier verschiedene Arten von Benutzernamen gesehen habe: Voller DN, Bereichsname (sieht zB wie eine E-Mail-Adresse aus), DOMÄNE \ Benutzername und Einfacher Benutzername.

    
JDS 13.01.2012 15:42
quelle
1

Wenn Sie den Benutzer in ldap_bind angeben, können Sie versuchen, Ihren Benutzer-DN wie folgt zu setzen:

%Vor%

Eine andere Sache, in Ihrer ' Active-Directory-Gesamtstruktur ' haben Sie einen oder mehrere Domänencontroller, die ein Verzeichnis namens Globaler Katalog (GC) unterstützen. Der GC enthält alle Objekte aller Verzeichnisse Ihres Waldes.

Bearbeitet Sie können versuchen, mit SASL zu binden

%Vor%     
JPBlanc 08.07.2011 04:08
quelle