Aller au contenu
medium

LDAP, Active Directory et Kerberos : les annuaires d'entreprise

12 min de lecture

LDAP et Active Directory sont la source de vérité des identités dans la plupart des organisations. Même avec un IdP moderne comme Keycloak, les utilisateurs viennent souvent d’un annuaire LDAP ou AD. Comprendre leur structure (DN, OU, attributs) et leurs protocoles associés (Kerberos, RADIUS) est essentiel pour intégrer des systèmes existants.

Ce guide explique d’où viennent les identités dans les organisations. À la fin, vous saurez :

  • Lire un DN LDAP et naviguer dans une arborescence
  • Distinguer Active Directory de LDAP simple
  • Comprendre le fonctionnement de Kerberos (tickets, KDC)
  • Situer RADIUS et TACACS+ dans l’écosystème AAA

Prérequis : avoir lu Les bases de l’IAM.

Avant les annuaires, chaque application gérait ses propres utilisateurs. Résultat :

  • Comptes dupliqués partout
  • Mots de passe différents par application
  • Désactivation manuelle app par app au départ d’un employé
  • Aucune vue centralisée des accès

Un annuaire centralise les identités. Les applications interrogent l’annuaire au lieu de maintenir leur propre base d’utilisateurs.

LDAP (Lightweight Directory Access Protocol) est un protocole pour accéder à un annuaire. Ce n’est pas un produit, c’est une norme (RFC 4511).

Plusieurs produits implémentent le protocole LDAP. Le choix dépend de votre environnement (Windows, Linux), de vos besoins en fonctionnalités avancées et de votre politique d’hébergement.

ProduitÉditeurContexte
Active DirectoryMicrosoftEntreprises Windows
OpenLDAPOpen sourceLinux, auto-hébergé
FreeIPARed HatLinux, intégration Kerberos
389 Directory ServerRed Hat/FedoraAlternative OpenLDAP
Azure AD DSMicrosoftCloud Azure (LDAP managé)

LDAP organise les entrées en arbre (Directory Information Tree). Chaque nœud a un Distinguished Name (DN) unique.

Structure DIT LDAP : dc=example,dc=com avec ou=People (alice, bob), ou=Groups (developers, admins), ou=Services (api-backend)

Le Distinguished Name (DN) identifie de manière unique une entrée dans l’arbre.

uid=alice,ou=People,dc=example,dc=com
PartieSignificationNom complet
uid=aliceIdentifiant de l’entréeUser ID
ou=PeopleUnité organisationnelleOrganizational Unit
dc=example,dc=comDomaine (racine)Domain Component

Chaque entrée LDAP possède :

  • Une classe d’objet (objectClass) qui définit les attributs possibles
  • Des attributs avec des valeurs

Exemple d’entrée utilisateur :

dn: uid=alice,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
uid: alice
cn: Alice Martin
sn: Martin
mail: alice.martin@example.com
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/alice
OpérationDescriptionExemple
BindAuthentification LDAPldapwhoami -D "uid=alice,..." -W
SearchRecherche d’entréesldapsearch -b "dc=example,dc=com" "(uid=alice)"
AddCréation d’entréeldapadd -f user.ldif
ModifyModification d’attributsldapmodify -f changes.ldif
DeleteSuppression d’entréeldapdelete "uid=alice,..."
Fenêtre de terminal
# Trouver tous les membres du groupe developers
ldapsearch -x -H ldap://ldap.example.com \
-b "dc=example,dc=com" \
-D "cn=admin,dc=example,dc=com" -W \
"(&(objectClass=posixGroup)(cn=developers))"

Active Directory (AD) est bien plus qu’un annuaire LDAP. C’est un service d’identité complet pour les environnements Windows.

Active Directory intègre de nombreuses fonctionnalités qui dépassent un simple annuaire LDAP. C’est un écosystème complet pour gérer les identités, les postes de travail et les politiques de sécurité dans un environnement Windows.

FonctionnalitéLDAP seulActive Directory
Annuaire
Authentification Kerberos✅ Intégré
SSO Windows✅ Transparent
Stratégies de groupe (GPO)
Trusts inter-domaines
DNS intégré
Réplication multi-maîtreDépend du produit✅ Natif

AD organise les objets en :

  • Forêts (forest) : niveau le plus haut, collection de domaines
  • Domaines : unité administrative (ex: corp.example.com)
  • OU (Organizational Units) : conteneurs pour organiser les objets
  • Objets : utilisateurs, groupes, ordinateurs, GPO

Active Directory propose plusieurs types de groupes avec des portées différentes. Comprendre ces différences est essentiel pour structurer correctement vos permissions et éviter les problèmes de résolution inter-domaines.

TypePortéeUsage
Domain LocalUn domainePermissions sur ressources locales
GlobalUn domaine, utilisable partoutRegrouper des utilisateurs
UniversalToute la forêtGroupes inter-domaines

Kerberos est un protocole d’authentification par tickets. C’est le mécanisme natif d’Active Directory et de FreeIPA.

Sans Kerberos, chaque service redemande le mot de passe. Avec Kerberos :

  1. Vous vous authentifiez une seule fois auprès du KDC
  2. Vous recevez un ticket (TGT)
  3. Ce ticket vous donne accès aux services sans retaper le mot de passe

Analogie : c’est comme un bracelet de festival. Vous passez une fois au guichet d’entrée (KDC), on vous donne un bracelet (TGT). Ensuite, chaque scène (service) scanne votre bracelet sans redemander votre pièce d’identité.

Kerberos utilise un vocabulaire spécifique. Ces termes reviennent constamment dans les configurations et les logs d’erreurs, il est donc important de les maîtriser.

TermeSignification
KDCKey Distribution Center — le serveur central
TGTTicket-Granting Ticket — ticket initial, obtenu au login
Service TicketTicket pour accéder à un service spécifique
PrincipalIdentité Kerberos (user@REALM ou service/host@REALM)
RealmDomaine Kerberos (convention : MAJUSCULES)
KeytabFichier contenant la clé d’un principal (pour les services)
  1. Authentification initiale (AS-REQ/AS-REP)

    L’utilisateur s’authentifie auprès du KDC avec son mot de passe. Le KDC retourne un TGT (chiffré avec la clé de l’utilisateur).

  2. Demande de Service Ticket (TGS-REQ/TGS-REP)

    Pour accéder à un service (ex: HTTP/webapp.example.com), l’utilisateur présente son TGT au KDC. Le KDC retourne un Service Ticket (chiffré avec la clé du service).

  3. Accès au service (AP-REQ)

    L’utilisateur présente le Service Ticket au serveur. Le serveur déchiffre le ticket avec sa keytab et authentifie l’utilisateur. Le serveur ne contacte pas le KDC — validation locale.

Flux d'authentification Kerberos : User obtient un TGT du KDC, puis un Service Ticket pour accéder à la Webapp sans retransmettre son mot de passe

Dans un navigateur, Kerberos passe via SPNEGO (Simple and Protected GSSAPI Negotiation) :

  • Le navigateur envoie un header Authorization: Negotiate <token>
  • Le token contient le ticket Kerberos encapsulé
  • Le serveur valide le ticket

C’est ce qui permet le SSO transparent dans les intranets Windows/FreeIPA.

PrérequisToléranceConséquence si non respecté
NTP synchronisé± 5 minutesTickets rejetés (“clock skew”)
DNS correctRésolution directe et inverseÉchec de localisation du KDC
KDC disponibleHaute disponibilité requiseAuthentification impossible

Pour l’accès réseau et administrateur, deux protocoles dominent.

RADIUS (Remote Authentication Dial-In User Service) gère l’authentification pour :

  • Connexions WiFi (WPA2-Enterprise)
  • VPN
  • Accès réseau (802.1X)
ComposantRôle
SupplicantLe client qui veut se connecter
AuthenticatorLe point d’accès / switch
RADIUS ServerValide les credentials (FreeRADIUS, NPS)

Fonctionnement simplifié :

  1. L’utilisateur se connecte au WiFi avec ses credentials
  2. Le point d’accès envoie les credentials au serveur RADIUS
  3. RADIUS vérifie (souvent contre LDAP/AD)
  4. RADIUS répond Accept/Reject
  5. Le point d’accès autorise ou bloque l’accès

TACACS+ (Terminal Access Controller Access-Control System Plus) est privilégié pour l’administration des équipements réseau (Cisco, etc.).

DifférenceRADIUSTACACS+
TransportUDPTCP (plus fiable)
ChiffrementMot de passe seulPayload complet
Séparation AuthN/AuthZCombinésSéparés (plus granulaire)
Usage typiqueAccès utilisateur (WiFi, VPN)Admin réseau

LDAP/AD et les IdP modernes ne s’excluent pas mutuellement — ils se complètent. Dans la plupart des architectures, l’annuaire reste la source de vérité pour les identités, tandis que l’IdP expose ces identités aux applications web via des protocoles standards.

CritèreLDAP/ADIdP moderne (Keycloak, Okta)
Source de vérité✅ Souvent la sourceConsomme souvent LDAP
Protocole d’authentificationLDAP Bind / KerberosOIDC, SAML
Web / SPA / Mobile⚠️ Pas adapté✅ Conçu pour
SSO inter-apps web⚠️ Limité✅ Natif
Fédération B2B⚠️ Complexe✅ Standard

Recommandation : utilisez LDAP/AD comme source d’identités (user store), et un IdP moderne (Keycloak, Okta) comme point d’authentification pour les applications web.

ErreurConséquenceSolution
Bind LDAP en clair (port 389)Credentials interceptésUtiliser LDAPS (636) ou StartTLS
Service accounts avec mots de passe faiblesCompromission de servicesKeytabs Kerberos + rotation
Clock skew KerberosSSO casséNTP sur tous les hôtes
Groupes AD trop imbriquésPerformances + confusionLimiter la profondeur, documenter

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.