LDAP Search

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • LDAP Search

    Moin Mädels

    Kennt sich irgendwer ein wenig mit PHP und Ldap aus und kann mir sagen warum ich immer diesen ... Fehler bekomme:

    Warning: ldap_search() [function.ldap-search]: Search: Operations error in ...

    Versteh echt nicht woran es hängt.

    Quellcode

    1. echo "<h3>LDAP query Test</h3>";
    2. echo "Verbindung ...";
    3. $ds = ldap_connect("ldap://xxx.xxx.xxx.xxx:389");
    4. echo "Ergebnis der Verbindung: ".$ds."<p>";
    5. if ($ds) {
    6. echo "Bindung ...";
    7. $bind = ldap_bind($ds, "CN=ldap user, OU=benutzer, DC=xxxxxxxxxxxxx, DC=xx", "xxxxxxxx");
    8. $dn = "DC=xxxxxxxxxxxxx, DC=xx";
    9. $filter = "(sAMAccountname=m.mustermann)";
    10. $sr = ldap_search($ds, $dn, $filter);
    11. ldap_close($ds);
    12. } else {
    13. echo "<h4>Verbindung zum LDAP Server nicht möglich</h4>";
    14. }
    Alles anzeigen


    Gruss
    Ubuntu Edgy * Kernel 2.6.17 * Gnome 2.16 * Beryl
    2 x Athlon MP 1900 * MSI K7D Master-L * 1024 MB ECC DDR333
    Hercules 9800XT 256 MB Ram * 1x 250 GB IDE
    Wasserkühlung
  • Hi,
    weißt du ob beim falschen binden eine Fehlermeldung käme? ich würde den Rückgabetyp nochmal überprüfen. Strings mit Leerzeichen sind ("ldap user") sind mir nie geheuer.

    Ansonsten sehe ich keinen Fehler, falls die Felder alle richtig benannt sind.

    //EDIT: bei php.net werden auch Leerzeichen verwendet...

    Quellcode

    1. <?php
    2. //This code cannot be executed on the same server as AD is installed on!!!
    3. //Connect
    4. $ad = ldap_connect("ad server");
    5. //Set some variables
    6. ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
    7. ldap_set_option($ad, LDAP_OPT_REFERRALS, 0);
    8. //Bind to the ldap directory
    9. $bd = ldap_bind($ad,"user@domain.com","password") or die("Couldn't bind to AD!");
    10. //Search the directory
    11. $result = ldap_search($ad, "OU=orginizational unit,DC=domain,DC=com", "(CN=*)");
    12. //Create result set
    13. $entries = ldap_get_entries($ad, $result);
    14. //Sort and print
    15. echo "User count: " . $entries["count"] . "<br /><br /><b>Users:</b><br />";
    16. for ($i=0; $i < $entries["count"]; $i++)
    17. {
    18. echo $entries[$i]["displayname"][0]."<br />";
    19. }
    20. //never forget to unbind!
    21. ldap_unbind($ad);
    22. ?>
    Alles anzeigen
  • Moin

    Der Benutzername und alles weitere ist korrekt. Hab rausgefunden, dass das Problem nur auftritt, wenn ich keine OU bei ldap_search angebe. Da leider bei uns die Benutzer verschiedenen Standorten zugeteilt sind, ist das ganze natürlich etwas unpraktisch, wenn ich anstatt einer Abfrage ans LDAP gleich fünf (für jeden Standort eine) machen muss.
    Tja leider hab ich noch keine andere Lösung gefunden.

    Gruss
    Ubuntu Edgy * Kernel 2.6.17 * Gnome 2.16 * Beryl
    2 x Athlon MP 1900 * MSI K7D Master-L * 1024 MB ECC DDR333
    Hercules 9800XT 256 MB Ram * 1x 250 GB IDE
    Wasserkühlung