Les versions de schéma et les niveaux fonctionnels Active Directory

Envoyer

 Sommaire

 

 

Introduction

Nous allons nous concentrer dans cet article aux versions de schéma et niveaux fonctionnels, deux notions importantes relatives à l’annuaire Active Directory. Comme à l’habitude, nous sommes loin d’être les premiers à évoquer le sujet (heureusement d’ailleurs) cependant rare sont ceux qui traitent conjointement de ces deux concepts.

Comprendre le fonctionnement du schéma Active Directory n’est pas une chose aisée. Il suffit de consulter l’article Microsoft relatif à ce sujet pour s’en rendre compte (How the Active Directory Schema Works). Il nécessitera donc un approfondissement mais l’objectif de notre article étant de l’appréhender, sa présentation en sera succincte. Le niveau fonctionnel est un sujet un peu plus abordable mais qui nécessitera également quelques précisions ultérieurement.

Pour éclairer nos propos, nous nous appuierons tout au long de notre article sur l’exemple concret du « Last Interactive Logon » apparu sur Windows Server 2008 et permettant entre autres de connaitre la date et l’heure de la dernière authentification réussie pour un utilisateur lors de l'ouverture de session (Active Directory Domain Services: Last Interactive Logon). Par ce biais, nous vous montrerons comment la mise à jour du schéma et du niveau fonctionnel va permettre de prendre en charge de nouvelles fonctionnalités.

 

 

Qu’est-ce que le schéma Active Directory ?

Pour définir et créer des objets qui constituent sa base, Active Directory s’appuie sur un schéma composé de classes et d’attributs. Les classes représentent les différents types d’objets disponibles dans l’annuaire comme les utilisateurs, les groupes ou les unités d’organisation. Les classes sont construites à partir d’éléments que l’on appelle attributs et qui incorporent des données spécifiques aux objets (exemple l’attribut « description »).

Définition Microsoft : Le schéma contient des définitions formelles de chaque classe d’objet pouvant être créée dans une forêt Active Directory. Le schéma contient également des définitions formelles de chaque attribut pouvant ou devant exister dans un objet Active Directory.

 

 

Visualiser le schéma

Nous pouvons visualiser assez simplement le schéma Active Directory à l’aide du composant logiciel enfichable « Schéma Active Directory ». Il faut toutefois et au préalable saisir la commande « regsvr32 schmmgmt.dll » afin de rendre disponible la console depuis Microsoft Management Console.

 

 

 

 

 

La commande saisie, il suffit d’ouvrir une mmc et de se rendre dans « Ajouter/Supprimer un composant logiciel enfichable… » depuis le menu « Fichier » de la barre d’outils pour ajouter la console « Schéma Active Directory ».

 

 

 

 

 

 

 

Une fois dans la console, nous voyons clairement que le schéma de l’annuaire est constitué de classes et d’attributs.

 

 

 

 

 

 

 

En nous attardant sur la classe « User », nous pouvons voir qu’elle est constituée de différents attributs et qu’elle est liée à une classe parente et des classes auxiliaires.

 

 

 

 

 

 

 

 

Si nous prenons un exemple d’attribut comme « Description », nous pouvons voir qu’une syntaxe lui est affecté (chaîne Unicode) ainsi qu’une longueur de champs (Minimum/Maximum). Un attribut est également un objet au sein du schéma et est lui-même constitué de plusieurs attributs.

 

 

 

 

 

 

 

 

 

 

La notion de version de schéma

Chaque nouvelle version de l’annuaire Active Directory amène son lot de nouvelles fonctionnalités qui s’appuient en grande partie sur des nouvelles classes ou attributs. Donc, à chaque fois que vous intégrez une nouvelle version d’Active Directory au sein de votre forêt, vous devez réaliser une mise à jour du schéma afin qu’il puisse supporter à terme ces nouvelles fonctionnalités. Cette mise à jour passe par l’outil ADPREP qui réalise donc une extension du schéma.

Remarque : il n'existe qu'un seul schéma par forêt Active Directory.

 

 

Exemple de mise à jour du schéma

Nous allons donc nous baser sur un exemple concret pour vous montrer la réalisation de la mise à jour du schéma Active Directory et ce que cela implique concrètement au sein d’une infrastructure.

Dans un premier temps, Nous allons nous appuyer sur une infrastructure composée d'un domaine et d’un unique contrôleur de domaine sous Windows Server 2003 R2 pour y intégrer à terme un contrôleur sous Windows Server 2008 R2.

Comme préciser en introduction, nous allons également nous intéressez à la nouvelle fonctionnalité « Last Logon Interactive » introduite avec Active Directory 2008. Elle permet de visualiser certaines informations de connexion à l’ouverture de session. Elle s’appuie sur quatre attributs liés à la classe « user » :

  • msDS-FailedInteractiveLogonCount: Le nombre d’échecs atteint depuis la dernière connexion interactive.
  • msDS-FailedInteractiveLogonCountAtLastSuccessfulLogon—Le nombre d’échecs atteint depuis la dernière ouverture de session.
  • msDS-LastFailedInteractiveLogonTime—La date du dernier échec d’ouverture de session.
  • msDS-LastSuccessfulInteractiveLogonTime—La date de la dernière réussite d’ouverture de session.

 

S’agissant d’une fonctionnalité prise en charge au niveau fonctionnel Windows Server 2008, cela induit que ces attributs n’existent pas sur les versions antérieures à 2008  et ne sont pas pris en charge.

Depuis notre contrôleur Windows Server 2003 R2, nous allons donc vérifier notre version de schéma. Pour cela, nous allons simplement d’utiliser l’outil schupgr pour récupérer le numéro de version. La version actuelle du schéma est 31, ce qui correspond à une version du schéma 2003 R2 (le schéma n’est pas le même entre une version 2003 et 2003 R2).

 

 

 

 

 

Si nous tentons de rechercher depuis la console « Schéma Active Directory » les attributs relatifs à la fonctionnalité dans la classe « user », nous constatons leur absence.

 

 

 

 

 

 

 

 

 

Maintenant, nous désirons intégrer un nouveau contrôleur de domaine depuis un Windows Server 2008 R2 et pour cela, il faut entre autres que nous mettions à jour le schéma à l’aide de la commande « ADPREP /forestprep ». Depuis le support d’installation Windows Server 2008 R2, nous allons donc utiliser l’outil ADPREP pour préparer la forêt et le domaine.

ATTENTION!!! La mise à jour du schéma Active Directory est irréversible.

 

 

 

 

 

 

 

 

 

Remarque : Windows Server 2008 R2 n’existant qu’en 64 bits, il faut utiliser ADPREP32 sur une machine 32 bits ou ADPREP sur une machine 64 bits. Notez également que la mise à jour du schéma doit se faire sur le maître de schéma de la forêt.

Nous allons vérifier une nouvelle fois la version du schéma à l’aide de schupgr et nous constatons que la version du schéma est passée à 47 correspondant à la version de schéma de 2008 R2.

 

 

 

 

 

Si nous retournons vérifier la présence de nos nouveaux attributs depuis notre classe « user », nous constatons que les quatre attributs sont désormais présents dans notre schéma.

 

 

 

 

 

 

 

 

 

La présence de ces attributs n'induit par pour autant que la fonctionnalité est activée. En effet, nous créons simplement une stratégie de groupe relative à cette fonctionnalité en activant le paramètre « Configuration de l'ordinateur » | « Stratégies » | « Modèles d'administration » | « Composants Windows » | « Options d'ouverture de session Windows » | « Afficher les informations sur les ouvertures de session précédentes au cours d'une ouverture de session utilisateur » et en liant la stratégie de groupe au domaine (la stratégie doit englober les contrôleurs et les ordinateurs concernés). Lors de l’ouverture de session nous obtenons le message d’erreur ci-dessous.

 

 

 

 

Dixit Microsoft dans son article relatif à la fonctionnalité :

Pour que la dernière ouverture de session interactive fonctionne correctement, le niveau fonctionnel du domaine doit être activé sur le serveur Windows Server 2008. Dans le cas contraire, les utilisateurs ne pourront pas se connecter à leurs ordinateurs et recevront le message suivant : “Les stratégies de sécurité sur cet ordinateur sont définies pour afficher des informations à propos de la dernière ouverture de session interactive. Windows n'a pas pu récupérer ces informations. Contactez votre administrateur réseau afin d'obtenir de l'assistance.”

 

En conclusion, nous avons bien désormais les attributs liés à cette fonctionnalité au sein de notre schéma mais  ils restent inutilisables.

 

 

Qu’est-ce que sont les niveaux fonctionnels ?

Sous Active Directory, vous pouvez faire cohabiter différentes versions de Windows Server en tant que contrôleurs de domaine. Par exemple, vous pouvez très bien avoir un contrôleur de domaine sur Windows Server 2000, un deuxième sur Windows Server 2003 et un troisième sur Windows Server 2008 R2.

Bien entendu, les versions de l’annuaire évoluent avec le temps, sont dotées de nouvelles fonctionnalités mais  doivent donc être bridées par le biais du niveau fonctionnel pour assurer une compatibilité ascendante. Cela permettra de limiter les fonctionnalités de l'annuaire pour assurer la compatibilité avec les versions les plus anciennes de vos contrôleurs de domaine. Si vous avez encore à disposition des contrôleurs de domaine sous Windows Server 2000 alors votre niveau fonctionnel sera au mieux au niveau fonctionnel Windows Server 2000 natif.  Si la plus ancienne version est Windows Server 2003, alors le niveau fonctionnel maximal possible sera Windows Server 2003, et ainsi de suite.

Il existe un niveau fonctionnel de domaine (DFL – Domain Functional Level) et un niveau fonctionnel de forêt (FFL – Forest Functional Level). Chacun apportant son lot de fonctionnalités. Vous pouvez consulter l’article Microsoft Technet Annexe des fonctionnalités des niveaux fonctionnels répertoriant les fonctionnalités par niveau.

Pour vérifier le niveau fonctionnel du domaine et de la forêt, il suffit d’ouvrir la console « Utilisateurs et ordinateurs Active Directory » et de sélectionner « Propriétés » en réalisant un clic droit sur la racine du domaine. Dans l’onglet « Général », vous obtenez le niveau fonctionnel du domaine et de la forêt.

 

 

 

 

 

 

 

 

 

 

 

Augmentation du niveau fonctionnel par l’exemple

Chaque niveau fonctionnel du domaine ou de la forêt dispose donc de son lot de nouveautés et si vous voulez en profiter alors il faudra l’augmenter et respecter le prérequis : disposer de version de contrôleur de domaine au moins équivalente à celui du niveau fonctionnel. L'augmentation du niveau fonctionnel est une action irréversible. Vous ne pourrez pas rétrogader le niveau fonctionnel si nécessaire. Il faudra donc être sûr de ne plus avoir à intégrer ultérieurement des versions inférieures au niveau fonctionnel au sein de votre domaine et/ou de votre forêt.

Remarque 1: il existe un unique cas particulier où il est possible de rétrograder de niveau fonctionnel. Il s'agit du niveau fonctionnel Windows Server 2008 R2 vers le niveau fonctionnel Windows Server 2008.

Remarque 2: certains niveaux fonctionnels n’apportent aucune nouveauté. C’est le cas par exemple du niveau fonctionnel de forêt Windows Server 2008.

Si nous revenons à notre précédent exemple, nous avons intégré désormais notre contrôleur de domaine sous Windows Server 2008 R2 à notre domaine existant après avoir préparé le schéma à sa venue. Nous allons donc essayer d’augmenter le niveau fonctionnel du domaine depuis la console « Domaines et approbations Active Directory » à partir du nouveau contrôleur sous Windows Server Server 2008 R2. Réalisons un clic droit sur la racine du domaine et sélectionnons « Augmenter le niveau fonctionnel du domaine… ».

 

 

 

 

 

 

Nous constatons ainsi que le niveau fonctionnel du domaine actuel est Windows 2000 Natif et que nous avons le choix entre un niveau Fonctionnel Windows Server 2003, 2008 et 2008 R2. Si nous choisissons dans un premier temps de passer à un niveau fonctionnel Windows Server 2003, nous ne rencontrons aucun problème. Nous sélectionnons le niveau fonctionnel « Windows Server 2003 » et nous cliquons sur augmenter.

 

 

 

 

 

 

 

Maintenant, si nous essayons de monter le niveau fonctionnel en version « Windows Server 2008 R2 », l’assistant nous indique qu’il n’est pas possible de passer à un niveau fonctionnel supérieur car un ou plusieurs contrôleurs de domaine ne respectent pas la version requise.

Remarque: vous pouvez sortir un rapport détaillé en cliquant sur « Enregistrer sous » pour vérifier quels sont les contrôleurs concernés.

 

 

 

 

 

 

 

L’assistant « Augmenter le niveau fonctionnel du domaine » et « Augmenter le niveau fonctionnel de la forêt »  se base en réalité sur un attribut spécifique pour connaître la faisabilité de l’opération. Il s’agit de l’attribut msDS-Behavior-Version rattaché à l’objet NTDS Settings de chaque contrôleur de domaine. En fonction de la valeur définie sur cet attribut, l’assistant permet ou non l’augmentation du niveau fonctionnel. Cet attribut est dit fixe et ne peut être modifié.

Remarque: Cet attribut existe également au niveau du domaine et de la forêt définissant respectivement leur niveau et cela sont modifiables (à la valeur supérieure).

 

 

 

 

 

 

 

En l’occurrence, l’assistant détecte la présence d’un contrôleur en version Windows Server 2003 et ne permet donc pas de mettre à jour le niveau fonctionnel. De ce fait, La seule solution pour pouvoir profiter du niveau fonctionnel Windows Server 2008 sera soit de supprimer ou soit de mettre à jour le ou les contrôleurs de domaine concernés. Une fois le contrôleur retiré, nous pouvons donc augmenter le niveau fonctionnel.

 

 

 

 

 

 

 

Dès lors, si nous réessayons d’activer la fonctionnalité « Last Interactive Logon », elle est désormais prise en charge sur notre domaine.

 

 

 

 

 

 

Conclusion

Nous avons donc vu que le schéma Active Directory se limite exclusivement à des objets du schéma et que la différence entre chaque nouvelle version est la somme des objets qui croît. Les fonctionnalités de chaque nouvelle monture d’Active Directory s’appuient sur ces nouveaux objets mais ne sont disponibles que par l’entremise de l’augmentation du niveau fonctionnel du domaine ou de la forêt.

Mise à jour le Lundi, 05 Décembre 2011 16:54  

Commentaires 

 
0 #1 20-10-2011 14:07
très bien merci
 
 
0 #2 Christophe CANDAES 26-02-2014 12:03
Il est rare de trouver de façon générale sur le net des explications (quelque soit le sujet) aussi claires, détaillées et didactiques.

Un grand bravo à l'auteur. Je suis fan de vos tutoriels.

Je suis en train de migrer mon contrôleur de domaine et vos tutos me sont d'une grande aide pour appréhender certains concepts qui sont nouveaux pour moi.

Merci et bonne continuation.
 
 
0 #3 Christophe CANDAES 26-02-2014 12:04
*quel que soit le sujet
 
 
0 #4 Alexandre Augagneur 26-02-2014 13:48
Bonjour,

je vous remercie pour vos encouragements ! :)
 

Ajouter un Commentaire

Code de sécurité
Rafraîchir