mit PHP per LDAP auf’s ActiveDirectory zugreifen
Dieses kleine Problemchen hat mich diese Woche @work beschäftigt.
Hier mal eine kleine Anleitung wie man per PHP aufs AD zugreift und Daten ausliest:
// zuerst die Verbindung herstellen // $server ist der Domaincontroller // $port ist standardmäßig 389 $server = 'domain.at'; $port = 389; $connectid = ldap_connect($server, $port); // jetzt binden // der Zugriff kann auch anonym erfolgen // dazu einfach $user und $pass weglassen. $user = 'User-mit-Lesezugriff'; $pass = 'Passwort'; $bind = ldap_bind($connectid, $user, $pass); // $bind = ldap_bind($connectid); // wir müssen die BaseDN angeben $basedn = 'ou=Users,dc=domain,dc=at'; // und einen Filter was wir denn wollen // der hier holt uns alle User $filter = '(&(objectClass=User)(objectCategory=person)(cn=*)'; $search = ldap_search($connectid, $basedn, $filter); // in $result stehen dann alle User $result = ldap_get_entries($connectid, $search); // jetzt schließen wir noch die Verbindung ldap_close($connectid); print_r($result);
Der Aufbau des ADs muss bekannt sein, man kann nicht nur nach Personen (person) filtern sondern auch nach Kontakten usw.
Statt “cn” kann man jede andere Eigenschaft die es im AD gibt nehmen, wie zB “email”
Nützliche Links:
ldap_connect(), ldap_bind(), ldap_search(), ldap_get_entries(), ldap_close();