Active Directory LDAP-Zugriffe mit mehreren Domain Controllern

Auch in einer Windows-Domänen Umgebung kommt man früher oder später darauf, dass es eine Anwendung gibt die nicht auf Windows und IIS, sondern auf einem Apache läuft, vielleicht mit PHP oder einer anderen Skriptsprache. Sowohl PHP als auch der Apache direkt bieten über LDAP die Möglichkeit einen Domain Controller abzufragen, Beispielsweise zur Authentifizierung.

Spätestens wenn ausgerechnet der Domain-Controller ausgefallen (oder wegen Wartungsarbeiten nicht erreichbar) ist, den die PHP-Scripte zur Authentifizierung benutzen, stellt sich die Frage wie man es einrichtet dass irgend ein verfügbarer Domain Controller genutzt wird. Glücklicherweise sind sowohl PHP als auch das Apache-Modul für diesen Fall vorbereitet, und nutzen sogar das gleiche Prinzip dafür. Man muss lediglich an der Stelle wo der Servername steht mehrere Adressen durch Leerzeichen getrennt eintragen.

PHP-Aufruf:

$conn = ldap_connect("dc01.domain.local dc02.domain.local");
ldap_bind($conn, $username, $password);

Eintrag in der Apache-Konfiguration:

AuthLDAPUrl "ldap://dc01.domain.local:3268 dc02.domain.local:3268/dc=domain,dc=local?sAMAccountName?sub?(objectClass=*)" STARTTLS

Hier muss man darauf achten dass der LDAP-String in Anführungszeichen steht (solange kein Leerzeichen vorkommt funktioniert es auch ohne).

Auf diese Art werden alle angegebenen Server durchprobiert bis einer gefunden wird der erreichbar ist.

Quellen: mod_auth_ldap Dokumentation, Kommentar in der PHP-Dokumentation zu ldap_connect()

Veröffentlicht von

Gerald

Diplom-Informatiker (DH) in Darmstadt. Ich blogge über Entwicklung, Internet, mobile Geräte und Virtualisierung. Meine Beiträge gibt es auch bei Google+ und Facebook.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert