edocom 10 Geschrieben 20. Mai 2011 Melden Geschrieben 20. Mai 2011 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; } ?>
edocom 10 Geschrieben 20. Mai 2011 Autor Melden Geschrieben 20. Mai 2011 Problem gelöst, in der php.ini muss die extensions für ldap aktiviert werden :)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden