Windows 2016 : Etre temporairement membre d'un groupe

Voici un article très intéressant écrit par un de mes collègues. Merci Rachid Jallita

 

Voici mon premier article sur ce blog qui sera, je l’espère, le premier d’une longue série. 

J’ai, depuis quelques mois, de plus en plus de questions, sur les nouveautés qui seront apportées avec Windows 2016.

Je vais donc profiter de ce premier article pour vous présenter une des nouvelles fonctions qui permet de définir une expiration d’appartenance à un groupe à travers les services Active Directory.

Celle-ci permettra ainsi, d’ajouter un utilisateur à un groupe pour une période de temps limitée (Exemple : fournir des privilèges d’administration pour une opération de maintenance nécessitant certains privilèges).

Comment mettre en place cette nouvelle fonction ?

Le premier prérequis est le niveau fonctionnel de votre forêt. Il faudra que celui-ci soit en Windows 2016. Ce qui veut dire, bien évidemment, que l’ensemble de vos contrôleurs de domaine devront être en Windows 2016 !!

Je vais donc profiter de cet article pour augmenter le niveau fonctionnel de mon Active Directory de Test en Windows 2016 ( « WindowsThresholdForest »)  :

Actuellement, ma forêt est en niveau fonctionnel Windows 2008 R2. PAM_groupesTTL1

Maintenant, elle est en “Windows Threshold Forest” (Windows 2016):

PAM_groupesTTL2

Ensuite, il faudra activer une nouvelle fonctionnalité qui s’appelle PAM (Privileged Access Management). En attendant de parler de PAM dans un futur article J, voici le lien Technet y faisant référence : https://technet.microsoft.com/en-us/library/dn903243.aspx

Comme vous pouvez le voir, cette nouvelle fonctionnalité nécessite d’être en niveau fonctionnel de forêt Windows 2016 : PAM_groupesTTL3

Nous allons donc activer cette nouvelle fonctionnalité en utilisant la commande Powershell suivante :

 Enable-ADOptionalFeature “Privileged Access Management Feature” –Scope ForestOrConfigurationSet -Target <ADIdentity>  

PAM_groupesTTL4

Maintenant que la fonctionnalité est installée, comment ajouter un utilisateur dans un groupe et ce, pour une durée limitée ?

Pour le moment, il n’y a pas d’interface graphique « Friendly » permettant d’ajouter un utilisateur dans un groupe tout en spécifiant une expiration.

Nous allons donc utiliser Powershell pour exécuter cette action.

Je vais prendre l’exemple suivant :

Nous devons attribuer au compte « A_Joe_SchemaEx » les droits de mettre à jour le schéma (Groupe « Schema Admins »). Nous allons fixer une expiration de l’appartenance à 60 minutes (Cela sera largement suffisant pour effectuer une extension de Schéma sur mon environnementJ).

Dans notre exemple, voici la commande à exécuter :

  $ttl = New-TimeSpan -Minutes 10

Add-ADGroupMember -Identity “Schema Admins” -Members “A_Joe_SchemaEx” -MemberTimeToLive $ttl

PAM_groupesTTL5

Nous pouvons maintenant vérifier que l’utilisateur « A_Joe_SchemaEx » est bien membre du groupe « Schema Admins » :

 PAM_groupesTTL6

Maintenant, nous allons utiliser une commande PowerShell qui nous permettra de connaitre le temps restant avant que l’utilisateur ne soit automatiquement retiré du groupe :

 Get-ADGroup -Identity “Schema Admins” -Properties * -ShowMemberTimeToLive | fl member

Nous pouvons voir que le compte sera automatiquement retiré du groupe dans 3077 secondes, soit environ 51 minutes (TTL=3077) : PAM_groupesTTL7 Note : Il est également possible d’utiliser l’outil LDP.exe pour pouvoir retrouver cette information.

Et mon jeton Kerberos dans tout cela ?

Par défaut, lorsque nous recevons un TGT (Ticket Granting Ticket), il est valable 10 heures.

 

Bien évidemment, il est possible de modifier cette valeur, par l’intermédiaire d’une stratégie de groupe par exemple :

https://technet.microsoft.com/en-us/library/cc739765(v=ws.10).aspx

Vérifions en utilisant la commande Klist :

Je vois bien que mon utilisateur à un TGT valable de 10 heures.

PAM_groupesTTL8

Maintenant, si j’ajoute mon utilisateur « A_Joe_SchemaEx » dans le groupe « Schema Admins » pour une durée de 10 minutes, que va-t-il se passer ?

PAM_groupesTTL9

Après réouverture de session, je me rends compte que mon TGT n’est plus disponible 10 heures mais moins de 10 minutes !!!

Cela veut tout simplement dire que la date de validité de mon TGT se basera sur le temps restant avant l’expiration de son appartenance au groupe « Schema Admins ».

PAM_groupesTTL10

Note : Si vous êtes membre de plusieurs groupes sur lesquels une expiration a été mise en place, le TGT aura une date de validité basée sur la durée d’expiration la plus faible.

Exemple : Si, en même temps, j’ajoute l’utilisateur Joe dans le groupe A avec une valeur d’expiration à 20 minutes et dans le groupe B avec une valeur d’expiration à 10 minutes. Joe récupèrera un TGT avec une date de validité basée sur le temps qu’il lui reste à appartenir au groupe B.

N’hésitez pas à tester !!! J

 Rachid Jallita