Introduction
Je pense que vous êtes nombreux à avoir essayé de définir plusieurs stratégies de mot de passe dans un domaine Active Directory, en créant plusieurs stratégies de groupe et en les liant à différentes unités d’organisation dans votre domaine. Et pourtant vous avez tout le temps été confronté au même résultat: seule la stratégie de mot de passe et de verrouillage des comptes définie au niveau de la “Stratégie par défaut du domaine” (Default Domain Policy) s’applique aux machines du domaine.
Cela est tout a fait normal, car jusqu’à Windows Server 2003, nous étions limité à une seule stratégie de mot de passe (Password Settings Object) pour tout le domaine. Du coup pour contourner cette limitation nous étions tenté de créer plusieurs domaines dans notre forêt Active Directory pour pouvoir enfin profiter de plusieurs stratégies de mot de passe.
Pourquoi avoir besoin de plusieurs stratégies de mot de passe me direz-vous? C’est très simple, en entreprise, les mots de passe sont sensibles du fait qu’ils sont un point d’entrée dans notre infrastructure. Et dans cette infrastructure, tous les comptes utilisateurs n’ont pas la même importante. On aimerait bien pouvoir protégé les mots de passe des comptes sensibles, tels que les comptes membres des groupes “Administrateurs de l’Entreprise” ou “Administrateurs du domaine” ou tout autre compte possédant des privilèges administratifs, en renforçant les contraintes sur leur mot de passe. Par exemple, que les mots de passe aient 12 caractères minimum, qu’ils soient complexes, qu’ils soient changés tous les 30 jours, qu’ils ne correspondent pas aux 36 derniers mots de passe utilisés et que le compte se bloque au bout de 3 tentatives ratées.
Cependant, on ne peut pas imposer ce genre de règles très strictes aux utilisateurs classiques. Tout simplement car cela serait trop contraignant pour eux et ils tenteront tout bêtement de contourner la sécurité, en écrivant leur mot de passe sur un post-it collé sur l’écran ou dans leur agenda.
Heureusement, Windows Server 2008 nous sauve et il y a enfin une possibilité offerte dans Active Directory Domain Services qui va nous permettre de configurer des stratégies de mot de passe pour des groupes ou des comptes utilisateurs spécifiques. C’est ce que nous appellerons les stratégies de mot de passe granulaires ou Fine-Grained Password Policies en anglais.
Je vais donc vous montrer les différentes étapes nécessaires à la configuration de ces stratégies de mot de passe. Vous allez voir que cela n’est pas forcément évident et qu’il n’y a pas réellement d’outil dédié à leur utilisation et que cela peut ressembler un peu à du bricolage!
Relevons les manches!
Comme je vous l’ai dis, il n’existe pas nativement d’outil dédié à la création et à l’utilisation des stratégies de mot de passe granulaires. Nous allons donc utiliser “ADSI Edit” pour arriver à nos fins et que vous allez voir que ce n’est pas si compliqué que ça, mais cela ne se devine pas! Je vais donc vous montrer comment s’y prendre!
La première chose à faire est de vérifier le niveau fonctionnel de notre domaine. En effet, les stratégies de mot de passe granulaires ne sont applicables qu’avec un niveau fonctionnel de domaine Windows Server 2008. Si vous comptez utiliser cette fonctionnalité, il vous faudra migrer tous vos contrôleurs de domaine vers Windows Server 2008 pour pouvoir augmenter le niveau fonctionnel de votre domaine.
Pour augmenter le niveau fonctionnel, on peut utiliser l’outil Utilisateurs et ordinateurs Active Directory ou bien Domaines et Approbations Active Directory. Il suffit ensuite de cliquer avec le bouton droit sur votre nom de domaine et de sélectionner Augmenter le niveau fonctionnel de domaine. Dans la liste, sélectionnez Windows Server 2008 et cliquez sur Augmenter.
Une fois que cela est fait, attaquons les choses sérieuses. Ce qu’il faut savoir, c’est que les stratégies de mot de passe granulaires sont définies dans Objets de Paramètres de mot de passe (Password Settings Objects, ou PSO). C’est dans ces objets que nous allons configurer nos stratégies de mot de passe et de blocage de compte. Ces objets PSO sont stockés dans le Conteneur des Paramètres de Mot de Passe (Password Settings Container, PSC) qui se trouve dans le conteneur System de la partition de domaine: “CN=Password Settings Container,CN=System,DC=votredomaine”
Vous devez retenir qu’un PSO ne peut s’appliquer qu’à des comptes utilisateurs (ou inetOrgPerson si vous utilisez ce type d’objet à la place de user) ou à des groupes globaux de sécurité. Bien sûr, il est bien plus judicieux de les appliquer uniquement à des groupes globaux de sécurité pour des raisons évidentes de maintenance et de flexibilité.
A nous les PSOs!
Lancez la console ADSI Edit depuis les outils d’administration sous Windows Server 2008. Une fois lancée, il faut se connecter à la partition de domaine. Pour ce faire, cliquez avec le bouton droit sur ADSI Edit dans la partie gauche de la console (Console Tree) et sélectionnez Se connecter à… (Connect to…). Dans la fenêtre des paramètres de connexion, laissez par défaut si vous travaillez en local sur le contrôleur de domaine. Le “Default naming context” correspond à la partition de domaine. Cliquez sur OK pour vous connecter.
Une fois connecté, dépliez dans la partie gauche votre domaine, puis rendez-vous dans le conteneur CN=System, et enfin cliquez sur le conteneur CN=Password Settings Container. Vous êtes arrivés dans le conteneur où vont être hébergés nos stratégies de mot de passe granulaires et plus exactement nos PSO. Normalement, ce conteneur doit être vide à l’heure actuelle, vu que vous n’avez pas encore créé de PSO.
Maintenant il faut créer notre premier PSO. C’est très simple, il suffit de cliquer avec le bouton droit sur le conteneur CN=Password Settings Container, de sélectionner New et enfin Object… Vous voyez que nous n’avons pas le choix du type d’objet à créer, une seule possibilité s’offre à nous: msDS-PasswordSettings.
Cliquez sur Next > pour remplir les différents attributs de l’objet. Voici, l’explication des différents attributs, dans l’ordre d’apparition, même si vous devez normalement être familier avec leur utilisation:
- cn: Common Name. Tout simplement le nom de votre objet PSO. Exemple: PSO Admins
- msDS-PasswordSettingsPrecedence: Un PSO peut-être lié à plusieurs utilisateurs ou groupes globaux, et un utilisateur ou un groupe peut se voir appliqué plusieurs PSOs. Pour déterminer quels sont les paramètres à utiliser, chaque PSO possède une précédence. Celle-ci permet de définir des priorités entre les PSOs. C’est un nombre entier supérieur à 0. Plus la valeur est petite (proche de 1) pour cet objet PSO, plus il aura une précédence forte.
- msDS-PasswordReversibleEncryptionEnabled: Activer le chiffrement réversible des mots de passe. Fortement déconseillé. C’est une valeur booléenne (TRUE ou FALSE). En pratique, toujours mettre FALSE sauf contrainte particulière.
- msDS-PasswordHistoryLength: Taille de l’historique des mots de passe. Nombre entier. Permet de forcer l’utilisateur à choisir un mot de passe différent de ceux conservés dans l’historique.
- msDS-PasswordComplexityEnabled: Paramètre permettant d’activer la complexité des mots de passe. Un mot de passe est considéré comme complexe lorsqu’il combine 3 des 4 critères suivant: lettres minuscules, lettres majuscules, chiffres et caractères spéciaux. La valeur attendue est un booléen (TRUE ou FALSE). Pour activer la complexité, mettre TRUE.
- msDS-MinimumPasswordLength: Taille minimale du mot de passe. La valeur attendue doit un nombre entier supérieur ou égal à 0. 0 signifiant pas de taille minimale.
- msDS-MinimumPasswordAge: Durée de vie minimum d’un mot de passe. Permet d’empêcher l’utilisateur de changer son mot de passe plus d’une fois par jour par exemple. La valeur attendue est une durée exprimé sous le format j:hh:mm:ss. Exemple pour 1 jour, 1:00:00:00. Attention, ce format n’est pris en charge que par la version Windows Server 2008 d’ADSI Edit. Si vous utilisez une version antérieure, utilisez le format I8 que je ne détaillerai pas dans cet article.
- msDS-MaximumPasswordAge: Durée de vie maximale du mot de passe. Force l’utilisateur a changé de mot de passe une fois la durée de vie maximale atteinte. La valeur attendue est une durée au format j:hh:mm:ss. Attention, la valeur de ce paramètre doit être supérieure ou égale à celle du paramètre msDS-MinimumPasswordAge.
- msDS-LockoutTreshold: Seuil de verrouillage pour la stratégie de verrouillage des comptes. Cela permet de définir le nombre de tentatives possibles pour le mot de passe avant que le compte ne soit automatiquement verrouillé. La valeur attendue est un nombre entier supérieur ou égal à 0. Le fait de mettre 0 permet de désactiver la stratégie de verrouillage de compte.
- msDS-LockoutObservationWindow: Durée pendant laquelle un utilisateur ne peut plus tenter d’ouvrir sa session. La valeur attendue est une durée au format j:hh:mm:ss comprise entre 00:00:00:01 et la valeur du paramètre msDS-LockoutDuration.
- msDS-LockoutDuration: Durée pendant laquelle un compte utilisateur reste verrouillé s’il n’y a pas eu l’intervention d’un administrateur pour le déverrouiller ou si l’utilisateur n’a pas réussi à renseigner le bon mot de passe après la fenêtre d’observation. La valeur attendue est une durée au format j:hh:mm:ss comprise entre la valeur du paramètre msDS-LockoutObservationWindow et jamais (never).
Une fois que vous avez rempli tous ces attributs correctement, cliquez sur Finish pour terminer la création de votre objet PSO. Celui-ci doit apparaître dans le PSC.
Maintenant que nous avons notre premier objet PSO, il ne nous reste plus qu’à l’appliquer à un compte utilisateur ou à un groupe de sécurité global. Comme je vous l’ai dis, nous préférerons appliquer les PSO à des groupes pour en faciliter la gestion.
Pour ce fait, cliquer avec le bouton droit sur votre object PSO et sélectionnez Propriétés. Cherchez l’attribut msDS-PSOAppliedTo, sélectionnez le puis cliquez sur le bouton Modifier (Edit). Dans la fenêtre qui apparaît cliquez soit sur Ajouter un Compte Windows… ou Ajouter DN… Dans mon exemple je vais appliquer mon objet PSO au groupe “Admins du domaine” qui est un groupe de sécurité global en passant par son DN (Distinguished Name) qui est le suivant: “CN=Domain Admins, CN=Users, DC=supinfo,DC=lan”.
Et voilà, nous avons créé notre premier objet PSO et nous l’avons appliqué à un groupe de sécurité global.
Pour voir l’objet PSO appliqué à un compte d’utilisateur, il vous suffit d’aller dans les propriétés du compte, puis dans l’éditeur d’attribut, cliquez sur Filtre et assurez vous que la case Afficher les attributs/Falcutatifs est cochée ainsi que la case Afficher les attributs en lecture seule/Construits est cochée.
Cherchez enfin l’attribut msDS-ResultantPSO. Sa valeur vous donnera le DN de l’objet PSO appliqué. Si la valeur est “null” (<not set>), cela signifie que c’est la stratégie par défaut du domaine qui est appliquée.
Conclusion
Voilà, les stratégies de mot de passe granulaires de Windows Server 2008 ne devraient plus avoir beaucoup de secrets pour vous! J’espère que cela vous aidera à les utiliser et à comprendre leur fonctionnement.
Cependant, gardez bien en tête qu’il ne faut pas en abuser car cela peut rapidement devenir complexe à gérer. Essayez de garder un schéma d’utilisation simple et de toujours documenter ce que vous faites pour vous y retrouver et permettre à d’autres personnes de savoir ce que vous avez fait.
Je vous en souhaite une bonne utilisation!
Microsoftement vôtre!