Jump to content

PHP/AD und ldap


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

 

Ich versuche mit diesem Script User aus einer Gruppe im AD herauszulesen, irgendwie funktioniert das aber nicht:

 

// BaseDN festlegen:

//$base_dn = $base_dn = 'OU=Firma,DC=domäne,DC=loc';

$base_dn = $base_dn = 'OU=_User,OU=Groups,DC=domäne,DC=loc';

 

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

$filter = '(|(objectClass=user))'; //(objectClass=contact)

 

Irgendwie klappt das aber nicht, wenn ich aber den Pfad benutze

OU=Firma, DC=domäne,DC=loc

dann geht es, das problem dann ist einfach, dass ich alle objekte bekomme auch computer u.s.w. ich möchte aber nur die user haben die eben in der OU=_User sind.

 

Vielen Dank für eure Hilfe...

Link zu diesem Kommentar
Hallo Leute

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

$filter = '(|(objectClass=user))'; //(objectClass=contact)

 

Nimm mal

(&(objectCategory=person)(objectClass=user))

- Computer sind auch von der objectClass "user" - mit der Einschränkung "person" bekommst du nur die Bentzerobjekte.

 

Cheers,

 

Florian

Link zu diesem Kommentar

hey super du hattest recht, nun habe ich aber noch immer ein kleines problämchen :)

 

und zwar möchte ich jetzt noch user filtern die nur in einer bestimmten Gruppe im AD vorhanden sind. Weil jetzt werden mir auch user angezeigt die z.B. nur Ressourcen sind, die aber als User angelegt wurden.

 

Nun ich habe eine OU die FirmenUser heist, und dort sind die User enthalten die ich nur gerne hätte...! wie kann ich das auch noch filtern?

 

Und weist du auch, wo ich die Bezeichnung der einzelnen Felder im AD finde, so wie du das mit dem objektClass=user geschrieben hast...

 

 

VIELEN DANK....

Link zu diesem Kommentar

Howdie!

 

und zwar möchte ich jetzt noch user filtern die nur in einer bestimmten Gruppe im AD vorhanden sind. Weil jetzt werden mir auch user angezeigt die z.B. nur Ressourcen sind, die aber als User angelegt wurden.

 

Nun ich habe eine OU die FirmenUser heist, und dort sind die User enthalten die ich nur gerne hätte...! wie kann ich das auch noch filtern?

 

Indem du die Base-DN entsprechend änderst. Du kannst das nicht im Filter abfangen.

 

Und weist du auch, wo ich die Bezeichnung der einzelnen Felder im AD finde, so wie du das mit dem objektClass=user geschrieben hast...

 

Ein Tipp: Lade dir die SupportTools herunter - da sind ADSIEdit (nach Installation 'adsiedit.msc' aufrufen) und ldp enthalten. Mit denen kannst du Active Directory auf LDAP-Ebene browsen und dir Objekte und deren Attribute etwas genauer ansehen.

 

cheers,

 

Florian

Link zu diesem Kommentar

hallo, wenn ich die dn gleich auf die richtige OU leite bekomme ich fehlermeldungen und er kann den inhalt den er mit ldap holen geht, nicht mehr anzeigen...

 

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];

}

 

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

usort($ergebnis, 'vergleich');

 

hier gibt es fehler USORT funktioniert dann nicht mehr...!

Link zu diesem Kommentar

Moin,

 

der Fehler deutet darauf hin, dass die Daten nicht richtig an die Funktion übergeben werden. Sie erwartet ein Array, bekommt aber keins. Wenn es mit einem anderen Base-DN funktioniert, deutet das darauf hin, dass der hier verwendete DN nicht richtig ist und daher gar keine Daten zurückkommen. (Sollte deine Angabe im Posting richtig sein, ist das Semikolon am Ende falsch - das gehört nicht zum DN.)

 

Ach halt, jetzt sehe ich es erst richtig: Dein DN gibt keine OU an, sondern ein Objekt. Also anscheinend eine Gruppe. Eine Gruppe kannst du aber nicht auslesen wie eine OU, denn sie hat keine Unterobjekte. Die Mitglieder einer Gruppe stehen (als DNs) in deren Attribut "member".

 

Gruß, Nils

Link zu diesem Kommentar

Moin,

 

und wie mache ich einen filter in dem ich nur sagen kann, zeige mir nur die user die mitglied in dieser gruppe sind?

 

du willst den Inhalt des Feldes "member" einer bestimmten Gruppe ausgeben. Der LDAP-Filter dazu könnte so aussehen:

 

<LDAP://CN=Gruppe,OU=Ordner,dc=dom,dc=tld>;(objectCategory=group);member;Base

 

Das wird dann aber natürlich nicht mit deinen vorhandenen PHP-Funktionen klappen, weil die ja von was anderem ausgehen.

 

bin neu auf php :D

 

Dann hast du dir vielleicht ein etwas arg komplexes Beispiel zum Einstieg ausgesucht. Und du solltest dir vielleicht noch mal ein paar LDAP-Grundlagen aneignen. Dazu könnte sich dies als Einstieg eignen:

faq-o-matic.net LDAP-Grundlagen fr Active Directory

 

Und für deine Gesamtaufgabe könnte dies hier interessant sein, wenn auch nicht in PHP:

http://www.faq-o-matic.net/2008/07/04/mitglieder-einer-ad-gruppe-mit-zusatzdaten-ausgeben/

 

Gruß, Nils

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...