Les articles publiés sur ce blog, ont pour but de partager des connaissances/concepts techniques et sont tous réalisés dans un environnement de test. Par conséquent, les auteurs dégagent toute responsabilité, de quelque ordre que ce soit, quant aux dommages directs, indirects ou consécutifs résultant de l’utilisation des informations contenus dans ceux-ci.
Introduction
Dans cet article, nous allons utiliser l’authentication policy uniquement pour modifier la durée de vie du TGT (Ticket Granting Ticket), et l’appliquer sur une population spécifique en utilisant le portail MIM.
Par défaut, l’authentication policy supporte uniquement des ajouts d’objets unitaires nominatifs ( comptes de services, ordinateurs et utilisateurs).
Pour les plus curieux authentication policy.
A quoi sert une authentication policy
Supposons que l’on veuille personnaliser la durée de vie du TGT (Ticket Granting Ticket) pour une population spécifique mais que celle proposée par défaut (10 heures) et/ou celle imposée pour les membres du groupe protected users (4 heures) ne nous convienne pas.
L’authentication policy va nous permettre de répondre en partie à notre besoin.
Cependant, pour la mettre en place certains prérequis sont nécessaires :
- Tous les contrôleurs de domaine doivent à minima exécuter Windows2012 R2
- Le niveau fonctionnel de domaine doit être Windows 2012 R2 (aucun prérequis pour le niveau fonctionnel de forêt)
- Le DAC (Dynamic Access Control) doit être configuré via GPO qui s’appliquera sur les contrôleurs de domaine en activant le paramètre suivant :
- Chemin: Computer Configuration, Administrative Templates, System and KDCNom du paramètre: KDC support for claims, compound authentication, and Kerberos armoring
- Enable
- Options: Supported
- Le DAC doit être configuré via GPO sur les autres machines membres du domaine en activant le paramètre suivant (généralement appliquée à la racine du domaine):
- Chemin : Computer Configuration, Administrative Templates, System and Kerberos
- Nom du paramètre: Kerberos client support for claims, compound authentication, and Kerberos armoring
- Enable
Configuration de l’authentication policy
Comme indiqué en introduction, dans le cas présent, nous allons utiliser l’authentication policy uniquement pour jouer sur la durée de vie du TGT.
- Lancer l’Active Directory Administrative Center (dsac.exe)
- Cliquez sur Authentication

- Dans le menu du milieu, sélectionnez :
- Authentication Policy
- New
- Authentication Policy

- Remplissez/activez les champs suivants :
- Enforce policy restrictions
- DisplayName : TGTAccesAdmin
- Cochez la case Specify a Ticket Granting Ticket lifetime for user accounts
- Ticket-Granting-Ticket Lifetime (minutes): 120
- Cliquez sur OK

Délégation pour le compte de service MIM
Comme indiqué en préambule, il n’est pas possible d’ appliquer une authentication policy sur des groupes.
Lorsqu’une authentication policy s’applique sur un utilisateur le DN (Distinguished Name) de celle-ci est ajouté dans l’attribut msDS-AssignedAuthNPolicy.

Maintenant, il faut juste configurer une délégation pour autoriser le compte de service qui exécute le service MIM à lire/écrire sur cet attribut pour tous les comptes concernés. Dans cet exemple les comptes concernés sont dans une OU (Organizational Unit) spécifique.
- Cliquez sur l’OU contenant les comptes adm
- Propriétés
- Sélectionnez l’onglet Sécurité( pour afficher l’onglet cet onglet : view -> Advanced Features)
- Avancé
- Cliquer sur Select a principal
- Entrer le nom du compte de service MIM

- Type :Allow
- Applies to : Descendant User objects
- Cliquez sur le bout Clear all (tout en bas de la fenêtre)
- Cochez Read msDS-AssignedAuthPNPolicy et Write msDS-AssignedAuthNPolicy

- Cliquez sur OK 3 fois
Déploiement de l’authentication Policy via le portail MIM
Avant de passer à la configuration sur le portail MIM, il faut rappeler que les comptes adm doivent être présents sur le portail (c’est-à-dire synchronisés via le moteur de synchronisation).
Une fois ceci fait, passons au portail :
Comme on peut le voir, les comptes admin sont présents sur le portail

Script PowerShell
Le script powershell ci-dessous permet d’assigner l’authentication policy :
param($UserName)
#Import AD Module
try
{
Import-Module ActiveDirectory
}
catch
{
exit;
}
$authPolName = "TGTAccesAdmin"
$pdceName = (Get-ADDomain).pdcemulator
try
{
$authPolInfo = Get-ADAuthenticationPolicy -Filter{Name -eq $authPolName} -Server $pdceName
}
catch
{
exit;
}
if($authPolInfo)
{
try
{
$usrInfo = Get-ADUser $UserName -pro msDS-AssignedAuthNPolicy -Server $pdceName
if(!$($usrInfo.'msDS-AssignedAuthNPolicy'))
{
Set-ADUser $UserName -AuthenticationPolicy $authPolName -Server $pdceName
}
}
catch
{
exit;
}
}
Enregistrez le dans un répertoire dédié aux scripts de workflow MIM. (il nous sera utile dans les prochaines sections)
Création d’un SET dynamique pour les comptes d’admins
- Sur le portail MIM, dans la rubrique Management Policy Rules, cliquez sur Sets

- Cliquez sur New

- Onglet General, donnez un nom à votre set

Nous préconisons d’avoir une convention de nommage stricte et claire concernant les objets personnalisés dans le portail.
- Next
- Onglet Criteria-based Members
- Cliquez sur all et sélectionnez user

- Cliquez sur Add Statement et sélectionnez AccountName ends with _adm
- Cliquez sur View Members pour valider que votre set contient bien les objets souhaités

- Cliquez sur Finish et Submit
Création du workflow d’action
- Sur le portail MIM, dans la rubrique Management Policy Rules, cliquez sur Workflows

- Cliquez sur New

- Onglet General,
- Workflow Name : #WF-SetAuthenticationPolicyDescription : Applique automatiquement l’authenticationPolicy TGTAccessAdmin sur #SET-DYN-UserAdmAccount
- Workflow Type : Action

- Next
- Onglet Activities:
- Sélectionnez WAL :Run PowerShell Script
- Cliquez sur Select

- Complétez les champs:
- Activity Display Name: SetAuthenticationPolicy
- Script location: Include in Workflow Definition
- Script:
Param($UserName)
PowerShell -version 3.0 C:\_scripts\MIM\WorkFlow\SetAuthenticationPolicy.ps1 $UserName
- Input type: Named Parameters
- Parameter: UserName
- Value Expression: [//Target/AccountName]
- Save

- Finish
- Submit
Note: Si vous utilisez directement les cmdlets présentes dans un module PowerShell, il va falloir utiliser la méthode indiquée à l’étape 6.c afin d’éviter des erreurs dotnet (pour les plus curieux MIMWAL-PowerShell script).
Création de la MPR
- Sur le portail MIM, cliquez sur Management Policy Rules

- Cliquez sur New

- Onglet General :
- Display Name : #MPR-SetAuthenticationPolicy
- Description : #WF-SetAuthenticationPolicy#SET-DYN-UserAdmAccount
- Type : Set Transition

- Next
- Onglet Transition Definition :
- Transition Set : #SET-DYN-UserAdmAccount
- Transition Type : Transition In

- Next
- Onglet Policy Workflows :
- Action workflow : cocher #WF-SetAuthenticationPolicy

- Next
- Finish
- Submit
Forcer l’exécution du workflow sur tous les membres du #SET-DYN-UserAdmAccount
Pour rappel, lors de la création du workflow et de la MPR le set contenait déjà des objets. Par conséquent, la MPR n’a pas pu s’appliquer, raison pour laquelle nous allons forcer l’exécution du workflow dans les étapes suivantes afin que celui-ci s’applique sur tous les membres du set :
- Sur le portail MIM, dans la rubrique Management Policy Rules
- Cliquez sur Workflows
- Cliquez sur #WF-SetAuthenticationPolicy
- Onglet General, section Run On Policy Update, cochez Run on Policy Update
- OK
- Submit
- Cliquez sur Management Policy Rules
- Cliquez sur #MPR-SetAuthenticationPolicy
- Onglet General, section Disabled, cochez Policy is disabled
- OK
- Submit
- Cliquez sur Management Policy Rules
- Cliquez sur #MPR-SetAuthenticationPolicy
- Onglet General, section Disabled, décochez Policy is disabled
- OK
- Submit
Vérification de l’exécution de la #MPR-SetAuthenticationPolicy
- Sur le portail MIM, dans la rubrique Requests & Approvals
- Cliquez sur Search Requests

- Une fois que toutes les requêtes seront passées à l’état Completed
- Cliquez sur un System Event
- Cliquez sur Advanced View
- Sélectionnez l’onglet Extended Attributes


- Cliquez sur Close une fois terminé
- Sur le portail MIM, dans la rubrique Management Policy Rules
- Cliquez sur Workflows
- Cliquez sur #WF-SetAuthenticationPolicy
- Onglet General, section Run On Policy Update, décochez Run on Policy Update
- OK
- Submit
- Lancez la console dsac.exe (Active Directory Administrative Center)
- Vérifiez si le compte user29_adm (indiqué dans le system Event) applique bien l’authentication policy

Conclusion/Précaution
Dans cet article nous avons vu comment personnalisé la valeur du TGT d’une liste de compte d’admins en automatisant, grâce au portail MIM, le déploiement d’une authentication Policy.
Il faut garder à l’esprit qu’un TGT dont la durée de vie est appliquée par protected users ou authentication policy fait que le jeton n’est pas renouvelé automatiquement, contrairement à la configuration par défaut. Il est possible de le vérifier en exécutant la commande klist et de regarder les champs Start Time, End Time et Renew Time. Par défaut, la durée du TGT est de 10 heures avec un renouvellement de 7 jours comme indiqué ci-dessous :

Dans le cas de protected users ou d’une authentication policy, on voit que End Time et Renew Time ont la même valeur :

Ceci peut être contraignant dans le cas d’exécution de scripts ou cmdlets powershell dont la durée d’exécution est supérieure à celle du TGT.
Il faut donc faire une analyse d’impact avant tout déploiement en production.
Bien évidemment, toutes les étapes présentées ci-dessus doivent d’abord être jouées/réalisées dans un environnement de test/dev/intégration avant tout passage en production.
A ciao & have fun !!!
House Lawyers?[…]just below, are some totally unrelated sites to ours, however, they are definitely worth checking out[…]?
What do you mean?