Mit PHP im IIS unter Windows Server via sicheres LDAP auf ActiveDirectory zugreifen

Wer sollte nicht schon immer mal aus PHP auf ActiveDirectory zugreifen. Und das ganze am besten noch SSL-Geschützt über LDAPS (Port 636). Und das gnaze auch noch auf einem Windows Server 2003 mit IIS … wuah … aber in bestimmten Situationen geht es nicht anders.

Wie man PHP im IIS einbindet werde ich hier nicht beschreiben. Allerdings sollte man das LDAP-Modul auch laden. Dazu entfernt man einfach den Kommentar in der Zeile “;extension=php_ldap.dll”. Aber noch nicht genug. In der Standardeinstellung versucht das LDAP-Modul bei einer Verbindung über SSL das Zertifikat zu prüfen. Dies scheitert meistens und man erhält die Fehlermeldung ” ldap_bind(): Unable to bind to server: Can’t contact LDAP server”. Unschön. Um die Zertifikatsprüfung abzuschalten, erstellt man auf Laufwerk C: des Servers den Ordner  “C:\openldap\sysconf” und legt dort eine Datei namens “ldap.conf” ab. Hier können nun Einstellungen für das OpenLDAP-Modul gesetzt werden. Um die Zertifikatsprüfung abzuschalten, reicht es hier die Zeile “TLS_REQCERT never” einzutragen. Anschließend sollte man den IIS “WWW-Publishingdienst” neustarten.

Eine Verbindung zum LDAP-Server stellt man nun mit PHP wie folgt her:


$ldap->user="user@ad.firma.de"; // Benutzername in form LOGON@DOMÄNE
$ldap->password="12345"; // Passwort des Benutzers
$ldap->server="ad.firma.de"; // LDAP-Server, bei AD-Domänen kann einfach der Domänenname angegeben werden
/* Verbindung mit dem LDAP-Server herstellen */
$ldap->conn=ldap_connect("ldaps://".$ldap->server, 636); // Verbinde mit Server über LDAPS auf Port 636
ldap_set_option($ldap->conn, LDAP_OPT_PROTOCOL_VERSION, 3); // Verwende LDAP Protokoll version 3
ldap_set_option($ldap->conn, LDAP_OPT_REFERRALS, 0); // Referenzen nicht folgen
/* Nun melden wir uns am LDAP-Server an (LDAP-BIND)*/
$ldap->bind=ldap_bind($ldap->conn,$ldap->user,$ldap->password); // Verbindung herstellen

Nun könnte man im LDAP Suchanfragen oder andere Dinge unter den Rechten des Bind-Benutzers starten. Viel Spaß.

Comments are closed.