LDAP filters consist of one or more criteria. If one than more criterion exist in one filter definition, they can be concatenated by logical AND or OR operators.
AND Operation:
(& (…K1…) (…K2…)) or with more than two criteria:(&(…K1…)(…K2…)(…K3…)(…K4…))
OR Operation:
(| (…K1…)(…K2…)) or with more than two criteria:(|(…K1…)(…K2…)(…K3…)(…K4…))
Nested Operation:
Every AND/OR operation can also be understood as a single criterion:
(|(& (…K1…)(…K2…))(&(…K3…)(…K4…))) means:(K1 AND K2) OR (K3 AND K4)
The search criteria consist of a requirement for an LDAP attribute, e.g. (givenName=Sandra). Following rules should be considered:
Equality: (attribute=abc) , e.g. (&(objectclass=user)(displayName=Foeckeler)
Negation: (!(attribute=abc)) , e.g. (!objectClass=group)
Presence: (attribute=*) , e.g. (mailNickName=*)
Absence: (!(attribute=*)) , e.g. (!proxyAddresses=*)
Greater than: (attribute>=abc) , e.g. (mdbStorageQuota>=100000)
Less than: (attribute<=abc) , e.g. (mdbStorageQuota<=100000)
Proximity: (attribute~=abc) , e.g. (displayName~=Foeckeler) Caution: ~= is treated as = in ADS environments !!
Wildcards: e.g. (sn=F*) or (mail=*@cerrotorre.de) or (givenName=*Paul*)