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

(objectClass=group)

Trouver tous les groupes

(objectClass=user)

Trouver tous les utilisateurs

(sAMAccountName=compte_user)

Trouver un utilisateur précis

(cn=Group_system)

Trouver un groupe précis

Filtres Complexes (AND / OR)

Filtre

Explication

(&(objectClass=user)(memberOf=CN=Group_system,...))

Trouver tous les utilisateurs du groupe Group_system

(|(cn=Group_system)(cn=Admins))

Trouver Group_system ou Admins

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

sAMAccountName

Prénom

givenName

Nom

sn

Email

mail

Photo

thumbnailPhoto

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 ! 🚀