mit PHP per LDAP auf’s ActiveDirectory zugreifen

Sonntag 3. Dezember 2006, 14:23 von Michi
» php
» Tags:

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();

Post to Facebook Post to Twitter Post to MySpace Post to Ping.fm Send Gmail Post to Google Buzz Post to LinkedIn Post to Delicious