B. Filtre de recherche
1.
Présentation générale
Un filtre LDAP est comparable à une requête SQL.
C'est une chaîne de caractères destinée à être
exécutée pour récupérer des entrées d'un
annuaire LDAP. Plus précisément elle ne définit que la
partie WHERE d'une requête SQL: un filtre définit sur
quels objets et sur quels attributs doit se faire la recherche.
Un filtre LDAP est donc constitué d'un ensemble
d'opérations, portant sur des attributs, combinées avec les
opérateurs booléens classiques: ET, OU et
NON.
Une opération élémentaire de recherche
s'écrit sous la forme : attribut OPERATEUR valeur La forme
générale d'un filtre est une combinaison : (operator(search
operation)(search operation)...)).
La syntaxe complète des filtres LDAP est décrite
dans le document [rfc2254], qui fait partie de l'ensemble des RFC
définissant la norme LDAP.
2.
Les opérations élémentaires
Une opération élémentaire est
composée d'un attribut, d'un opérateur de comparaison et d'une
valeur. Pour effectuer des filtres sur le type des objets, sur leur classe, il
suffit d'utiliser leur objectclass comme un attribut. Au besoin, il est
possible d'utiliser l'OID de l'attribut plutôt que son nom.
Les opérateurs de recherche sont les suivants :
Égalité
|
: =
|
Approximation
|
~=
|
Supérieur ou égal
|
>=
|
Inférieur ou égal
|
<=
|
Tableau 11: les
opérations élémentaires
S'il n'existe pas d'opérateur : "différent de",
"strictement inférieur", ou "strictement supérieur", il est
possible de les obtenir à l'aide des opérateurs autorisés,
en utilisant un opérateur booléen "NON".
La valeur accepte le caractère '*' afin de permet des
recherches sur des parties de chaînes. Ce même caractère,
seul, permet de tester la présence d'un attribut. Ce caractère
n'est valide qu'avec l'opération d'égalité.
Une opération doit obligatoirement se trouver entre
deux parenthèses. Les valeurs qui sont dans la partie droite d'une
opération élémentaire ne sont pas entre quote, mais
certains caractères doivent être échappés :
Le caractère
|
Sa valeur ASCII
|
Le caractère dans un filtre
|
*
|
0x2a
|
\2a
|
(
|
0x28
|
\28
|
)
|
0x29
|
\29
|
\
|
0x5c
|
\5c
|
NULL (caractère vide)
|
0x00
|
\00
|
Tableau 12: les
opérations
Les opérateurs booléens sont les suivants :
L'opérateur NON
|
!
|
L'opérateur ET
|
&
|
L'opérateur OU
|
|
|
Tableau 13: les
opérateurs booléens
Un opérateur booléen s'applique à toutes
les opérations qui suivent jusqu'à l'opérateur suivant.
|