J’ai découvert les filtres LDAP il y a peu suite à un besoin d’améliorer la synchronisation entre un serveur ADDS et un serveur GLPI.
Tester un filtre LDAP sur ADDS
Pour tester un filte LDAP sur ADDS, il faut aller dans la console de gestion des utilisateurs de l’ad puis clique droit sur le domaine et Rechercher…, choisir ensuite Recherche personnalisée puis le mode Avancé.
Organisation d’un filtre LDAP
Un filtre LDAP s’articule autour de conditions, les parenthèses sont importantes et très utilisées.
Voici la forme d’un filtre LDAP:
(<attribut>=<valeur>)
Nous pouvons utiliser différents opérateurs:
& : ET logique entre les conditions
| : OU logique entre les conditions
! : NON logique (inverse la condition)
Opérateurs de test:
>= : supérieur ou égale
<= : inférieur ou égal
~= : approximativement égal à
= : égale à
* : n'importe quel élément/caractère
Association de condition:
([&|!](<condition 1>)(condition 2))
Chemin LDAP
Un chemin LDAP permet de chercher des objects dans l’AD, le chemin LDAP doit terminer par: DC=<nom domaine>,DC=<tld>
Un chemin LDAP est de la forme:
CN=<nom groupe ou user>,OU=<nom OU>,DC=<nom domaine>,DC=<tld>
Exemples de filtre
Obtenir tous les éléments de l’annuaire:
objectClass=*
Obtenir tous éléments de class utilisateur (ordinateur ET utilisateurs):
objectClass=user
Obtenir tous les utilisateurs:
(&(objectClass=user)(objectCategory=person))
Obtenir tous les ordinateurs:
((&(objectClass=user)(objectCategory=computer)))
Pour l’AD, les ordinateurs sont des utilisateurs
Obtenir un groupe:
(objectCategory=group)
Obtenir les membres d’un groupe:
(&(objectCategory=person)(objectClass=user)(memberof=CN=<nom du groupe>, ... ,DC=<nom domaine>,DC=<tld>))
Obtenir les ordinateurs d’un groupe:
(&(objectCategory=person)(objectClass=computer)(memberof=CN=<nom du groupe>, ... ,DC=<nom domaine>,DC=<tld>))