Active Directory

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Active directory)
Aller à : navigation, rechercher
Active Directory
Développeur Microsoft
Environnement Windows
Type service d'annuaire
Politique de distribution incorporé dans Windows

Active Directory (AD) est la mise en œuvre par Microsoft des services d'annuaire LDAP pour les systèmes d'exploitation Windows. L'objectif principal d'Active Directory est de fournir des services centralisés d'identification et d'authentification à un réseau d'ordinateurs utilisant le système Windows. Il permet également l'attribution et l'application de stratégies, la distribution de logiciels, et l'installation de mises à jour critiques par les administrateurs. Active Directory répertorie les éléments d'un réseau administré tels que les comptes des utilisateurs, les serveurs, les postes de travail, les dossiers partagés, les imprimantes, etc. Un utilisateur peut ainsi facilement trouver des ressources partagées, et les administrateurs peuvent contrôler leurs utilisations grâce à des fonctionnalités de distribution, de duplication, de partitionnement et de sécurisation des accès aux ressources répertoriées. Si les administrateurs ont renseigné les attributs convenables, il sera possible d'interroger l'annuaire pour obtenir par exemple : « Toutes les imprimantes couleurs à cet étage du bâtiment ».

Le service d'annuaire Active Directory peut être mis en œuvre sur Windows 2000 Server, Windows Server 2003, Windows Server 2008, Windows Server 2012 et Samba4, il résulte de l'évolution de la base de compte plane SAM. Un serveur informatique hébergeant l'annuaire Active Directory est appelé « contrôleur de domaine ».

Active Directory stocke ses informations et paramètres dans une base de données centralisée. La taille d'une base Active Directory peut varier de quelques centaines d'objets pour de petites installations à plusieurs millions d'objets pour des configurations volumineuses.

Dans les premiers documents Microsoft mentionnant son existence, Active Directory s'est d'abord appelé NTDS (pour NT Directory Services, soit « Services d'annuaire de NT » en français). On peut d'ailleurs encore trouver ce nom dans la littérature couvrant le sujet ainsi que dans certains utilitaires AD comme NTDSUTIL.EXE par exemple, ou le nom du fichier de base de données NTDS.DIT.

Historique[modifier | modifier le code]

Active Directory fut présenté pour la première fois en 1996, mais sa première utilisation remonte à Windows 2000 Server Édition en 1999. Il fut mis à jour dans Windows Server 2003 pour étendre ses fonctionnalités et améliorer son administration. Des améliorations supplémentaires lui ont depuis été adjointes dans Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2 et Windows Server 2012.

Active Directory est le résultat de l'évolution de la base de données de comptes de domaine (principaux de sécurité) SAM (Security Account Manager) et une mise en œuvre de LDAP, protocole de hiérarchie. Sa technologie de stockage est fondée sur le stockage du registre Windows, la base SAM constituant à elle seule une ruche, ce qui physiquement correspond à un fichier portant le nom sam, tout comme les fichiers system et software.

D'un point de vue sémantique, Active Directory est un annuaire LDAP, tout comme l'annuaire d'Exchange 5.5. Exchange 5.5 n'est pas pour autant le seul antécédent technologique à Active Directory, citons également l'annuaire Novell NDS, qui a également constitué un bond technologique en comparaison avec le précédent système NetWare Bindery.

Active Directory peut donc être considéré comme la réponse technologique aux technologies d'annuaire Novell, les deux systèmes étant dérivés de X.500.

Active Directory revoit complètement le stockage des informations de sécurité du domaine, de la structure de la base jusqu'au niveau sémantique. Tout d'abord, le moteur de base de données retenu pour sa mise en œuvre est le moteur de stockage extensible ESENT, dérivé de ESE98 également connu sous le nom de Jet Blue, pour lever l'ambiguïté avec les bases de données Microsoft Access utilisant le moteur Jet Red. Le prédécesseur d'ESE98, ESE97, était le moteur de base de données utilisé pour l'annuaire Exchange 5.5. La différence principale entre ESENT et ESE98 est la taille des pages utilisées et la taille des journaux de transaction.

Active Directory est également conçu pour garantir un niveau de performance et de sécurité adéquat : la base de données ESENT est journalisée et répond à la contrainte ACID. Le moteur est conçu pour supporter des bases dimensionnées pour stocker des millions d'objets.

Structure[modifier | modifier le code]

Objets[modifier | modifier le code]

Active Directory est un service d'annuaire utilisé pour stocker des informations relatives aux ressources réseau sur un domaine.

Une structure Active Directory (AD) est une organisation hiérarchisée d'objets. Les objets sont classés en trois grandes catégories : les ressources (par exemple les imprimantes), les services (par exemple le courrier électronique) et les utilisateurs (comptes utilisateurs et groupes). L'AD fournit des informations sur les objets, il les organise et contrôle les accès et la sécurité.

Chaque objet représente une entité unique — utilisateur, ordinateur, imprimante ou groupe — ainsi que ses attributs. Certains objets peuvent également être des conteneurs pour d'autres objets. Un objet est identifié de manière unique dans l'AD par son nom et possède son propre jeu d'attributs — les caractéristiques et les informations que l'objet peut contenir — défini par un schéma, qui détermine également le type d'objets qui peuvent être stockés dans l'AD.

Chaque objet attribut peut être utilisé dans plusieurs classes d'objets de schéma différents. Ces objets de schéma existent pour permettre au schéma d'être étendu ou modifié si nécessaire. Cependant, comme chaque objet de schéma est intégral à la définition des objets de l'AD, la désactivation ou la modification de ces objets peut avoir de graves conséquences car elle entraîne des modifications fondamentales dans la structure de l'AD. Un objet de schéma, lorsqu'il est modifié, est automatiquement propagé dans Active Directory et une fois créé, il ne peut plus être supprimé (il peut seulement être désactivé). Pour cette raison, une modification du schéma doit être mûrement réfléchie et planifiée[1].

Le nombre de types d'objets disponibles dans un Active Directory n'est pas limité, en voici quelques exemples:

  • OU (Organisational Unit): L'Unité d'Organisation
Dans l'arborescence, ce sont des conteneurs qui permettent de créer une hiérarchie d'objets au sein d'un domaine. Ces OU sont principalement utilisées pour permettre la délégation de droits et pour l'application de GPO. Les OU sont parfois confondues avec les groupes, qui sont des objets et non des conteneurs.
  • Ordinateur
  • Utilisateur
Types de groupes et règles d'affectation d'utilisateurs
  • Groupe : il est principalement destiné à établir des listes d'utilisateurs pour leur attribuer des droits ou des services. On distingue trois types de groupes :
    • Le groupe global : il peut contenir des utilisateurs de son domaine et ne peut être placé que sur des ressources de son domaine.
    • Le groupe local : au sein d'un domaine, il est principalement utilisé pour affecter des droits à des ressources dans un domaine. Il peut comprendre des utilisateurs, des groupes globaux ou universels de tous les domaines de l'annuaire.
    • Le groupe universel : disponible depuis la version 2000, permet d'inclure des groupes et utilisateurs d'autres domaines.

Active Directory étant un annuaire objet, la notion de schéma définit les contraintes concernant la dérivation et l'héritage des objets, sensiblement de la même manière qu'en programmation objet. Cela introduit également la notion d'extension, permettant d'ouvrir l'annuaire à toutes sortes d'applications souhaitant stocker des objets personnalisés au niveau du ou des domaines constituant la forêt Active Directory.

Unité organisationnelle[modifier | modifier le code]

Une Unité organisationnelle (Organizational Unit ; OU ; UO) est un objet conteneur, de la norme ldap, qui est utilisé pour hiérarchiser Active Directory. L'AD permet une hiérarchisation des domaines. À l'intérieur de ces domaines, il existe maintenant des possibilités de structuration et de hiérarchisation des utilisateurs.

Les OU sont le meilleur moyen[réf. nécessaire] de créer ces structures hiérarchiques dans Active Directory. Outre la structuration d'informations, qui offre une clarté accrue dans les annuaires complexes notamment, les OU présentent un avantage important : elles tiennent lieu de frontière pour la délégation d'autorisations administratives. Il est donc possible de personnaliser les droits des différents utilisateurs/groupes de façon ciblée (gestion des mots de passe ; droits d'accès : autorisations concernant les installations...).

Forêts, arborescences et domaines[modifier | modifier le code]

Active Directory introduit la notion de hiérarchie, inhérente aux annuaires objets dérivés de X.500, sous la forme d'une arborescence dans laquelle les utilisateurs et les ordinateurs sont organisés en groupes et sous groupes afin de faciliter l'administration des droits et restrictions utilisateur. C'est aussi Active Directory qui gère l'authentification des utilisateurs sur le réseau Windows. Active Directory exploite cette notion de hiérarchie intensivement, puisque l'entité de sécurité appelée « domaine » est également hiérarchisée dans un ensemble partageant un espace de nom commun, appelé « arborescence », enfin, l'entité de plus haut niveau regroupant les arborescences de domaines constitue la forêt Active Directory.

Active Directory permet une réplication multi-maître, c'est-à-dire que chaque contrôleur de domaine peut être le siège de modifications (ajout, modification, suppression) de l'annuaire, sous réserve de permission accordée par ACL, qui seront répliquées sur les autres contrôleurs de domaine. SAM ne disposait que d'une seule base en écriture, les autres répliquas étant en lecture seule.

Le mécanisme de réplication de ces modifications peut profiter de RPC (liaisons TCP/IP rapides et disponibles) ou SMTP dans les autres cas. La topologie de réplication est générée automatiquement mais elle peut être personnalisée par l'administrateur, tout comme sa planification.

À noter que les ensembles d'espaces de nom correspondant aux arborescences d'Active Directory formant la forêt Active Directory sont superposables à l'espace de nom formé par les zones DNS. DNS est un service indispensable pour le bon fonctionnement de toute l'architecture Active Directory, localisation des contrôleurs de domaine, réplication, etc.

Une arborescence Active Directory est donc composée de :

  • La forêt : structure hiérarchique d'un ou plusieurs domaines indépendants (ensemble de tous les sous domaines Active Directory).
  • L'arbre ou l'arborescence : domaine de toutes les ramifications. Par exemple, dans l'arbre domaine.tld, sous1.domaine.tld, sous2.domaine.tld et photo.sous1.domaine.tld sont des sous-domaines de domaine.tld.
  • Le domaine : constitue les feuilles de l'arborescence. photo.sous1.domaine.tld peut-être un domaine au même titre que domaine.tld.

Le modèle de données Active Directory est dérivé du modèle de données de la norme X.500 : l'annuaire contient des objets représentant des éléments de différents types décrits par des attributs. Les stratégies de groupe (GPO) sont des paramètres de configuration appliqués aux ordinateurs ou aux utilisateurs lors de leur initialisation, ils sont également gérés dans Active Directory.

Le protocole principal d'accès aux annuaires est LDAP qui permet d'ajouter, de modifier et de supprimer des données enregistrées dans Active Directory, et qui permet en outre de rechercher et de récupérer ces données. N'importe quelle application cliente conforme à LDAP peut être utilisée pour parcourir et interroger Active Directory ou pour y ajouter, y modifier ou y supprimer des données.

Attributs des objets utilisateur[modifier | modifier le code]

Attribut Description Exemple Remarque
distinguishedName Identifiant Unique dans le schéma CN=DUPOND Michel,OU=UTILISATEURS,DC=MYCOMPANY,DC=COM
objectGUID Identifiant Unique dans le schéma Codé sur 128 bits, c'est un attribut binaire difficilement exploitable.
name Nom DUPOND Michel
description Description
sAMAccountName Logon mdupond
userPrincipalName Logon UPN mdupond@mycompany.com
adminCount Administrateur ou pas 1 1 = Compte de type Administrateur
department Service DAF\Compta\Clients
physicalDeliveryOfficeName Localisation géographique (bureau) Paris\Tournon\1\101
title Fonction Technicien réseau
mail Adresse e-mail mdupond@mycompany.com
telephoneNumber Téléphone fixe
mobile Téléphone portable
accountExpires Date d'expiration du compte 130040605000000000 Ce chiffre exprimé en nanosecondes représente la différence de temps écoulée depuis le 01/01/1601. Une valeur égale à 9223372036854775807 signifie que la date n'est pas renseignée.
manager Responsable CN=DURAND Marcel,OU=UTILISATEURS,DC=MYCOMPANY,DC=COM Cet attribut s'il est renseigné contiendra le distinguishedName d'un autre utilisateur
employeeId Matricule DX001
lastLogon Date dernière connexion Même remarque que pour accountExpires
userAccountControl État du compte 512
- 512 Enabled Account
- 514 Disabled Account
- 544 Enabled, Password Not Required
- 546 Disabled, Password Not Required
- 66048 Enabled, Password Doesn't Expire
- 66050 Disabled, Password Doesn't Expire
- 66080 Enabled, Password Doesn't Expire & Not Required
- 66082 Disabled, Password Doesn't Expire & Not Required
- 262656 Enabled, Smartcard Required
- 262658 Disabled, Smartcard Required
- 262688 Enabled, Smartcard Required, Password Not Required
- 262690 Disabled, Smartcard Required, Password Not Required
- 328192 Enabled, Smartcard Required, Password Doesn't Expire
- 328194 Disabled, Smartcard Required, Password Doesn't Expire
- 328224 Enabled, Smartcard Required, Password Doesn't Expire & Not Required
- 328226 Disabled, Smartcard Required, Password Doesn't Expire & Not Required

Rôles uniques[modifier | modifier le code]

Article détaillé : FSMO.

Certaines fonctions - on parle de rôles - ne peuvent être prises en charge que par un serveur unique, le maître d'opérations (Operation master en anglais). Ces rôles, appelés en anglais FSMO (pour Flexible Single Master Operations), peuvent être pris en charge par n'importe quel contrôleur de domaine (mais un seul à la fois), sont au nombre de 5 :

Nom du rôle Position Description
Maître de schéma (Schema Master) 1 par forêt Contrôle les modifications apportées au schéma de données Active Directory.
Maître d'attribution de noms de domaine (Domain Naming Master) 1 par forêt Contrôle l'ajout et la suppression des noms de domaines dans une forêt afin de garantir leur unicité.
Émulateur de PDC (PDC Emulator) 1 par domaine Se comporte comme un contrôleur de domaine NT4 pour permettre le support de clients NT4 (par exemple pour gérer les changements de mots de passe), ce contrôleur fournit également l'horloge de référence du domaine.
Maître RID (RID Master) 1 par domaine Fournit des tranches d'identifiants uniques aux autres contrôleurs de domaine.
Maître d'infrastructure (Infrastructure Master) 1 par domaine Synchronise les changements inter-domaines.

Nomenclature[modifier | modifier le code]

Active Directory prend en charge l'utilisation de noms UNC (\), URL (/), et LDAP pour l'accès aux objets. En interne, AD utilise la version LDAP de la structure de noms de X.500.

Chaque objet possède un identifiant unique, le nom unique (DN pour Distinguished name), ainsi un objet imprimante appelé HPLaser3 dans l'OU Marketing et faisant partie du domaine foo.org aura comme DN : CN=HPLaser3,OU=Marketing, DC=foo, DC=orgCN est le nom commun (Common Name en anglais) et DC un composant de domaine. Un DN peut être constitué de bien plus de quatre éléments. L'objet peut ainsi également posséder un nom canonique (Canonical name), généralement le DN inversé, sans identifiants, et utilisant la barre oblique (slash) comme séparateur : foo.org/Marketing/HPLaser3. Afin d'identifier l'objet à l'intérieur de son conteneur, AD utilise un nom unique relatif (RDN pour Relative distinguished name) : CN=HPLaser3. Chaque objet possède également un identifiant global unique (GUID, pour Globally Unique Identifier) qui est une chaîne de caractères de 128 bits unique et non modifiable, utilisé par AD pour les opérations de recherche et de réplication. Certains objets possèdent également un nom utilisateur principal (UPN, pour User principal name), se présentant sous la forme nom_objet@nom_domaine.

Relations d'approbation[modifier | modifier le code]

Afin de permettre aux utilisateurs d'un domaine d'accéder aux ressources d'un autre domaine, AD utilise un mécanisme de relations d'approbation.

Les relations d'approbation au sein d'une même forêt sont automatiquement créées au moment de la création des domaines. Les limites par défaut des relations d'approbation sont fixées au niveau de la forêt, et non du domaine, elles sont implicites, et automatiquement transitives pour tous les domaines d'une même forêt. Toutes les relations d'approbation au sein d'une forêt sont bidirectionnelles et transitives. Cependant, afin de se connecter à d'autres forêts ou à des domaines non-AD, AD met en œuvre d'autres types de relations d'approbation : les approbations de type raccourci (shortcut) (jointures de deux domaines appartenant à des arborescences différentes, transitives, uni ou bidirectionnelles), forêt (forest) (transitives, uni ou bidirectionnelles), royaume (realm) (transitives ou intransitives, uni ou bidirectionnelles) ou externe (intransitives, uni ou bidirectionnelles).

Approbations dans Windows 2000 (mode natif)[modifier | modifier le code]

  • Unidirectionnelle - Lorsqu'un domaine permet aux utilisateurs d'accéder à un autre domaine, mais que cet autre domaine n'autorise pas l'accès aux utilisateurs du premier domaine.
  • Bidirectionnelle - Lorsque deux domaines permettent à leurs utilisateurs l'accès à l'autre domaine.
  • Domaine d'approbation - Le domaine qui autorise l'accès aux utilisateurs d'un domaine approuvé.
  • Domaine approuvé - Le domaine qui est approuvé, dont les utilisateurs ont accès au domaine d'approbation.
  • Approbation transitive - Approbation qui peut s'étendre au-delà des deux domaines aux autres domaines approuvés de la même arborescence.
  • Approbation non transitive - Approbation unidirectionnelle non étendue au-delà des deux domaines.
  • Approbation explicite - Approbation créée par un administrateur. Non transitive et unidirectionnelle uniquement.
  • Approbation croisée - Approbation explicite entre domaines de différentes arborescences ou faisant partie de la même arborescence lorsqu'aucune relation descendant/ancêtre (enfant/parent) n'existe entre les deux domaines.

Windows 2000 - prend en charge les types d'approbation suivants:

  • Approbations transitives bidirectionnelles.
  • Approbations non transitives unidirectionnelles.

D'autres types d'approbations peuvent être créés par les administrateurs. Ces approbations peuvent être de type:

  • Raccourci

Approbation supplémentaire dans Windows 2003 (mode natif)[modifier | modifier le code]

Windows Server 2003 introduit un nouveau type d'approbation appelé approbation de forêt. Ce type d'approbation permet à tous les domaines d'une forêt d'approuver de manière transitive tous les domaines d’une autre forêt. Pour que cette nouvelle fonctionnalité soit disponible, il faut absolument que les deux forêts mises en relations aient un niveau fonctionnel Windows Server 2003. L'authentification à travers ce type d'approbation doit être basée sur Kerberos (et non NTLM). Les approbations de forêt sont transitives pour tous les domaines appartenant aux forêts approuvées.

AD LDS (anciennement ADAM)[modifier | modifier le code]

AD LDS (pour Active Directory Lightweight Directory Services), anciennement nommé ADAM (pour Active Directory Application Mode), est une version plus légère d'Active Directory spécifiquement destinée à une utilisation au niveau applicatif. Développé sur la même base de code qu'Active Directory, AD LDS fournit les mêmes fonctionnalités qu'AD, ainsi qu'une API identique, mais il ne requiert pas la création de domaines et ne nécessite pas de contrôleur de domaine pour fonctionner.

Tout comme Active Directory, AD LDS fournit un espace de stockage utilisé pour stocker les données d'annuaire (le Data Store) ainsi qu'un service d'annuaire muni d'une interface de service d'annuaire LDAP. À la différence d'Active Directory, plusieurs instances d'AD LDS peuvent être exécutées simultanément sur le même serveur, chaque instance étant spécifiquement adaptée aux besoins des applications auxquelles elle est destinée et utilisant le service d'annuaire AD LDS.

Utilisation en entreprise[modifier | modifier le code]

Domaines et sous-domaines Active directory

À partir d'une certaine taille de l'entreprise on observe généralement que chaque service gère son propre annuaire des employés. Mais il manque souvent l'information que l'autre service possède, si bien que dans un souci d'homogénéisation, la DSI se trouve obligée de concevoir un système complexe de passerelles ascendantes et descendantes entre les annuaires.

Beaucoup sont tentés de mettre enfin en place un système de référence auquel auraient accès tous les services intéressés, en consultation comme en modification. Cette volonté survient notamment au moment de la mise en place d'une solution d'ITSM.

L'Active Directory est généralement pressenti car il est largement répandu quelle que soit la taille de l'organisation.

Mais des obstacles majeurs viennent contrecarrer cette intention.

  • Peut-on confier un outil d'administration à des mains non qualifiées ?
  • Comment maintenir un annuaire propre alors que les champs localisation, service, fonction etc ... sont des champs de saisie libre ?
  • Comment guider les personnes qui saisissent les données essentielles, nom, login, email, matricule selon une charte que vous avez définie ; quel séparateur entre le nom et le prénom ? Accents ou pas ? Majuscule sur le nom ? quelle forme doit avoir le logon, et l'Email ? Quel était le dernier matricule ?
  • Des référentiels de type localisations, services, fonctions sont souvent bien maintenus par les services concernés. Ne pourrait-on s'appuyer sur ces données pour renseigner l'Active Directory ?
  • Peut-on limiter les accès et les droits pour chaque service concerné ?
  • Comment visualiser les incohérences de l'Active Directory, absence de renseignements, utilisateurs ayant quitté l'entreprise mais dont le compte est toujours activé, etc ... ?
  • Comment exporter facilement une liste précise de comptes utilisateurs à destination d'autres annuaires

Intégration d'Unix dans Active Directory[modifier | modifier le code]

De nombreux éditeurs proposent des solutions d'intégration à Active Directory pour les plates-formes Unix (UNIX, GNU/Linux, Mac OS X, ainsi que nombre d'applications Java et UNIX). On peut citer ADmitMac de Thursby Software Systems, Vintela Authentication Services de Quest Software, DirectControl de Centrify et Likewise de Centeris Software. Microsoft propose également un produit gratuit, Microsoft Windows Services for UNIX. Les versions récentes des systèmes d'exploitation Linux et Unix fournissent des niveaux d'interopérabilité variés avec Active Directory comme la prise en charge des stratégies de groupe[2]. Une alternative possible est d'utiliser un autre service d'annuaire comme par exemple 389 Directory Server (ex-Netscape Directory Server) capable d'effectuer une synchronisation bidirectionnelle avec Active Directory et fournir ainsi une intégration "déviée" consistant à faire s'authentifier sur 389DS les machines Unix et Linux tout en conservant l'authentification Active Directory native pour les machines Windows.

Notes et références[modifier | modifier le code]

  1. Planification, mise en oeuvre et maintenance d'une infrastructure Active Directory Microsoft Windows Server 2003, Microsoft Press,‎ 2004 (ISBN 978-2-10-007742-7), p. 1-8 – 1-9
  2. http://www.centrify.com/directcontrol/grouppolicy.asp

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]