LDAP (Lightweight Directory Access Protocol) est un protocole standard ouvert, basé sur TCP/IP, conçu pour accéder et maintenir des services d’annuaire distribués sur un réseau IP.
Il est "léger" par rapport à son prédécesseur complexe, le protocole DAP (Directory Access Protocol) de la norme X.500.
- Protocole d'interrogation et de modification d'annuaires.
- Fonctionne sur TCP/IP :
- Port 389 : LDAP standard (non chiffré) ou LDAP avec StartTLS (la connexion démarre non chiffrée puis est sécurisée via l'opération StartTLS).
- Port 636 : LDAPS (LDAP over SSL/TLS - la connexion est chiffrée dès le départ). L'utilisation de StartTLS ou LDAPS est essentielle pour la sécurité.
- Composants standardisés : Modèle de données, Modèle de nommage, Modèle fonctionnel (opérations), Modèles de sécurité et de réplication.
- Développé initialement en 1993 (Université du Michigan) comme alternative simple à DAP.
- La version majeure et actuelle est LDAPv3, définie par l'IETF (RFC 4510 et suivantes), qui a standardisé le protocole et ajouté des fonctionnalités clés comme l'extensibilité, la sécurité (TLS) et l'internationalisation.
- Organisation hiérarchique des données en Arbre d'Information d'Annuaire (DIT), idéale pour représenter des structures organisationnelles.
- Structure hiérarchique où chaque nœud (entrée) représente une entité (personne, groupe, serveur, application...).
- Annuaire = arbre d'entrées.
- Entrée = ensemble d'attributs.
- Attribut = nom (type) + une ou plusieurs valeurs. (Différent de SQL où un attribut a une seule valeur).
- Attributs sans valeur sont absents (pas de NULL).
- Schéma LDAP : C'est la "grammaire" de l'annuaire. Il définit :
- Les
objectClass
(types d'objets) autorisées (ex: person
, organizationalUnit
, inetOrgPerson
). Chaque entrée appartient à une ou plusieurs objectClass
.
- Les
attributeTypes
(attributs) autorisés, leur syntaxe (texte, nombre, binaire...), s'ils sont mono ou multi-valués, et quels attributs sont obligatoires ou optionnels pour chaque objectClass
.
- Le schéma garantit la structure, la cohérence et l'interopérabilité des données dans l'annuaire.
- Nommage hiérarchique reflétant souvent l'organisation (ou la structure DNS).
- Composants courants :
dc
(Domain Component), ou
(Organizational Unit), cn
(Common Name), uid
(User ID).
- Nom Distingué (DN) : Identifiant unique et absolu d'une entrée (chemin complet depuis la racine). Ex:
uid=jdupont,ou=utilisateurs,dc=exemple,dc=com
.
- Nom Distingué Relatif (RDN) : Partie la plus spécifique du DN, unique sous son parent. Ex:
uid=jdupont
.
- Client se connecte au serveur LDAP (port 389 ou 636).
- Communication asynchrone possible (le client peut envoyer plusieurs requêtes sans attendre les réponses).
Bind
: Authentification et spécification de la version du protocole.
Search
: Recherche et récupération d'entrées/attributs.
Compare
: Vérifie si une entrée a un attribut avec une valeur spécifique.
Add
: Ajoute une nouvelle entrée.
Delete
: Supprime une entrée.
Modify
: Modifie les attributs d'une entrée existante.
ModifyDN
: Renomme ou déplace une entrée (change son DN/RDN).
Unbind
: Ferme la connexion.
Abandon
: Annule une opération en cours.
Extended Operation
: Pour des opérations non standardisées.
StartTLS
: Opération pour négocier une connexion TLS sur le port standard (389) après l'établissement initial de la connexion TCP. À contraster avec LDAPS (port 636) où TLS est établi avant toute communication LDAP.
- Méthodes de
Bind
:
- Anonyme : Accès très limité (souvent lecture seule sur des informations publiques). À éviter pour les opérations sensibles.
- Simple : Nom d'utilisateur (DN) et mot de passe (envoyé en clair si la connexion n'est pas protégée par TLS !). Requiert impérativement LDAPS ou StartTLS.
- SASL (Simple Authentication and Security Layer) : Framework permettant des mécanismes d'authentification plus robustes (ex: Kerberos, GSSAPI, EXTERNAL pour authentification basée sur certificat client TLS).
- Sécurité Essentielle :
- Toujours utiliser LDAPS ou StartTLS pour protéger les identifiants et les données en transit.
- Configurer des Listes de Contrôle d'Accès (ACLs) précises sur le serveur LDAP pour définir qui (quel DN, groupe, ou type d'accès) a le droit de lire ou modifier quelles parties de l'annuaire (DIT) et quels attributs. Le principe du moindre privilège doit s'appliquer.
- Utiliser des comptes de service dédiés avec des mots de passe forts pour les applications se liant à l'annuaire.
- Standard textuel pour représenter les données LDAP et les opérations de mise à jour.
- Structure typique avec
dc
à la racine, puis des ou
pour l'organisation.
- Outre Active Directory (qui est un service d'annuaire utilisant LDAP), d'autres serveurs LDAP existent :
- OpenLDAP : Implémentation open-source très répandue et mature.
- 389 Directory Server : Autre implémentation open-source robuste (utilisée par Red Hat).
- Oracle Unified Directory (OUD), Microsoft Active Directory Lightweight Directory Services (AD LDS), etc.
- Mécanismes permettant à un serveur LDAP de rediriger un client vers un autre serveur qui détient l'information demandée lorsque l'annuaire est distribué.
- Permet de répartir la charge et les données sur plusieurs serveurs.
- Avantage : Centralisation et standardisation de l'information.
- Usages :
- Authentification centralisée pour systèmes (Linux/Unix via PAM/NSS), applications web, VPN, Wi-Fi (RADIUS via LDAP), etc.
- Carnet d'adresses centralisé (pour clients mail, applications).
- Stockage de configuration pour certaines applications ou services.
- Autorisation : Stockage des appartenances aux groupes utilisées par d'autres systèmes pour contrôler les accès.
- Base de l'annuaire Active Directory.
- Se fait via l'opération
Bind
du protocole LDAP.
- Implémentation par Microsoft des services d'annuaire pour les environnements Windows Server. Nom complet : Active Directory Domain Services (AD DS).
- Système centralisé pour gérer utilisateurs, ordinateurs, sécurité, stratégies, et ressources.
- AD DS utilise LDAPv3 comme l'un de ses principaux protocoles d'accès pour interroger et modifier l'annuaire. Les outils d'administration AD et de nombreuses applications tierces communiquent avec les DC via LDAP.
- Cependant, pour l'authentification native des utilisateurs et ordinateurs Windows au sein du domaine, AD DS utilise principalement Kerberos (UDP/TCP 88). Kerberos offre une authentification plus sécurisée (basée sur des tickets chiffrés) et le Single Sign-On (SSO).
- AD étend le schéma LDAP standard avec des objets et attributs spécifiques à Windows.
¶ Domaine
- Unité administrative et de réplication de base. Regroupement logique de ressources (utilisateurs, ordinateurs...) partageant la même base de données d'annuaire et les mêmes politiques de sécurité. Limite d'authentification.
- Ensemble d'un ou plusieurs domaines AD partageant un schéma commun, une configuration commune et un Catalogue Global. Limite de sécurité ultime (les approbations ne dépassent généralement pas la forêt). Les domaines d'une forêt ont des relations d'approbation transitives bidirectionnelles automatiques.
¶ Nom de domaine vs Nom NetBIOS
- AD utilise des noms de domaine DNS (ex:
entreprise.local
, ad.societe.com
).
- Le nom NetBIOS est un nom plus court (15 caractères max), hérité pour la compatibilité descendante.
- Un serveur Catalogue Global (GC) est un Contrôleur de Domaine qui héberge :
- Une copie complète et accessible en écriture de tous les objets de son propre domaine.
- Une copie partielle et en lecture seule de tous les objets de tous les autres domaines de la forêt. La copie partielle contient un sous-ensemble d'attributs jugés utiles pour les recherches (définis dans le schéma comme étant répliqués dans le GC).
- Rôles Clés du GC :
- Permettre des recherches rapides d'objets dans toute la forêt sans avoir à contacter un DC de chaque domaine.
- Résoudre les Noms Principaux d'Utilisateur (UPN - user@domain.com) lors de l'ouverture de session, surtout si l'utilisateur appartient à un domaine différent de celui de la machine.
- Fournir l'information d'appartenance aux groupes universels lors de l'ouverture de session.
- Il est recommandé d'avoir au moins un GC par site physique pour optimiser les recherches et les ouvertures de session inter-domaines.
- Concept permettant de mapper la topologie physique du réseau (réseaux locaux bien connectés séparés par des liens WAN plus lents ou coûteux) à la structure logique d'AD.
- Site AD : Représente une zone du réseau où la connectivité est considérée comme rapide et fiable (typiquement un LAN ou un ensemble de LANs très bien connectés). Un site est défini par un ou plusieurs sous-réseaux IP.
- Liens de Sites : Connectent les sites AD entre eux. On leur associe un coût (reflétant la bande passante/latence) et une fréquence de réplication.
- Utilité :
- Contrôler et optimiser le trafic de réplication AD : La réplication entre DCs d'un même site (intra-site) est fréquente et non compressée. La réplication entre sites (inter-site) est moins fréquente (selon le planning du lien), compressée, et suit la topologie définie par les liens et leurs coûts (via le KCC).
- Localisation des services par les clients : Les postes clients et serveurs membres utilisent les informations de site pour trouver le contrôleur de domaine (et le GC) le plus "proche" sur le réseau pour s'authentifier et traiter les requêtes, réduisant la latence et l'utilisation des liens WAN.
¶ Contrôleur de Domaine (DC)
- Serveur Windows hébergeant une copie (réplique) de la base de données AD (
ntds.dit
) pour son domaine. Authentifie les ouvertures de session, applique les stratégies de groupe.
- Processus d'ajout/suppression du rôle AD DS à un serveur Windows.
- Mécanisme de synchronisation des bases AD entre les DCs d'un même domaine (et pour le GC/Schéma/Configuration entre tous les DCs de la forêt).
- Modèle multi-maître : Les modifications peuvent être faites sur n'importe quel DC (sauf pour certaines opérations gérées par les FSMO).
- Réplication Intra-site : Fréquente (quelques secondes/minutes), utilise la notification de changement, non compressée. Topologie en anneau généralement, avec des connexions supplémentaires pour la redondance.
- Réplication Inter-site : Moins fréquente (par défaut toutes les 3 heures, configurable), basée sur un planning, compressée pour économiser la bande passante WAN.
- KCC (Knowledge Consistency Checker) : Service tournant sur chaque DC qui génère automatiquement la topologie de réplication (objets
connection
dans AD) en se basant sur les Sites et Liens de Sites définis par l'administrateur.
- Concept de Windows NT4 (PDC/BDC), obsolète avec AD qui utilise un modèle multi-maître.
- AD DS : Le service d'annuaire principal.
- DNS : Service critique et indispensable pour AD. Utilisé pour la localisation des DCs et services via des enregistrements spécifiques (SRV records).
- Zones DNS intégrées à Active Directory : Configuration recommandée où les données de la zone DNS sont stockées dans AD (partitions d'annuaire) et répliquées automatiquement avec AD. Avantages : sécurité renforcée (mises à jour dynamiques sécurisées), tolérance aux pannes, réplication multi-maître.
- Rôles uniques pour gérer certaines opérations critiques et éviter les conflits dans un modèle multi-maître.
- Par Forêt :
- Contrôleur de Schéma : Seul DC autorisé à modifier le schéma AD.
- Maître d'Opérations des Noms de Domaine : Gère l'ajout/suppression de domaines dans la forêt.
- (Placement suggéré : Souvent placés ensemble sur un DC bien sécurisé, potentiellement pas un GC, voire virtualisé et mis hors ligne sauf besoin de modification).
- Par Domaine :
- Émulateur PDC : Point de référence pour la synchronisation horaire (source NTP faisant autorité pour le domaine), reçoit les changements de mot de passe en priorité (réplication urgente), gère le verrouillage de compte, agit comme PDC pour les clients/serveurs pré-AD.
- Maître RID (Relative ID) : Alloue des blocs d'identifiants relatifs (RID) uniques à chaque DC pour qu'ils puissent créer des objets (utilisateurs, groupes, ordinateurs) avec un SID (Security IDentifier) unique dans le domaine (SID = SID du domaine + RID).
- Maître d'Infrastructure : Responsable de la mise à jour des références d'objets inter-domaines (ex: appartenance d'un utilisateur d'un domaine A à un groupe d'un domaine B). Met à jour les objets "fantômes". Ne doit pas être placé sur un serveur GC, sauf si tous les DCs du domaine sont aussi des GC.
- (Placement suggéré : PDCe et RID Master sont souvent placés ensemble sur un DC performant et bien connecté dans le domaine. Infrastructure Master sur un DC non-GC bien connecté aux GC d'autres domaines si applicable).
- Représentent les entités gérées dans l'annuaire.
- Conteneur intra-domaine pour organiser les objets (utilisateurs, groupes, ordinateurs, autres OUs).
- Facilite l'administration (délégation de contrôle) et l'application ciblée des Stratégies de Groupe (GPO).
- Collections d'objets (utilisateurs, ordinateurs, autres groupes).
- Types :
- Sécurité : Possèdent un SID, peuvent être utilisés pour attribuer des permissions sur des ressources et pour filtrer l'application des GPO.
- Distribution : Utilisés principalement comme listes de diffusion email, ne possèdent pas de SID.
- Étendues (pour les groupes de sécurité) :
- Domaine Local : Membres de n'importe où dans la forêt + domaines approuvés. Permissions applicables uniquement aux ressources du même domaine que le groupe.
- Global : Membres uniquement du même domaine que le groupe. Utilisable pour attribuer des permissions partout dans la forêt + domaines approuvés.
- Universel : Membres de n'importe quel domaine de la forêt. Utilisable pour attribuer des permissions partout dans la forêt. Nécessite un GC pour résoudre l'appartenance. L'appartenance est répliquée sur tous les GC, attention à l'impact sur la réplication si les changements sont fréquents.
- Stratégie d'Usage Courante (AGDLP / AGUDLP) :
- Accounts (Comptes utilisateurs/ordinateurs) -> Global Groups (Groupes Globaux, par rôle/fonction) -> (Universal Groups - si besoin inter-domaines) -> Domain Local Groups (Groupes Locaux de Domaine, représentent les ressources/permissions) -> Permissions (Permissions attribuées aux groupes Locaux de Domaine sur les ressources).
¶ Stratégie de Domaine
- GPO par défaut liée à la racine du domaine, définit généralement la politique de mot de passe et de verrouillage de compte pour le domaine.
- Ensembles de paramètres de configuration (sécurité, logiciels, scripts, préférences...) appliqués aux utilisateurs et ordinateurs.
- Liées à des Sites, Domaines, ou OUs.
- Ordre de Traitement (LSDOU) : Les GPO sont appliquées dans cet ordre : 1. GPO Locale -> 2. GPO liées au Site -> 3. GPO liées au Domaine -> 4. GPO liées aux OUs (de la plus haute à la plus basse dans la hiérarchie).
- Priorité : En cas de conflit, le dernier GPO appliqué (le plus proche de l'objet) l'emporte.
- Héritage : Les objets héritent des GPO liées aux conteneurs parents.
- Blocage d'héritage (sur une OU) et GPO Appliquée/Enforced (sur un lien GPO) peuvent modifier ce comportement par défaut.
- Suite d'outils à installer sur un poste client Windows (ou un serveur membre) pour gérer à distance les serveurs et rôles Windows, y compris AD DS.
- Inclut :
- Consoles MMC (.msc) : Utilisateurs et ordinateurs AD (
dsa.msc
), Sites et services AD (dssite.msc
), Domaines et approbations AD (domain.msc
), Gestion des stratégies de groupe (gpmc.msc
), Gestion DNS (dnsmgmt.msc
), etc.
- Modules PowerShell : Des ensembles de commandes (cmdlets) pour administrer AD via la ligne de commande ou des scripts.
- Le module
ActiveDirectory
pour PowerShell est l'outil de choix pour l'administration moderne d'AD.
- Permet l'automatisation des tâches répétitives, la gestion en masse (création/modification d'utilisateurs, groupes...), l'interrogation complexe de l'annuaire, et la gestion fine des permissions.
- Offre des capacités allant bien au-delà des consoles graphiques pour de nombreuses tâches avancées.
- AD étant le cœur de l'infrastructure Windows, sa sécurité est primordiale.
- Modèle d'Administration à Plusieurs Niveaux (Tier Model) : Séparer les comptes d'administration en niveaux (Tier 0 : Contrôle de l'identité - DCs, ADFS, PKI ; Tier 1 : Serveurs d'entreprise ; Tier 2 : Postes de travail). Un compte d'un niveau inférieur ne doit jamais pouvoir se connecter ou administrer un système d'un niveau supérieur.
- Principe du Moindre Privilège : N'accorder que les permissions strictement nécessaires aux utilisateurs et aux comptes de service pour accomplir leurs tâches. Utiliser la délégation de contrôle au niveau des OUs.
- Sécurisation des Contrôleurs de Domaine :
- Sécurité physique et de l'hyperviseur (si virtualisés).
- Limiter les rôles et logiciels installés sur les DCs.
- Utiliser des pare-feux pour restreindre les flux réseaux vers/depuis les DCs.
- Ne pas naviguer sur Internet ou consulter ses emails depuis un DC.
- Surveillance et Audit : Configurer et surveiller les journaux d'événements de sécurité (échecs/succès d'ouverture de session, modifications de groupes sensibles, etc.). Utiliser des outils SIEM ou des solutions spécialisées de surveillance AD.
- Gestion des Mots de Passe : Appliquer des politiques de mot de passe robustes (longueur, complexité, historique). Utiliser les Stratégies de Mot de Passe Affinées (Fine-Grained Password Policies - FGPP) pour appliquer des politiques différentes à des groupes spécifiques (ex: comptes admin vs utilisateurs standard).
- Contrôleurs de Domaine en Lecture Seule (RODC) : Déployer des RODC dans des sites physiquement moins sécurisés (ex: succursales). Ils hébergent une copie en lecture seule de l'annuaire (sauf pour certains secrets) et ne répliquent pas les modifications sortantes, réduisant la surface d'attaque.
- Microsoft Entra ID (anciennement Azure Active Directory ou Azure AD) est le service d'identité et d'annuaire basé sur le cloud de Microsoft.
- Il est distinct d'Active Directory Domain Services (AD DS) qui est conçu pour les réseaux locaux (on-premises).
- Les organisations utilisent souvent les deux. Microsoft Entra Connect Sync (anciennement Azure AD Connect) est l'outil permettant de synchroniser les objets identité (utilisateurs, groupes) de l'AD DS local vers Microsoft Entra ID.
- Permet des scénarios d'identité hybride, offrant une expérience utilisateur cohérente (ex: même identifiant/mot de passe pour les ressources locales et cloud - via la synchronisation de hachage de mot de passe ou l'authentification directe).
- Entra ID est le service d'identité principal pour Microsoft 365, Azure, et des milliers d'autres applications SaaS (Software as a Service).
- Gère l'authentification et l'autorisation pour les applications cloud et mobiles.
- Utilise des protocoles d'authentification modernes comme OAuth 2.0, OpenID Connect (OIDC), SAML 2.0.
- Prend en charge l'Authentification Multi-Facteurs (MFA), l'Accès Conditionnel (Conditional Access), la gestion des appareils (jonction Entra, jonction Hybride Entra).
- Structure : Entra ID a une structure "plate", sans OUs ni GPOs comme AD DS. La gestion se fait via des groupes et des politiques ciblées.
- Protocoles : Principalement HTTP/S (OAuth, OIDC, SAML) vs Kerberos/LDAP pour AD DS.
- Focus : Entra ID est axé sur l'accès des utilisateurs aux applications, tandis qu'AD DS est axé sur la gestion des utilisateurs, ordinateurs et serveurs au sein d'un réseau local.
- Ce n'est pas un remplacement direct d'AD DS pour la gestion de serveurs et postes locaux, mais plutôt un complément essentiel dans les environnements modernes hybrides ou cloud-only.