Jump to content

AD mit LDAP auslesen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Leute, folgenden Code benutze ich um mein LDAP auszulesen, leider bleibt bei mir die Seite einfach weiss!

PHP funktioniert, XAMPP funktioniert, DC ist an, User ist Domäneadministrator, wäre eigentlich alles vorhanden :)

 

<?php

 

echo "<html><head>";

echo "<title>LDAP-Zugriff auf ein Active Directory</title>";

echo "</head><body>";

 

// *** Parameter für den LDAP-Zugriff ***

// Adresse des Domänencontrollers:

$ldap_server = "ldap://10.10.1.1";

// Konto für den Zugriff:

$auth_user = "Admin@domäne.loc";

$auth_pass = "standard";

 

// Mit Server verbinden:

if (!($connect=@ldap_connect($ldap_server))) {

die("Keine Verbindung zum Verzeichnis-Server möglich.");

}

// Diese Parameter sind nötig für den Zugriff auf ein Active Directory:

ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);

ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);

 

// An Server binden:

if (!($bind=@ldap_bind($connect, $auth_user, $auth_pass))) {

die("Bind fehlgeschlagen.");

}

 

// BaseDN festlegen:

$base_dn = "OU=UserGruppe,DC=domäne,DC=local";

// LDAP filter setzen: Nur Kontakt- und Benutzer-Objekte sollen zurückgegeben werden

$filter = "(|(objectClass=contact)(objectClass=user))";

 

// Suche starten:

if (!($search=@ldap_search($connect,$base_dn,$filter))) {

die("Durchsuchen des LDAP-Servers fehlgeschlagen.");

}

$anzahl = ldap_count_entries($connect,$search);

// Ergebnis der Suche in der Variablen $info ablegen:

$info = ldap_get_entries($connect, $search);

 

// Nur die relevanten Teile des $info-Arrays in ein $ergebnis-Array übernehmen:

// (Verbessert die Übersichtlichkeit)

// Hinweis: utf8_decode dekodiert Umlaute richtig.

for ($i=0; $i<$anzahl; $i++) {

$ergebnis[$i]["objectclass"] = $info[$i]["objectclass"][3];

$ergebnis[$i]["displayname"] = utf8_decode($info[$i]["displayname"][0]);

$ergebnis[$i]["givenname"] = utf8_decode($info[$i]["givenname"][0]);

$ergebnis[$i]["sn"] = utf8_decode($info[$i]["sn"][0]);

$ergebnis[$i]["mail"] = $info[$i]["mail"][0];

$ergebnis[$i]["telephonenumber"]= $info[$i]["telephonenumber"][0];

// Der distinguishedName, also z.B. CN=blub,OU=...,DC=test,DC=local

// soll dazu verwendet werden, aus den OU-Angaben die Abteilung

// zu erzeugen:

$ergebnis[$i]["abteilung"] = erzeuge_abteilung($info[$i][dn]);

}

 

// Array alphabetisch sortieren, usort erwartet dazu eine Vergleichsfunktion:

usort($ergebnis, 'vergleich');

 

// Array $ergebnis in einer Tabelle ausgeben:

echo "<table border=0>";

for ($i=0; $i<$anzahl; $i++) {

echo "<tr>";

echo "<td width=200>" . $ergebnis[$i]["displayname"] . "</td>";

echo "<td width=200>" . $ergebnis[$i]["abteilung"] . "</td>";

/*

if (empty($ergebnis[$i]["mail"]))

echo "<td width=200> - </td>";

else

echo "<td width=200> " . $ergebnis[$i]["mail"] . "</td>";

*/

if (empty($ergebnis[$i]["telephonenumber"]))

echo "<td width=100> - </td>";

else

echo "<td width=100>" . $ergebnis[$i]["telephonenumber"] . "</td>";

echo "</tr>";

}

echo "</table>";

 

echo "</body></html>";

 

 

 

 

function erzeuge_abteilung ($dn) {

// $dn ist z.B.: CN=blub,OU=Nord,OU=Verkauf,OU=Benutzer,DC=test,DC=local

$pos = strpos($dn, ',DC=');

$dn = substr($dn, 0, $pos);

// -> $dn: CN=blub,OU=Nord,OU=Verkauf,OU=Benutzer

$pos = strpos($dn, ',OU=');

$dn = substr($dn, $pos);

// -> $dn: ,OU=Nord,OU=Verkauf,OU=Benutzer

 

$abteilung = "";

$abteilungen = explode(',OU=', $dn);

// -> $abteilungen: Nord, Verkauf, Benutzer

for ($j = count($abteilungen)-1; $j > 0; $j--) {

$abteilung = $abteilung . "-" . $abteilungen[$j];

}

// -> $abteilung: - Benutzer - Verkauf - Nord

$abteilung = substr($abteilung, 1);

// -> $abteilung: Benutzer - Verkauf - Nord

return $abteilung;

}

 

 

?>

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...