À propos de LDAP (Lightweight Directory Access Protocol)
Le protocole LDAP (Lightweight Directory Access Protocol) est un protocole standard qui permet de visualiser et d'accéder à des informations sur les utilisateurs et les périphériques. LDAP permet d'organiser et de stocker ces informations dans un annuaire. Un annuaire LDAP est dynamique dans la mesure où il peut être mis à jour suivant les besoins et qu'il est distribué, ce qui le protège d'un point d'échec unique.
Les exemples suivants décrivent comment utiliser des requêtes LDAP pour effectuer une recherche dans l'annuaire :
- Obtenir toutes les entrées : (objectClass=*)
- Obtenir les entrées contenant « robert » à tout emplacement du nom usuel : (cn=*robert*)
- Obtenir les entrées contenant un nom usuel supérieur ou égal à « robert » : (cn>='robert')
- Obtenir tous les utilisateurs ayant un attribut d'e-mail : (&(objectClass=utilisateur)(email=*))
- Obtenir toutes les entrées utilisateur ayant un attribut d'e-mail et un nom de famille égal à « legrand » : (&(sn=legrand)(objectClass=utilisateur)(email=*))
- Obtenir toutes les entrées utilisateur ayant un nom usuel qui commence par « andré », « stéphane » ou « marguerite » : (&(objectClass=utilisateur) (| (cn=andré*)(cn=stéphane*)(cn=marguerite*)))
- Obtenir toutes les entrées sans attribut d'e-mail : (!(email=*))
La définition formelle du filtre de recherche est la suivante (selon la norme RFC 1960) :
- <filter> ::= '(' <filtercomp> ')'
- <filtercomp> ::= <and> > <or> > <not> > <item>
- <and> ::= '&' <filterlist>
- <or> ::= '|' <filterlist>
- <not> ::= '!' <filter>
- <filterlist> ::= <filter> > <filter> <filterlist>
- <item> ::= <simple> > <present> > <substring>
- <simple> ::= <attr> <filtertype> <value>
- <filtertype> ::= <equal> > <approx> > <ge> > <le>
- <equal> ::= '='
- <approx> ::= '~='
- <ge> ::= '>='
- <le> ::= '<='
- <present> ::= <attr> '=*'
- <substring> ::= <attr> '=' <initial> <any> <final>
- <initial> ::= NULL > <value>
- <any> ::= '*' <starval>
- <starval> ::= NULL > <value> '*' <starval>
- <final> ::= NULL > <value>
Le jeton <attr> est une chaîne représentant un type d'attribut. Le jeton <value> est une chaîne représentant une valeur d'attribut dont le format est défini par un service de répertoire sous-jacent.
Si une valeur (<value>) doit contenir un des caractères * ou ( ou ), faites précéder le caractère d'une barre oblique inverse (\).