Guide complet : Filtrer les utilisateurs LDAP dans Snipe-IT

L’intégration de Snipe-IT avec un annuaire LDAP permet d’automatiser la gestion des accès aux utilisateurs. Cependant, il est essentiel de bien configurer les filtres LDAP pour exclure certaines unités organisationnelles (OU) ou utilisateurs spécifiques. Ce guide explique comment affiner les filtres LDAP dans Snipe-IT pour ne synchroniser que les utilisateurs souhaités.

1️⃣ Prérequis

Avant de commencer, assurez-vous d’avoir :

  • Un serveur LDAP/Active Directory accessible depuis Snipe-IT.
  • Les identifiants d’un compte ayant les permissions suffisantes pour interroger l’AD.
  • Snipe-IT correctement configuré avec la connexion LDAP active.

2️⃣ Objectif du filtre LDAP

Nous voulons :

  • Synchroniser uniquement les utilisateurs actifs.
  • Exclure les comptes désactivés.
  • Ne récupérer que les utilisateurs appartenant à certains groupes.
  • Exclure les utilisateurs dont l’adresse userPrincipalName se termine par un domaine spécifique (ex. @exemple.ad).

3️⃣ Syntaxe du filtre LDAP

Voici un filtre LDAP fonctionnel pour Snipe-IT :

&(objectCategory=person)(objectClass=user)
(!(userAccountControl:1.2.840.113556.1.4.803:=2))
(!(userPrincipalName=*@exemple.ad))
(|(memberof=CN=Groupe1,OU=GROUPS,DC=exemple,DC=ad)
  (memberof=CN=Groupe2,OU=GROUPS,DC=exemple,DC=ad)
  (memberof=CN=Groupe3,OU=GROUPS,DC=exemple,DC=ad))

🔍 Explication du filtre

  • &( … ) : Combine plusieurs conditions avec un ET logique.
  • (objectCategory=person) : Sélectionne uniquement les utilisateurs et pas les groupes ou ordinateurs.
  • (objectClass=user) : Garantit que seuls les comptes utilisateurs sont pris en compte.
  • (!(userAccountControl:1.2.840.113556.1.4.803:=2)) : Exclut les comptes désactivés.
  • (!(userPrincipalName=*@exemple.ad)) : Exclut les utilisateurs dont l’UPN finit par @exemple.ad.
  • (|(memberof=CN=Groupe1,OU=GROUPS,DC=exemple,DC=ad)… ) : Ne synchronise que les utilisateurs appartenant à au moins un des groupes spécifiés.

4️⃣ Tester le filtre LDAP

Avant d’ajouter le filtre dans Snipe-IT, testez-le avec ldapsearch sous Linux ou via l’outil LDAP Admin sous Windows.

Commande ldapsearch pour tester

ldapsearch -x -h AD_SERVER -D "cn=Utilisateur,dc=exemple,dc=ad" -W -b "dc=exemple,dc=ad" \
  "(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(userPrincipalName=*@exemple.ad)))"

Si la requête retourne bien les utilisateurs attendus, vous pouvez la copier-coller dans Snipe-IT.

5️⃣ Configuration dans Snipe-IT

  1. Accédez à l’interface d’administration de Snipe-IT.
  2. Allez dans Paramètres > LDAP.
  3. Ajoutez votre filtre LDAP dans le champ correspondant.
  4. Enregistrez et testez la connexion.
  5. Vérifiez que seuls les utilisateurs souhaités sont importés.

6️⃣ Problèmes fréquents et solutions

Erreur ldap_search(): Search: Bad search filter

Solution : Vérifiez la syntaxe du filtre. LDAP ne supporte pas * dans certains champs, notamment userPrincipalName. Testez le filtre avec ldapsearch avant de l’ajouter à Snipe-IT.

Aucun utilisateur retourné

Solution : Vérifiez que la Base DN dans Snipe-IT correspond bien à votre structure AD (OU=Users,DC=exemple,DC=ad).

Certains utilisateurs sont exclus alors qu’ils ne devraient pas l’être

Solution : Assurez-vous que les groupes mentionnés dans memberof sont corrects et que les utilisateurs en font bien partie.

7️⃣ Conclusion

Avec cette configuration, Snipe-IT ne synchronise que les utilisateurs actifs appartenant à des groupes spécifiques, tout en excluant ceux dont l’adresse userPrincipalName ne correspond pas aux critères définis. Cela améliore la sécurité et évite d’importer des comptes non pertinents.

Besoin d’un ajustement spécifique ? Testez d’abord avec ldapsearch pour éviter toute erreur avant d’appliquer les modifications à Snipe-IT ! 🚀