Sommaire
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
- Accédez à l’interface d’administration de Snipe-IT.
- Allez dans Paramètres > LDAP.
- Ajoutez votre filtre LDAP dans le champ correspondant.
- Enregistrez et testez la connexion.
- 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 ! 🚀