LDAP-Abfragen erstellen

Das Lightweight Directory Access Protocol, kurz LDAP, bildet die Schnittstelle zum Active Directory, dem Verzeichnisdienst von Windows-Domänen, in dem auch viele Daten von Exchange abgelegt sind. Wenn Daten vom Active Directory abgefragt werden, kommt dieser Standard zur Anwendung. Es ist für Administratoren deshalb oft hilfreich, über einige Grundkenntnisse zu verfügen.

LDAP wurde als speziell an die Erfordernisse des TCP/IP-Netzwerkprotokolls angepasste Variante des X.500-Verzeichnisstandards entwickelt. Die Festlegungen von X.500, genauso wie die des damit zusammenhängenden X.400-Standards, zeichnen sich durch einige Komplexität aus. Auch die „leichtgewichtige“ Version ist ohne längeres Studium der Standarddokumente kaum durchschaubar. Glücklicherweise ist dies auch für kaum einen Anwender notwendig. Die Nutzung der vollständigen Protokolle kann in der Regel der Software-Implementation überlassen werden.

Allerdings gibt es einen Teilbereich, den es sich lohnt genauer zu betrachten. Die Formulierung von Verzeichnisabfragen, mit denen in LDAP-Verzeichnissen nach Objekten wie Benutzern und Verteilerlisten gesucht werden kann, wird von Administratoren und Entwicklern gleichermaßen benötigt. An verschiedenen Stellen von Windows und Exchange ist es hin und wieder notwendig Abfragen direkt im LDAP-Format zu formulieren.

LDAP wurde in Anbetracht der Entwicklung des Internet von dem ursprünglichen X.500-Standard abgeleitet, und die zugehörigen Standards werden deshalb auch von der Internet Standard-Gruppe IETF verwaltet, die auch die entsprechenden RFCs (Request for Comments) herausbringt. Die aktuellen Dokumente sind RFC 4510-4533, die aus einer Überarbeitung vom Anfang des Jahres 2006 stammen. Microsofts Active Directory beruht noch auf etwas älteren Varianten der Standarddokumente. Die hier besprochene Formulierung von Suchabfragen ist in den Dokumenten RFC 4515 (aktuell) beziehungsweise RFC 2254 (Active Directory) niedergelegt.

Attributbezeichner

In Suchabfragen werden in der Regel bestimmte Objekte mit bestimmten Attributwerten gesucht, also beispielsweise ein Benutzer mit einem bestimmten Nachnamen. Würde beispielsweise ein Anwender mit dem Nachnamen Meier gesucht werden, würde die Abfrage folgendermaßen aussehen:

(sn=Meier)

LDAP-Suchfilter werden immer von runden Klammern eingeschlossen. Bei direkten Suchen nach einem bekannten Attributwert (hier Meier) wird dieser einfach mit einem Gleichheitszeichen dem Attributnamen (sn) gegenübergestellt.

Gleichzeitig tritt hier schon ein Problem bei der Formulierung von Suchfiltern zutage. Es ist nicht immer einfach, den Bezeichner für das gesuchte Attribut zu finden. Der Nachname verbirgt sich beispielsweise hinter dem Code sn, was eine Abkürzung für das englische Wort Surname ist. Die Bezeichner sind Kürzel oder ganze Wörter, die, falls es sich um Standardwerte handelt, aus dem Englischen abgeleitet sind.

Insgesamt ist die Zusammensetzung der Attribute durch den amerikanischen Kulturkreis geprägt. Ein Feld für die vor allem in den USA gebräuchliche Middle Initial oder die Angabe eines Bundesstaates sind vorhanden. Im deutschen lässt sich damit aber im Zweifelsfalle einfach umgehen, indem solche Felder einfach leer gelassen werden. Angehörige anderer Kulturen werden da mit schwierigeren Problemen konfrontiert, beispielsweise wenn es darum geht, in welchem Feld der beispielsweise in Russland übliche Name des Vaters untergebracht werden soll.

Eine Aufstellung der in einem Windows-System vorhandenen Attribute lässt sich mit relativ einfachen Mitteln erzeugen. Eine Referenzaufstellung mit ausführlichen Erklärungen und Vorgaben für gültige Werte sucht man allerdings vergebens. Die zentralen Werte sind durch den LDAP-Standard selbst vorgegeben. Das Attributschema kann allerdings nach Bedarf erweitert werden. Microsoft hat dies für Active Directory und Exchange Server getan. Die wichtigsten Werte sind in den jeweiligen Produktdokumentationen zu finden.

In der Regel greifen Administratoren allerdings lieber zu pragmatischen Methoden. Mit Programmen wie ADSIEdit aus den Windows Server Support Tools lassen sich die Attribute des Active Directory einfach im Überblick anzeigen. Die Support Tools können kostenlos von Microsofts Website bezogen werden.

Auch wenn sich die vorhandenen Attribute herausfinden lassen, ist es nicht immer einfach, den Sinn eines Attributs abzuleiten. Wie schon das Beispiel sn zeigt, stimmen die Bezeichner häufig nicht mit den Texten der Dialoge in der englischsprachigen Windows-Version überein. Für Entwickler ergibt sich zudem das Problem, dass die einschlägige Windows-Programmierschnittstelle MAPI noch einmal andere Bezeichner für dieselben Attribute verwendet, da MAPI und LDAP/X.500 seinerzeit unabhängig voneinander entwickelt wurden. Hierdurch stehen sich dann in manchen Fällen drei unterschiedliche Bezeichnungen für einen semantischen Wert gegenüber.