Après une excavation, numériquement dans le cas présent, je suis tombé sur un vieil article Microsoft Windows Active Directory que j’avais écrit et partagé à mes débuts. C’est-à-dire, au moment où j’abandonnais progressivement le monde Novell, i.e. BIND, NDS et d’eDirectory de l’année 2000.
Quel que soit l’ère, maîtriser son fondamental est toujours de mise, c’est pourquoi je republie à nouveau cet article.
Il est important de pouvoir relativiser vis-à-vis de cet article, particulièrement par rapport aux articles similaires et récents des passionnés, comme ceux de l’éditeur Microsoft ou d’autre passionnés du sujet Windows Active Directory.
Alors, bonne lecture !
Windows Active Directory, généralité
Microsoft Windows Active Directory est une implémentation des protocoles d’annuaire et de nommage standard Internet, dit LDAP (Lightweight Directory Access Protocol). Aussi, il répondant aux normes X.500.
Il utilise un moteur de base de données comme support transactionnel. Il prend en charge plusieurs normes d’interface de programmation d’applications.
Ce dernier permet de centraliser, structurer, organiser et de contrôler les ressources réseaux dans les environnements Windows 200x. Il offre lapossibilité de déléguer l’administration avec finesse par types d’objets.
Sa base permet de stocker des informations sur les objets du réseau : serveurs, domaines, sites, utilisateurs, groupes, ordinateurs, imprimantes et cætera.
Les objets sont stockés avec des attributs, en conséquence ce sont des informations et propriétés diverses qui vous permettent d’effectuer des recherches précises (comme par exemple, l’emplacement d’une imprimante).
Finalement, Windows Active Directory est un service permettant une gestion centralisée des objets.
L’annuaire géré en tant que base de données constitue également le cœur de l’infrastructure Microsoft Windows (2000, 2003 et 2008 et les versions à venir sans aucun nul doute).
Structure de Windows Active Directory
– Objet : représentation d’une ressource du réseau ; e.g. ordinateur, un compte utilisateur et ainsi de suite.
– Classe : groupement logique d’objets ; e.g. les comptes d’utilisateurs, ordinateurs, domaines ou unités organisationnelles.
– Unité organisationnelle (OU) : container utilisé pour organiser les objets d’un domaine à l’intérieur de groupes administratifs logiques : les ordinateurs, les imprimantes, les comptes d’utilisateurs, les fichiers partagés, les applications et même d’autres unités organisationnelles.
– Domaine : chacun des objets d’un réseau existe dans un domaine et chaque domaine contient les informations des objets qu’il contient. Un domaine est sécurisé, l’accès aux objets est limité par des ACL (Access Control List). Les ACL contiennent les permissions, associées aux objets, qui déterminent quels utilisateurs ou quels types d’utilisateurs peuvent y accéder. Dans Windows 2000, toutes les stratégies de sécurité et les configurations (exemple, les droits administratifs) ne se transmettent pas d’un domaine à l’autre. L’administrateur de domaine peut déterminer les stratégies uniquement à l’intérieur de son propre domaine.
– Arbre : groupement ou arrangement hiérarchique d’un ou plusieurs domaines Windows Active Directory qui partagent des espaces de noms contigus, comme par exemple : xp.lab-it.lan, vista.lan, 2003.lab-it.lan … Tous les domaines d’un même arbre partagent un schéma commun (la définition formelle de tous les objets qui peuvent être enregistrés dans une architecture Windows Active Directory. Ils partagent également un catalogue commun.
– Forêt : un groupement ou un arrangement hiérarchique d’un ou plusieurs arbres qui ont des noms disjoints, comme par exemple : adrian.org, lab-it.net et lab-it.com et cætera. Tous les arbres d’une forêt partagent le même schéma commun et le même catalogue, mais ont des structures de noms différentes. Les domaines d’une forêt fonctionnent indépendamment les uns des autres, mais les forêts permettent la communication d’un domaine à un autre.
– Site : combinaison de plusieurs segments réseaux connectés par des liens de niveau 3 OSI (plus ou moins à hauts débits). Ils ne font pas partie de l’espace de nommage d’Active Directory. Mais, ils contiennent seulement les ordinateurs, les objets et les connexions nécessaires pour configurer la réplication. Elle se fait entre les sites et embarquent les stratégies éventuelles. Les sites représentent de façon logique l’architecture Windows Active Directory. Cette représentation peut être différente du squelette réseau au sens niveau 3 OSI.
Rôles FSMO
Le premier contrôleur de domaine installé d’une forêt (ou d’un domaine) assure les cinq rôles FSMO (Flexible Single Master Operation). Les modifications au sein de Windows Active Directory peuvent être faites sur n’importe quel contrôleur de domaine. Toutefois, il y a cinq exceptions pour lesquelles les modifications sont faites à l’aide d’un et un seul contrôleur de domaine particulier.
Les cinq rôles des maîtres d’opérations sont :
– Maître ou contrôleur de schéma [ au niveau de la forêt ]
– Maître d’attribution des noms de domaine [ au niveau de la forêt ]
– Emulateur PDC [ au niveau du domaine ]
– Maître d’identificateur relatif [ au niveau du domaine ]
– Maître d’infrastructure [ au niveau du domaine ]
Les deux premiers rôles sont assignés au niveau de la forêt et les trois derniers au niveau du domaine. Cela implique que s’il y a plusieurs domaines dans une forêt, il y aura automatiquement autant de maîtres d’opérations pour les trois derniers rôles, que de domaines. Par défaut le premier contrôleur de domaine d’une nouvelle forêt contient les cinq rôles. Il ne peut y avoir de domaine sans forêt.
– Rôle du contrôleur de schéma [ forêt ] : il est le seul dans une forêt à pouvoir modifier le schéma. Il duplique les modifications aux autres contrôleurs de domaine dans la forêt lorsqu’il y a eu une modification du schéma. Le fait d’avoir un seul ordinateur qui gère le schéma évite le risque de conflits. Un seul groupe peut faire des modifications sur le schéma, le groupe « Administrateurs du schéma »
– Maître d’attribution de nom de domaine [ forêt ] : seul le contrôleur de domaine ayant ce rôle, est habilité à ajouter un domaine dans une forêt. Si le maître d’opération d’attribution de nom de domaine n’est pas disponible, il est impossible d’ajouter ou de supprimer un domaine à la forêt. Du fait de son rôle, le maître d’attribution de nom de domaine est aussi un serveur de catalogue global. En effet, pour éviter tout problème, celui-ci doit connaître tous les noms des objets présents dans la forêt.
– Emulateur PDC [ domaine ] : Ce rôle sert à assurer principalement la compatibilité avec les versions antérieures de Windows 2000. Il permet la prise en charge des BDC (Backup Domain Controller – contrôleurs auxiliaires de domaine) Windows NT4 en cas de cohabitation, donc en mode mixte. Il assure la gestion des modifications des mots de passe pour des clients antérieurs à Windows 2000.
Les autres rôles sont : authentification de secours, garantie de l’authenticité de votre mot de passe en cas de changement récent, synchronisation de l’heure de tous les DC en fonction de son horloge et enfin, préservation des objets GPo d’un éventuel risque d’écrasement.
– Maître RID [ domaine ] : un SID est composé de deux blocs, un identificateur de domaine et un RID (Identificateur unique dans le domaine). Pour qu’il ne puisse y avoir que deux contrôleurs de domaine (DC) qui assignent le même identifiant (SID) à deux objets différents, le maître RID distribue une plage de RID à chacun des DC. Lorsque la plage de RID a été utilisée, le DC demande une nouvelle plage de RID au maître RID. Le maître RID à aussi la charge des déplacements inter-domaines, pour éviter la duplication de l’objet.
– Maître d’infrastructure [ domaine ] : le maître d’infrastructure sert à mettre à jour, dans son domaine, les références à des objets situés dans d’autres domaines. Si des modifications d’un objet du domaine surviennent (déplacement intra et extra domaine), alors si cet objet est lié à un ou plusieurs objets d’autres domaines, le maître d’infrastructure est responsable de la mise à jour vers les autres domaines. La mise à jour se fait par le biais d’une réplication. Un maître d’infrastructure ne peut pas être ainsi un serveur de catalogue global.
Catalogue Global
Natif ou par réplication, il stocke une réplique complète de tous les objets de l’annuaire pour son domaine hôte et une réplique partielle de tous les objets de l’annuaire pour tous les autres domaines de la forêt. Cette réplique est partielle parce qu’elle ne stocke qu’une partie des valeurs des propriétés pour chaque objet de la forêt. Le catalogue global joue deux rôles clés dans l’annuaire :
– il autorise les ouvertures de session sur le réseau en fournissant des informations sur l’appartenance à un groupe universel à un contrôleur de domaine lorsque le processus d’ouverture de session démarre,
– il permet de retrouver des informations de l’annuaire quel que soit le domaine de la forêt qui stocke réellement les données.
La fonctionnalité Catalogue Global ou GC (Global Catalog) n’est tout d’abord disponible que sur un serveur contrôleur de domaine. Elle permet de stocker les partitions d’annuaire actualisables en mode lecture seule et de déterminer l’emplacement de n’importe quel objet dans l’annuaire. Le GC, disposant des attributs pour chaque objet Active Directory, fait de lui une sorte d’index du méta-annuaire permettant :
– de trouver des informations sur toutes les forêts,
– d’utiliser des informations d’appartenance à des groupes universels pour ouvrir une session sur le réseau,
Un GC contient un réplica en écriture de son propre domaine, et une partielle en lecture seule de la réplique de toutes les autres partitions de la forêt. Seuls les membres du groupe Admins du schéma ont le droit de modifier les attributs stockés dans le GC.
Site et réplication Active Directory
Lors d’une réplication entre deux sites Active Directory (par récurrence entre plusieurs sites), les informations se répliquent uniquement entre un serveur spécifique de chacun des ces sites dans un premier temps. Un serveur tête-de-pont (BHS en anglais pour Bridge Head Server) se définit ainsi, autrement-dit le serveur chargé d’acheminer les informations de son site d’appartenance vers les autres serveurs des autres sites.
Quant à la notion de site, elle est plus profonde que la localisation géographique et dépend essentiellement du plan d’adressage IP et des flux réseaux. Au sein d’un annuaire Windows Active Directory correctement pensé et bien conçu, un site se distingue d’un autre par son adresse réseau.
Ainsi, lorsqu’une modification survient sur un contrôleur de domaine, la mise à jour sera tout d’abord dupliquée sur l’ensemble des contrôleurs de domaine du même site d’appartenance (clairement du site local) du dit contrôleur de domaine, nous parlons ainsi de réplication intra-site.
En fonction des paramètres définis pour la liaison entre les différents sites, la réplication sera ensuite transmise au serveur tête-de-pont du ou des site(s) distant(s), nous parlons ainsi de réplication inter-site.
Le serveur tête-de-pont usera ensuite de la réplication intra-site pour répliquer les mises à jour sur l’ensemble des contrôleurs de domaine de son site d’appartenance.
Dans chaque site, un contrôleur de domaine est automatiquement désigné tête-de-pont par le serveur ISTG (InterSite Topology Generator), cela par un mécanisme d’éléction. Cette élection est instaurée par un contrôleur de domaine de la forêt. Si plus d’un contrôleur de domaine est éligible pour devenir serveur tête-de-pont par défaut, celui dont le GUID (Globally Unique Identifiers) est le plus faible sera systématiquement choisi pour assurer ce rôle. Il va sans dire que l’élection est pipée et ne donnera pas forcément du bon dans un cas concret de production où nous avons la plupart du temps un besoin fort d’optimisation.
Heureusement, il reste possible de choisir des contrôleurs de domaine privilégiés pour que l’ISTG se concentre sur eux lors d’une éventuelle sélection du serveur tête-de-pont. Cela se configure à partir de la console Sites et services Active Directory où il sera possible de désigner manuellement le rôle (la fonction) et le protocole de transport inter-site souhaité, i.e. SMTP over IP ou RPC over IP.
RPC over IP peut être utilisé pour relier n’importe quels sites, quelques soient les domaines qui y sont présents. Généralement, on favorisera le protocole RPC si la bande passante de la liaison reste supérieure ou égal à 1024 Kbits/s.
SMTP ne pourra être utilisé qu’avec des contrôleurs se trouvant dans des domaines différents.
Lors de la désignation manuelle de serveurs privilégiés, il est conseillé d’en sélectionner au moins deux par site (sauf avec Windows 2000 Active Directory), cela pour une raison évidente de tolérance aux pannes. En effet, lors de la présence de contrôleurs de domaine privilégiés, l’ISTG se conformera uniquement à ces contrôleurs de domaine pour déterminer le serveur qui assurera la fonction de serveur tête-de-pont.
En conséquence, si le serveur prédestiné par l’ISTG venait à ne plus fonctionner, l’ISTG recherchera automatiquement un autre contrôleur de domaine ayant le statut de préféré pour assurer le rôle de tête-de-pont afin de maintenir la réplication inter-site.
La désignation d’un seul serveur préféré, suite à un aléa de fonctionnement de ce dernier, l’ISTG peut potentiellement être dans l’incapacité d’en désigner un autre, ce qui provoquera fatalement un refus de réplication inter-site (cependant, c’est un paradoxe et une casse mineure n’importe comment), jusqu’à la prochaine élection.
ISTG, BHS et KCC
Pour mieux comprendre la topologie de réplication Active Directory, déchiffrer la réplication entre contrôleurs de domaine est important.
La topologie est générée automatiquement par un vérificateur de cohérence des connaissances, le fameux KCC (Knowledge Consistency Checker). Ce service fonctionne sur tous les contrôleurs de domaine et génère la topologie de réplication de la forêt avec un cycle de 15 minutes, puis applique automatiquement les changements nécessaires. Par définition, chaque site Active Directory possède au moins un contrôleur de domaine jouant le rôle de ISTG, KCC et HBS.