LDAP-Abfragen erstellen

Sonderzeichen

Grundsätzlich sind in LDAP innerhalb der Attributwerte alle Zeichen als Eintrag erlaubt. Da einige Zeichen wie (,),=,&,| eine besondere Bedeutung haben, können sie aber nicht in der Form in Suchabfragen verwendet werden. Sie müssen stattdessen über so genannte Escapesequenzen angegeben werden. Diese bestehen aus einem Backslash-Zeichen (\), das von dem hexadezimalen Zeichencode gefolgt wird, beispielsweise und für die runden Klammern. Der folgende Filter würde nach Objekten mit Telefonnummern in Berlin suchen, falls die Werte alle der Konvention „+49(30)Nummer“ folgen.

(telephoneNumber=+49*)

Es ist vom Standard her auch möglich, direkt binäre Daten in Verzeichnisattributen abzulegen. In diesen Attributwerten kann über den Escape-Mechanismus ebenfalls gesucht werden in dem die Bytewerte als Escape-Sequenzen angegeben werden, beispielsweise .

Weitere Elemente

Der eigentliche Suchfilter bildet je nach Kontext nur einen Teil einer LDAP-Anfrage. Meistens muss daneben noch angegeben werden, wo gesucht werden soll (Suchbasis), was als Ergebnis zurückgeliefert werden soll, und in welcher Tiefe gesucht wird. Diese vier Teile werden durch Strichpunkte getrennt aneinander gereiht.

Suchbasis;Filter;Attribute;Suchtiefe

Die Suchbasis gibt an, in welchem Verzeichnis beziehungsweise Verzeichnisbereich gesucht werden soll. Hierbei handelt es sich um den so genannten voll qualifizierten Namen (DN) der Verzeichnisbasis oder des Unterobjekts, zum Beispiel eine Organizational Unit, die durchsucht werden soll. Diese lässt sich beispielsweise mit ADSIEdit einfach herausfinden. Zudem enthält die Suchbasis die Art des Verzeichnisses, das durchsucht werden soll, ein Standard-LDAP-Verzeichnis/Active Directory (LDAP://) oder den Global Catalog eines Domänenforests (GC://). Die zugrunde liegende Windows-Schnittstelle ADSI unterstützt daneben noch einige andere Verzeichnisarten, die allerdings nicht auf LDAP basieren und deshalb nicht weiter betrachtet werden. Die Suchbasis muss in die Zeichen für Größer > und Kleiner < eingeschlossen werden. Die Suchbasis kann zudem als Angabe den Verzeichnisserver enthalten, mit dem die Verbindung aufgenommen werden soll. Fehlt die Angabe, wählt ADSI einen Server aus. Die Angabe einer Suchbasis würde zum Beispiel folgendermaßen aussehen:

<LDAP://server/OU=test,DC=domain,DC=de>.

Die Angabe des Ergebnisses besteht aus einer Liste von Attributbezeichnern, die von den gefundenen Objekten zurückgeliefert werden sollen. Beispielsweise würde diese nur telephoneNumber beinhalten, wenn nach den Telefonnummern der Damen und Herren mit dem Nachnamen Meier gesucht würde.

Die Suchtiefe gibt an, ob nur in dem bezeichneten Verzeichnisobjekt oder auch in Unterobjekten gesucht werden soll. Mögliche Werte sich hier base, onelevel, subtree. Base sucht nur an der bezeichneten Stelle, onelevel auch in direkten Unterobjekten und Subtree beliebig tief in Unterzweigen.