LDAP Zugriff auf groupMembership?

Alles, was PHP betrifft, kann hier besprochen werden.

LDAP Zugriff auf groupMembership?

Postby kschroeder » 30. January 2008 14:08

Hallo,

ist bestimmt relativ speziell, aber vielleicht hat ja doch jemand schon Erfahrung mit dem LDAP-Zugriff (auf Novell eDir) ?

Mein Problem ist, dass ich zwar erfolgreich nach einem angelegten Benutzer suchen und mir auch ein paar oberflächliche Eigenschaften anzeigen lassen kann, aber die für mich wichtigen Informationen leider nicht.

Mir fehlen fast alle Informationen, die ich mit einem LDAP-Browser sehen kann:

cn
groupMembership
login-script
preferredserver

usw.

Ein paar Eigenschaften kann ich mit mit phpldapadmin anzeigen lassen, aber hier z.B. auch keine groupMembership.

Ich würde gerne einige Eigenschaften über ein Web-Frontend ändern lassen können.
Die Ausgabe der gesamten Array-Struktur zeigt, dass die Werte wohl nicht im Array enthalten sind.

Wie komme ich denn an wirklich alle Informationen dran, die über ldap abrufbar sein müssten?

Hier mein bisheriger Test-Code:


Code: Select all
$ds = ldap_connect("ldap-server");

if ($ds) {

   $r=ldap_bind($ds);                                 // anonymer Bind --> nur Lese-Zugriff!

   $attnames=array("dn","cn","surname","mail","groupmembership");
   $sr=ldap_search($ds,"ou=gmbh,ou=Stand,o=DEU", "sn=Schroeder*", $attnames);
   echo "Anzahl gefundenen Einträge ".ldap_count_entries($ds,$sr)."<br/>";

   $info = ldap_get_entries($ds, $sr);
   echo "Daten für ".$info["count"]." Items gefunden:<br/>";
   echo "<br/><br/>";
    for ($i=0; $i<$info["count"]; $i++) {
        echo "dn ist: ". $info[$i]["dn"] ."<br>";
        echo "cn ist: ". $info[$i]["cn"] ."<br>";
        echo "Surname ist: ". $info[$i]["surname"][0] ."<br>";
        echo "mail ist: ". $info[$i]["mail"] ."<br>";

//      print_r(array_values($info));

      echo "Gruppen sind: ". $info[$i]["groupMembership"] ."<br>";
      echo "<br/><hr>";
    }

   ldap_close($ds);

   echo "<h2>fertig</h2>";
} else {
   echo "<h2>Verbindung zum LDAP Server nicht möglich!</h2>";
}
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby kschroeder » 06. February 2008 10:10

Hab mir mal den PHP-LDAP-Browser (phpldapadmin) installiert.
Dieser zeigt zwar auch nicht alle Attribute an (z.B. letzte Anmeldung), aber dafür die für mich wichtigen Werte, wie cn und groupmembership.

Leider werde ich aus dem Sourcecode vom phpldapadmin nicht schlau, kann mir also leider nicht ableiten, wie die Werte angezeigt werden.
Immerhin weiß ich damit, dass es nicht nur theoretisch sondern auch praktisch in meiner Umgebung funktioniert.

Wäre toll, wenn sich doch noch jemand finden würde, der mich unterstützen kann.
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

Postby kschroeder » 06. February 2008 14:53

Ich hab mal den folgenden Code eingebaut, um mir die möglichen Attribute anzeigen zu lassen und siehe da:

Code: Select all
   $entry = ldap_first_entry($ds, $sr);

   $attrs = ldap_get_attributes($ds, $entry);

   echo $attrs["count"]." Merkmale für diesen Eintrag:<p>";

   for ($i=0; $i<$attrs["count"]; $i++) echo $attrs[$i]."<br>";


es werden auch nur 4 Attribute angezeigt:

givenName
messageServer
sn
objectClass


Wie, um Himmels Willen, bekomme ich denn die anderen Attribute zu sehen?
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33

(gelöst) LDAP Zugriff auf groupMembership?

Postby kschroeder » 07. February 2008 09:14

Tja, da hätte ich wirklich früher drauf kommen können (oder auch jemand von hier :cry: ) Hätte mir tagelanges Grübeln erspart.

Des Rätsels Lösung ist nämlich denkbar einfach:
Bei einem anonymen Bind werden (natürlich) nicht alle Attribute zurückgegeben. Bei einem authentifzierten Bind enstprechend mehr.

Hier hab ich dann auch die für mich wichtigen Attribute auslesen können.
kschroeder
 
Posts: 254
Joined: 11. May 2007 13:33


Return to PHP

Who is online

Users browsing this forum: No registered users and 56 guests