Guide LDAPSEARCH dans Active Directory (AD)
Introduction
Ce guide détaillé explique comment interroger et s’authentifier sur un annuaire LDAP sous Active Directory (AD). Est documentés ici comment tester les connexions, rechercher des utilisateurs et groupes, gérer les erreurs courantes et construire des filtres LDAP adaptés.
Fonctionnalités Principales
Authentification LDAP sécurisée
Recherche d’utilisateurs et de groupes
Construction et optimisation de filtres LDAP
Intégration LDAP dans une application
Installation et Pré-requis
Un accès à un serveur Active Directory
Un compte utilisateur ayant les droits nécessaires pour interroger LDAP
Outils requis : ldap-utils (Ubuntu/Debian) ou openldap-clients (CentOS/RHEL)
Installation des outils LDAP
# Debian/Ubuntu
sudo apt update && sudo apt install ldap-utils
# CentOS/RHEL
sudo yum install openldap-clients
Authentification et Connexion LDAP
Tester une Connexion avec un Compte AD
ldapsearch -x -H ldap://sous-dc.dc.ad:389 \
-D "DOMAINE\compte_user" -W \
-b "DC=sous-dc,DC=dc,DC=ad" "(objectClass=user)" cn
Erreurs Courantes et Solutions
Erreur |
Cause Possible |
Solution |
---|---|---|
Invalid Credentials (49) |
Mauvais mot de passe ou DN incorrect |
Vérifier le DN, tester DOMAINE\compte_user |
Could not bind to AD user |
Mauvais DN ou compte désactivé |
Vérifier distinguishedName |
Operations Error (1) |
Accès anonyme interdit |
Utiliser -D et -W |
Recherche d’Utilisateurs et de Groupes dans AD
Lister tous les Groupes disponibles
ldapsearch -x -H ldap://sous-dc.dc.ad:389 \
-D "DOMAINE\compte_user" -W \
-b "DC=sous-dc,DC=dc,DC=ad" "(objectClass=group)" cn
Trouver un Groupe spécifique (Group_system
)
ldapsearch -x -H ldap://sous-dc.dc.ad:389 \
-D "DOMAINE\compte_user" -W \
-b "DC=sous-dc,DC=dc,DC=ad" "(cn=Group_system)" dn
Trouver tous les utilisateurs appartenant à un Groupe
ldapsearch -x -H ldap://sous-dc.dc.ad:389 \
-D "DOMAINE\compte_user" -W \
-b "DC=sous-dc,DC=dc,DC=ad" \
"(&(objectClass=user)(memberOf=CN=Group_system,OU=Repertoire_AD,DC=sous-dc,DC=dc,DC=ad))" cn sAMAccountName mail
Construction des Filtres LDAP
Filtres de Base
Filtre |
Explication |
---|---|
|
Trouver tous les groupes |
|
Trouver tous les utilisateurs |
|
Trouver un utilisateur précis |
|
Trouver un groupe précis |
Filtres Complexes (AND / OR)
Filtre |
Explication |
---|---|
|
Trouver tous les utilisateurs
du groupe |
|
Trouver |
Syntaxe AND (&
) : (&(A)(B))
Syntaxe OR (|
) : (|(A)(B))
Tester un Filtre avec ldapsearch
ldapsearch -x -H ldap://sous-dc.dc.ad:389 \
-D "DOMAINE\compte_user" -W \
-b "DC=sous-dc,DC=dc,DC=ad" \
"(&(objectClass=user)(memberOf=CN=Group_system,OU=Repertoire_AD,DC=sous-dc,DC=dc,DC=ad))" cn mail
Intégration LDAP dans une Application
Mapping des Attributs LDAP
Champ |
Attribut AD |
---|---|
Login Name |
|
Prénom |
|
Nom |
|
|
|
Photo |
|
Configuration dans un Fichier YAML
ldap:
server: "ldap://sous-dc.dc.ad:389"
bind_dn: "DOMAINE\compte_user"
bind_password: "TON_MOT_DE_PASSE"
base_dn: "DC=sous-dc,DC=dc,DC=ad"
user_filter: "(&(objectClass=user)(memberOf=CN=Group_system,OU=Repertoire_AD,DC=sous-dc,DC=dc,DC=ad))"
attributes:
username: "sAMAccountName"
first_name: "givenName"
last_name: "sn"
email: "mail"
Checklist Finale
✅ Tester l’authentification LDAP avec
DOMAINE\compte_user
✅ Vérifier les groupes et les utilisateurs avec
ldapsearch
✅ Construire un filtre LDAP pour cibler
Group_system
✅ Intégrer la configuration LDAP dans l’application
✅ Tester la connexion utilisateur via l’application
Si une erreur survient, vérifier les logs et adapter la configuration ! 🚀