Dieses Thema behandelt die Syntax und Regeln für einen LDAP-Filter, bei dem es sich um eine normale Zeichenkette handelt, die die Kriterien für den Filter ausdrückt.
Grundlegende LDAP-Filtersyntax und Operatoren
LDAP-Filter bestehen aus einem oder mehreren Kriterien. Wenn mehr als ein Kriterium in einer Filterdefinition vorhanden ist, können diese durch die logischen Operatoren AND oder OR verknüpft werden. Die logischen Operatoren stehen dabei immer vor den Operanden (d. h. den Kriterien). Dies wird auch als 'Polnische Notation' bezeichnet.
Die Suchkriterien müssen in Klammern gesetzt werden, und der gesamte Ausdruck muss anschließend noch einmal geklammert werden.
UND-Operation:
(& (…K1…) (…K2…)) oder mit mehr als zwei Kriterien: (& (…K1…) (…K2…) (…K3…) (…K4…))
ODER-Operation:
(| (…K1…) (…K2…)) oder mit mehr als zwei Kriterien: (| (…K1…) (…K2…) (…K3…) (…K4…))
Verschachtelte Operation:
Jede UND/ODER-Operation kann auch als einzelnes Kriterium verstanden werden:
(|(& (…K1…) (…K2…))(& (…K3…) (…K4…))) bedeutet: (K1 UND K2) ODER (K3 UND K4)
Die Suchkriterien bestehen aus einer Anforderung an ein LDAP-Attribut, z. B. (givenName=Sandra). Dabei sollten folgende Regeln beachtet werden:
| Gleichheit: | (attribute=abc) , z. B. (&(objectclass=user)(displayName=Foeckeler) |
| Negation: | (!(attribute=abc)) , z. B. (!objectClass=group) |
| Vorhandensein: | (attribute=*) , z. B. (mailNickName=*) |
| Fehlen: | (!(attribute=*)) , z. B. (!proxyAddresses=*) |
| Größer als: | (attribute>=abc) , z. B. (mdbStorageQuota>=100000) |
| Kleiner als: | (attribute<=abc) , z. B. (mdbStorageQuota<=100000) |
| Näherung: | (attribute~=abc) , z. B. (displayName~=Foeckeler) Achtung: ~= wird in ADS-Umgebungen wie = behandelt !! |
| Platzhalter: | z. B. (sn=F*) oder (mail=*@cerrotorre.de) oder (givenName=*Paul*) |