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 que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »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.
Pourquoi des annuaires ?
Section intitulée « Pourquoi des annuaires ? »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 — Le protocole d’annuaire
Section intitulée « LDAP — Le protocole d’annuaire »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).
Implémentations LDAP courantes
Section intitulée « Implémentations LDAP courantes »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 | Éditeur | Contexte |
|---|---|---|
| Active Directory | Microsoft | Entreprises Windows |
| OpenLDAP | Open source | Linux, auto-hébergé |
| FreeIPA | Red Hat | Linux, intégration Kerberos |
| 389 Directory Server | Red Hat/Fedora | Alternative OpenLDAP |
| Azure AD DS | Microsoft | Cloud Azure (LDAP managé) |
Structure de l’arborescence (DIT)
Section intitulée « Structure de l’arborescence (DIT) »LDAP organise les entrées en arbre (Directory Information Tree). Chaque nœud a un Distinguished Name (DN) unique.
Anatomie d’un DN
Section intitulée « Anatomie d’un DN »Le Distinguished Name (DN) identifie de manière unique une entrée dans l’arbre.
uid=alice,ou=People,dc=example,dc=com| Partie | Signification | Nom complet |
|---|---|---|
uid=alice | Identifiant de l’entrée | User ID |
ou=People | Unité organisationnelle | Organizational Unit |
dc=example,dc=com | Domaine (racine) | Domain Component |
Attributs et classes d’objets
Section intitulée « Attributs et classes d’objets »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=comobjectClass: inetOrgPersonobjectClass: posixAccountuid: alicecn: Alice Martinsn: Martinmail: alice.martin@example.comuidNumber: 1001gidNumber: 1001homeDirectory: /home/aliceOpérations LDAP
Section intitulée « Opérations LDAP »| Opération | Description | Exemple |
|---|---|---|
| Bind | Authentification LDAP | ldapwhoami -D "uid=alice,..." -W |
| Search | Recherche d’entrées | ldapsearch -b "dc=example,dc=com" "(uid=alice)" |
| Add | Création d’entrée | ldapadd -f user.ldif |
| Modify | Modification d’attributs | ldapmodify -f changes.ldif |
| Delete | Suppression d’entrée | ldapdelete "uid=alice,..." |
Exemple de recherche
Section intitulée « Exemple de recherche »# Trouver tous les membres du groupe developersldapsearch -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 — LDAP + Kerberos + GPO
Section intitulée « Active Directory — LDAP + Kerberos + GPO »Active Directory (AD) est bien plus qu’un annuaire LDAP. C’est un service d’identité complet pour les environnements Windows.
Ce qu’AD ajoute à LDAP
Section intitulée « Ce qu’AD ajoute à LDAP »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 seul | Active Directory |
|---|---|---|
| Annuaire | ✅ | ✅ |
| Authentification Kerberos | ❌ | ✅ Intégré |
| SSO Windows | ❌ | ✅ Transparent |
| Stratégies de groupe (GPO) | ❌ | ✅ |
| Trusts inter-domaines | ❌ | ✅ |
| DNS intégré | ❌ | ✅ |
| Réplication multi-maître | Dépend du produit | ✅ Natif |
Structure AD
Section intitulée « Structure AD »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
Types de groupes AD
Section intitulée « Types de groupes AD »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.
| Type | Portée | Usage |
|---|---|---|
| Domain Local | Un domaine | Permissions sur ressources locales |
| Global | Un domaine, utilisable partout | Regrouper des utilisateurs |
| Universal | Toute la forêt | Groupes inter-domaines |
Kerberos — L’authentification par tickets
Section intitulée « Kerberos — L’authentification par tickets »Kerberos est un protocole d’authentification par tickets. C’est le mécanisme natif d’Active Directory et de FreeIPA.
Pourquoi Kerberos ?
Section intitulée « Pourquoi Kerberos ? »Sans Kerberos, chaque service redemande le mot de passe. Avec Kerberos :
- Vous vous authentifiez une seule fois auprès du KDC
- Vous recevez un ticket (TGT)
- 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é.
Concepts clés
Section intitulée « Concepts clés »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.
| Terme | Signification |
|---|---|
| KDC | Key Distribution Center — le serveur central |
| TGT | Ticket-Granting Ticket — ticket initial, obtenu au login |
| Service Ticket | Ticket pour accéder à un service spécifique |
| Principal | Identité Kerberos (user@REALM ou service/host@REALM) |
| Realm | Domaine Kerberos (convention : MAJUSCULES) |
| Keytab | Fichier contenant la clé d’un principal (pour les services) |
Flux d’authentification Kerberos
Section intitulée « Flux d’authentification Kerberos »-
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).
-
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).
-
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.
SPNEGO : Kerberos dans le navigateur
Section intitulée « SPNEGO : Kerberos dans le navigateur »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érequis techniques Kerberos
Section intitulée « Prérequis techniques Kerberos »| Prérequis | Tolérance | Conséquence si non respecté |
|---|---|---|
| NTP synchronisé | ± 5 minutes | Tickets rejetés (“clock skew”) |
| DNS correct | Résolution directe et inverse | Échec de localisation du KDC |
| KDC disponible | Haute disponibilité requise | Authentification impossible |
AAA réseau : RADIUS et TACACS+
Section intitulée « AAA réseau : RADIUS et TACACS+ »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)
| Composant | Rôle |
|---|---|
| Supplicant | Le client qui veut se connecter |
| Authenticator | Le point d’accès / switch |
| RADIUS Server | Valide les credentials (FreeRADIUS, NPS) |
Fonctionnement simplifié :
- L’utilisateur se connecte au WiFi avec ses credentials
- Le point d’accès envoie les credentials au serveur RADIUS
- RADIUS vérifie (souvent contre LDAP/AD)
- RADIUS répond Accept/Reject
- 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érence | RADIUS | TACACS+ |
|---|---|---|
| Transport | UDP | TCP (plus fiable) |
| Chiffrement | Mot de passe seul | Payload complet |
| Séparation AuthN/AuthZ | Combinés | Séparés (plus granulaire) |
| Usage typique | Accès utilisateur (WiFi, VPN) | Admin réseau |
LDAP vs IdP moderne : quand utiliser quoi ?
Section intitulée « LDAP vs IdP moderne : quand utiliser quoi ? »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ère | LDAP/AD | IdP moderne (Keycloak, Okta) |
|---|---|---|
| Source de vérité | ✅ Souvent la source | Consomme souvent LDAP |
| Protocole d’authentification | LDAP Bind / Kerberos | OIDC, 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.
Erreurs fréquentes
Section intitulée « Erreurs fréquentes »| Erreur | Conséquence | Solution |
|---|---|---|
| Bind LDAP en clair (port 389) | Credentials interceptés | Utiliser LDAPS (636) ou StartTLS |
| Service accounts avec mots de passe faibles | Compromission de services | Keytabs Kerberos + rotation |
| Clock skew Kerberos | SSO cassé | NTP sur tous les hôtes |
| Groupes AD trop imbriqués | Performances + confusion | Limiter la profondeur, documenter |