This topic deals with the syntax and rules for an LDAP filter, which is a normal string which expresses the criteria for the filter.
Ce sujet traite de la syntaxe et des règles d'un filtre LDAP, qui est une chaîne de caractères normale exprimant les critères du filtre.
Syntaxe de base et opérateurs des filtres LDAP
Les filtres LDAP sont constitués d'un ou plusieurs critères. Si plusieurs critères existent dans une définition de filtre, ils peuvent être concaténés par des opérateurs logiques AND ou OR. Les opérateurs logiques sont toujours placés devant les opérandes (c'est-à-dire les critères). C'est ce qu'on appelle la « notation polonaise ».
Les critères de recherche doivent être placés entre parenthèses, puis l'ensemble du terme doit être placé entre parenthèses une nouvelle fois.
Opération AND :
(& (…K1…) (…K2…)) ou avec plus de deux critères : (& (…K1…) (…K2…) (…K3…) (…K4…))
Opération OR :
(| (…K1…) (…K2…)) ou avec plus de deux critères : (| (…K1…) (…K2…) (…K3…) (…K4…))
Opération imbriquée :
Chaque opération AND/OR peut également être comprise comme un critère unique :
(|(& (…K1…) (…K2…))(& (…K3…) (…K4…))) signifie : (K1 AND K2) OR (K3 AND K4)
Les critères de recherche consistent en une exigence portant sur un attribut LDAP, par exemple (givenName=Sandra). Les règles suivantes doivent être prises en compte :
| Égalité : | (attribute=abc) , par exemple (&(objectclass=user)(displayName=Foeckeler) |
| Négation : | (!(attribute=abc)) , par exemple (!objectClass=group) |
| Présence : | (attribute=*) , par exemple (mailNickName=*) |
| Absence : | (!(attribute=*)) , par exemple (!proxyAddresses=*) |
| Supérieur à : | (attribute>=abc) , par exemple (mdbStorageQuota>=100000) |
| Inférieur à : | (attribute<=abc) , par exemple (mdbStorageQuota<=100000) |
| Proximité : | (attribute~=abc) , par exemple (displayName~=Foeckeler) Attention : ~= est traité comme = dans les environnements ADS !! |
| Caractères génériques : | par exemple (sn=F*) ou (mail=*@cerrotorre.de) ou (givenName=*Paul*) |