2009-03-12 14 views
2

Ich bin ziemlich neu in LDAP und AD. Ich möchte einen LDAP-Filter erstellen, um alle Schüler im AD anzuzeigen. Aber das Problem ist, dass die Schüler in verschiedenen BASE DN:LDAP-Filter für die Suche nach Studenten

 
OU=STUDENTS,OU=USERS,OU=SOE,OU=FOAE,OU=UNIVERSITY,DC=sepang 
OU=STUDENTS,OU=USERS,OU=SOMLC,OU=FOAE,OU=UNIVERSITY,DC=sepang 
OU=STUDENTS,OU=USERS,OU=SOCS,OU=FOS,OU=UNIVERSITY,DC=sepang 

das heißt für jeden Schüler ist es wie

 
CN =khx72b,OU=STUDENTS,OU=USERS,OU=SOCS,OU=FOS,OU=UNIVERSITY,DC=sepang 

Wie Sie Studenten aus verschiedenen Fakultäten sind an verschiedenen Orten zu sehen. Mit einem Benutzernamen Wie kann ich suchen und finden, ob der angegebene Benutzer im Verzeichnis ist?

Die objectClass für alle Schüler ist 'user'.

Antwort

1

Offenbar suchen Sie nach Objekten vom Typ 'Benutzer', die in Organisationseinheiten mit dem Namen 'STUDENTEN' enthalten sind, aber ansonsten keine gemeinsamen übergeordneten Elemente haben.

Dies kann nicht in einem Schritt (d. H. Mit einer einzigen LDAP-Abfrage) durchgeführt werden.

Sie müssen entweder alle OUs mit dem Namen 'STUDENTS' abrufen und diese als Basis-DNs nacheinander verwenden, wie Sie bereits angegeben haben.

Oder Sie finden eine Eigenschaft, die alle Schüler teilen (z. B. eine direkte Gruppenmitgliedschaft oder einen speziellen Wert) und diese als Filter verwenden. Dies ist eine gefährlichere Herangehensweise, da nichts garantiert, dass jeder Schüler tatsächlich die Funktion hat, auf die Sie sich verlassen - einige wurden möglicherweise nicht korrekt in AD eingegeben.

0

Tomalak, ist richtig, Microsoft bietet viele Attribute, die Sie für diesen Zweck verwenden könnten wie "employeeType", "Kommentar", "Abteilung", "Firma", "Abteilung", "Abteilung", aber Das Problem dabei ist, dass sie nicht mit irgendwelchen Informationen aufgefüllt sind, die Ihnen jetzt helfen können. Sie können einen dieser für zukünftige Zwecke verwenden, aber dann müssen Sie diese Praxis beibehalten, damit sie konsistent ist. Ich denke, die einfachste Lösung für Sie ist wahrscheinlich, jeden der Benutzer in eine Gruppe zu stellen, die dem Namen der Organisationseinheit ähnlich ist, was eine wirklich einfache Aufgabe sein sollte, wenn sie sich zur Zeit in derselben Organisationseinheit befinden. einmal dann dies geschehen ist können Sie leicht eine LDAP-Abfrage erstellen, die dann an der Mitgliedschaft in dieser Gruppe wird wie folgt aussehen:

((objectCategory=person)(objectClass=user)(memberOf=CN=STUDENTS GROUP,OU=USERS,OU=SOCS,OU=FOS,OU=UNIVERSITY,DC=sepang)) 

Bitte beachten Sie bei der Verwendung des „memberOf“ in einem LDAP-Filtern der Suchwert muss sein, Vervollständige die Zeichenfolge in eine Gruppe und du kannst KEINE Platzhalter verwenden wie: memberOf = CN = STUDENTS GROUP *).

Sie müssen immer noch eine Übung, die Sie oder jemand oder etwas (wie eine automatisierte Zeitplanskriptaufgabe), die die Gruppenmitgliedschaft beibehält, pflegen, um sicherzustellen, dass Ihre LDAP-Abfrage korrekt ist.

Ich sah this post was sagt, was Sie versuchen zu tun ist möglich, ohne etwas extra von "Matching Components of Distinguished Names" tun, aber ich habe noch nie zuvor gesehen, und ich konnte es nicht zur Arbeit bekommen. Sehen Sie sich auch bei ADO-Suchen an, um mehr über diese Dinge zu erfahren.

1

Suchen Sie nach Objekten in einer OU, indem Sie "searchRoot" auf den LDAP-Pfad zur OU setzen. Alle Suchvorgänge werden dann auf diese Organisationseinheit beschränkt.

Verwandte Themen