← Réseaux

Active Directory — LDAP, DNS et Kerberos

Sommaire

Trois protocoles font fonctionner Active Directory : LDAP pour accéder à l'annuaire, DNS pour localiser les contrôleurs, Kerberos pour authentifier. Si l'un tombe, l'annuaire ne fonctionne plus.

1. LDAP

LDAP (Lightweight Directory Access Protocol) est le protocole d'accès et d'administration des annuaires. Il permet de rechercher, ajouter, supprimer et modifier des entrées.

Active Directory l'utilise pour toutes les interactions avec sa base : c'est LDAP qui circule quand une application interroge l'annuaire pour valider un compte ou récupérer une liste d'utilisateurs.

VariantePortApport
LDAPTCP/389Accès standard, en clair
LDAPSTCP/636LDAP sur SSL/TLS : confidentialité et intégrité. Nécessite un certificat
LDAP SigningTCP/389Signature numérique des requêtes : authenticité et intégrité, via SASL Bind

Distinction régulièrement demandée : LDAP Signing protège contre l'altération des requêtes et les attaques de type man-in-the-middle ; LDAPS protège la confidentialité par chiffrement. Ce ne sont pas des alternatives mais des protections complémentaires, et Microsoft recommande d'activer les deux.

La structure de l'annuaire

Un annuaire LDAP est un ensemble d'entrées, chacune composée d'attributs (nom, type, valeur). Les entrées s'organisent hiérarchiquement dans des unités d'organisation.

2. DNS

Active Directory ne fonctionne pas sans DNS. C'est la dépendance la plus souvent sous-estimée, et la première cause de panne d'un domaine.

Pour joindre gameon.local, un poste n'interroge pas une adresse IP connue d'avance : il effectue une requête DNS pour trouver le contrôleur de domaine.

EnregistrementRôle
AAssocie le nom d'un contrôleur à son adresse IP
SRVLocalise les services : contrôleurs de domaine, KDC Kerberos, catalogue global, PDC Emulator
CNAMEAlias, notamment pour identifier les DC par leur GUID dans la forêt

Les enregistrements SRV sont le cœur du mécanisme : ils répondent à la question « quel serveur rend ce service dans ce domaine ? ». Ils sont créés automatiquement à la promotion du contrôleur, dans les zones _msdcs, _sites, _tcp et _udp.

En pratique

Vérifications utiles depuis un poste client :

nslookup gameon.local
nslookup -type=SRV _ldap._tcp.dc._msdcs.gameon.local
ipconfig /all                     # contrôler le serveur DNS attribué
ipconfig /registerdns             # forcer l'enregistrement du poste

3. Kerberos

Kerberos v5 est le protocole principal d'authentification d'un domaine AD. Il n'intervient ni dans l'annuaire, ni dans la résolution de noms : il ne fait qu'authentifier.

ComposantRôle
KDC (Key Distribution Center)Présent sur chaque DC, il regroupe les deux services suivants
AS (Authentication Service)Délivre un TGT (Ticket-Granting Ticket)
TGS (Ticket-Granting Service)Délivre un ticket de service pour une ressource précise

Le déroulé

  1. L'utilisateur ouvre sa session : le poste contacte l'AS du KDC.
  2. L'AS vérifie l'identité et délivre un TGT, valable environ 10 heures, renouvelable.
  3. Pour accéder à un partage, le poste présente son TGT au TGS.
  4. Le TGS délivre un ticket de service propre à cette ressource.
  5. Le poste présente ce ticket au serveur de fichiers, qui accorde ou refuse l'accès.

Le TGT évite de se réauthentifier en permanence : c'est ce qui rend l'authentification unique possible. Les tickets de service sont réutilisables tant qu'ils sont valides. Le chiffrement symétrique (AES) protège contre le rejeu et l'interception.

Un ticket contient l'identité de l'utilisateur ou du service, une clé de session, une durée de validité, et pour un ticket de service l'identité de la ressource autorisée — ce qui empêche sa réutilisation frauduleuse ailleurs.

Si le KDC est indisponible, plus aucune authentification n'est possible : nouvelle justification des deux contrôleurs de domaine. Une bascule vers NTLM reste techniquement possible, mais ce protocole est nettement moins sûr et doit être limité, voire désactivé.

Kerberos est sensible à l'heure : un décalage de plus de 5 minutes entre le poste et le contrôleur fait échouer l'authentification, par protection contre le rejeu. D'où l'importance de la synchronisation NTP, assurée par le DC porteur du rôle PDC Emulator.

4. Les ports à connaître

ServicePort
LDAPTCP/389
LDAPSTCP/636
KerberosTCP et UDP/88
DNSTCP et UDP/53
Catalogue globalTCP/3268 — 3269 en SSL
SMB (partages, SYSVOL)TCP/445
NTP (synchronisation horaire)UDP/123
Changement de mot de passe KerberosTCP et UDP/464

Ces ports sont à ouvrir entre les postes et les contrôleurs lorsqu'un pare-feu sépare les deux — cas courant quand les serveurs sont dans un VLAN dédié. Voir la fiche Pare-feu, DMZ et filtrage.

5. Les identifiants d'objet

AttributFormatUnique dansChange ?
DistinguishedName (DN) CN=Alice,OU=Compta,DC=gameon,DC=local L'annuaire Oui : en cas de déplacement ou de renommage d'une OU
ObjectGUID 128 bits générés automatiquement La forêt Jamais : il suit l'objet de sa création à sa suppression
ObjectSID Identifiant de sécurité attribué par le DC Le domaine Jamais dans la même forêt
sAMAccountName alice ou GAMEON\alice Le domaine Modifiable
UserPrincipalName (UPN) alice@gameon.local La forêt Modifiable

Le DN représente le chemin LDAP complet : domaine + OU + objet. Il se lit de droite à gauche, du plus général au plus précis. Deux objets ne peuvent pas porter le même CN dans une même OU.

Point essentiel pour la sécurité : les permissions référencent l'ObjectSID, pas le nom. C'est pourquoi renommer un compte ne casse aucun droit, et pourquoi recréer un compte supprimé portant le même nom ne lui rend pas ses anciennes permissions — le nouveau SID est différent. Sur un partage, les anciennes permissions apparaissent alors comme un SID non résolu.

Le sAMAccountName est l'identifiant court hérité de Windows 2000, limité à 20 caractères ; l'UPN, au format e-mail, est plus moderne et recommandé pour l'ouverture de session.

Pour afficher le DN d'un objet dans ADUC : activer Affichage > Fonctionnalités avancées, puis ouvrir les propriétés de l'objet et consulter l'onglet Éditeur d'attributs, attribut distinguishedName.

À retenir