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
PAM (Privileged Access Management) est une feature on-premise de MIM (Microsoft Identity Manager) qui permet d’attribuer des droits d’administration pour une durée limitée (s’appuyant sur le Just In Time Administration et les Shadow Principals). Cette feature renforce la sécurité des comptes à privilèges évitant ainsi que les droits/permissions soient affectés à ces comptes de façon permanente.
Le déploiement de PAM nécessite la présence du moteur de synchronisation ainsi que celle du portail MIM pour lesquels vous trouverez les infos sur leur installation ci-dessous :
L’équivalent cloud de PAM est PIM (Azure AD Privileged Identity Management)
La solution PAM, comme vous l’avez compris, permet de sécuriser les comptes d’administration afin que ceux-ci ne disposent pas en permanence des droits d’administration. Celle-ci est généralement déployée dans un contexte de tiering modèle avec une forêt d’administration (red forest) et une ou plusieurs forêt(s) de production.
Cependant, le déploiement nécessite que les infrastructures Active Directory répondent aux exigences suivantes :
- Forêt d’administration avec niveau fonctionnel de domaine et forêt Windows 2016
- Forêt de production avec niveau fonctionnel de domaine et forêt ≥ Windows 2012 R2
- Relation d’approbation de type Forest trust entre la forêt d’administration (red.lab) et la/les forêt(s) de production (corp.lab) unidirectionnelle autorisant les comptes de la forêt d’admin à se connecter sur la forêt de comptes (libre à vous de choisir le type d’authentification forest-wide ou selective)
Prérequis
Hardware et system
Système d’exploitation | Windows Server 2008 x64 ou plus SQL Server 2008 x64 ou plus Web Server Windows SharePoint Services 3.0 SP1 Microsoft .NET 3.0 ou plus Windows Installer 4.5 Windows PowerShell 1.0 ou plus |
Processeur | Architecture X64 |
Mémoire | 2 Go de RAM minimum |
Disque Dur | 2 Go d’espace disque disponible |
Le serveur sur lequel l’installation MIM est réalisée dans cet article a les caractéristiques techniques suivantes (VM Hyper-v):
Système d’exploitation
Software Features | Windows Server 2022 standard
SQL Server 2019 .net framework 4.8 Windows PowerShell 5.1 XPS Viewer |
Processeur | 8 vCPu |
Mémoire | 4 Go de RAM |
Disque Dur | 100 Go d’espace disque disponible |
Comptes de service
Les noms des comptes indiqués ci-dessous, sont à titre d’exemple :
DNS
Vérifiez/Créez un enregistrement DNS ayant les caractéristiques suivantes :
NOM | TYPE | ADDRESSE IP | DESCRIPTION |
Fqdn d’accès au portail MIM Ex : mimportal.red.lab | A | IP du serveur MIM | Accès au portail MIM |
Configuration Active Directory
SPN et KCD (Kerberos Constrained Delegation)
Vérifiez/Tapez les cmdlet suivantes pour configurer les SPN sur les comptes de service sur un contrôleur de domaine:
- FIMService :
Setspn -S FIMService/mimportal.red.lab red\svc_mimser

- Configurez la KCD comme suit :

- IIS/SharePoint:
- SPN
Setspn -S http/mimportal.red.lab red\svc_mimsp
- SPN

-
Setspn -S http/rolerequest.red.lab red\svc_mimsp

- Configurez la KCD (Kerberos Contrained Delegation) comme suit :

La configuration de la KCD nécessite la présence d’un SPN. Par ailleurs, il faut indiquer le nom du compte de service sur lequel on veut avoir une délégation.
Il est nécessaire de rajouter une délégation sur tous les contrôleurs domaine pour les services LDAP suivants : LDAP/<DC-shortName>, LDAP/<DC-fqdn>, LDAP/<DC-fqdn>/<Domain-NetBiosName>, LDAP/<DC-fqdn>/<Domain-fqdn>, LDAP/<DC-shortName>/<Domain-NetBiosName>. Cela implique également qu’à chaque refresh (promotion/dépromotion) de contrôleurs de domaine, il faut modifier (ajouter/supprimer) la délégation pour celui-ci.
Délégations Active Directory et GPO
Forêt d’admin Red.lab
Comptes de service (permissions appliquées à la racine du domaine)
Depuis la console dsa.msc, clic droit Properties sur le domaine red.lab, sélectionnez l’onglet Security > Advanced > Add :
Comptes de service :
- Red\svc_mimser
- Red\svc_pammon
- Red\svc_pamcomp
Permission :
- Type: Allow
- Applies to: Descendant Group objects
- Properties:
- Read Members
- Write Members
- Type: Allow
- Applies to: This object and all descendant objects
- Permissions:
- Create User objects
- Delete User objects
- Type: Allow
- Applies to: Descendant User objects
- Permissions: Full control
Compte red\svc_pamadmin (compte d’installation)(permissions appliquées à la racine du domaine)
Depuis la console dsa.msc, clic droit Properties sur le domaine red.lab, sélectionnez l’onglet Security > Advanced > Add :
Permission:
- Type: Allow
- Applies to: Descendant User objects
- Permissions:
- Change password
- Reset password
- Type: Allow
- Applies to: This object and all descendant objects
- Permissions:
- Let all default permissions checked
- Add:
- Write all properties
- All validated writes
- Create all child objects
- Delete all child objects
- Properties:
- Read all properties
- Type: Allow
- Applies to: This object and all descendant objects
- Permissions:
- Migrate SID history
Compte Svc_mimMARED (compte MA AD red.lab)(permissions appliquées à la racine du domaine)
Depuis la console dsa.msc, clic droit Properties sur le domaine red.lab, sélectionnez l’onglet Security > Advanced > Add :
Permission:
- Type: Allow
- Applies to: This object only
- Permissions:
- List contents
- Read all properties
- Read permissions
- Replicating directory changes
- Properties:
- Read all properties

ACL sur AdminSDHolder
Lancez les commandes suivantes dans un cmd run as Admin
dsacls “CN=AdminSDHolder,CN=System,DC=red,DC=lab” /G red\svc_mimser:WP;”member” dsacls “CN=AdminSDHolder,CN=System,DC=red,DC=lab” /G red\svc_pamcomp:WP;”member”
Activation/Vérification PAM feature
Lanez les cmdlets suivantes dans un prompt powershell runas admin :
$of = get-ADOptionalFeature -filter “name -eq ‘privileged access management feature'”
Enable-ADOptionalFeature $of -scope ForestOrConfigurationSet -target “red.lab” get-ADOptionalFeature -filter “name -eq ‘privileged access management feature'”
La dernière cmdlet permet de vérifier que la feature a bien été installée. Pour cela assurez-vous que l’attribut FeatureScope= {ForestOrConfigurationSet}

Shadow Principals et authentication policy
Lancez adsiedit.msc, connectez-vous sur la partition de configuration, développez CN=Configuration… > CN=Services > CN=Shadow Principal Configuration
Allez dans Properties, sélectionnez l’onglet Security, Advanced et ajoutez:
- Red\svc_mimser
- Red\svc_pamadmin
- N’importe quel admin MIM/PAM ayant besoin d’ajouter de nouveaux PAM groups
Permission :
- Type : Allow
- Applies to: This object and all descendant objects
- Permissions:
- Laissez les permissions par défaut cochées
- Ajoutez :
- Write all properties
- Create all child objects
- Delete all child objects
- Properties:
- Read all properties
- Type: Allow
- Applies to: This object only
- Permissions:
- Laissez les permissions par défaut cochées
- Ajoutez :
- Write all properties
- Create all child objects
- Delete all child objects
- Properties:
- Read all properties
Fermez adsiedit.msc
Lancez un prompt cm den runas admin et tapez les commandes suivantes :
dsacls “CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=red,DC=lab” /g red\svc_pamadmin:RPWPRCWD;;msDS-AuthNPolicy /i:s
dsacls “CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=red,DC=lab” /g red\svc_pamadmin:CCDC;msDS-AuthNPolicy
dsacls “CN=AuthN Silos,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=red,DC=lab” /g red\svc_pamadmin:RPWPRCWD;;msDS-AuthNPolicySilo /i:s
dsacls “CN=AuthN Silos,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=red,DC=lab” /g red\svc_pamadmin:CCDC;msDS-AuthNPolicySilo
GPO (hardening des comptes de service)
Lancez gpmc.msc sur un contrôleur de domaine pour créer/modifier une GPO et la liée à l’OU contenant le serveur MIM:
- Chemin : Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > User Rights Assignment
- Paramètres:
- Deny access to this computer from the network: RED\svc_pammon, RED\svc_pamcomp,red\svc_mimser
- Deny log on as a batch job: RED\svc_pammon, RED\svc_pamcomp,red\svc_mimser
- Deny log on locally: RED\svc_pammon, RED\svc_pamcomp,red\svc_mimser
- Deny log on through Remote Desktop Services: RED\svc_pammon, RED\svc_pamcomp,red\mimsp, red\svc_mimser
- Log on as a batch job: red\svc_mimsp, red\svc_mimsync
- Log on as a service: RED\svc_pammon, RED\svc_pamcomp ,red\mimsp,red\svc_mimser, red\mimsync, red\svc_sqlagent, red\svc_sql

Forêt de production corp.lab
Les étapes indiquées ci-dessous doivent être réalisées sur tous les domaines gérés par PAM
Si le niveau fonctionnel de domaine et de forêt est ≤ Windows 2016, appliquez les étapes suivantes :
- Loguez-vous sur un contrôleur de domaine et ouvrez un powershell runas admin et tapez :
import-module activedirectory
New-ADGroup –name ‘<NETBIOS-DOMAIN-NAME>$$$’ –GroupCategory Security –GroupScope DomainLocal –SamAccountName ‘<NETBIOS-DOMAIN-NAME>$$$’
Exemple:
import-module activedirectory New-ADGroup –name ‘CORP$$$’ –GroupCategory Security –GroupScope DomainLocal –SamAccountName ‘CORP$$$’
GPO
Audit
Lancez gpmc.msc sur un contrôleur de domaine pour créer/modifier une GPO et la liée à l’OU Domain Controllers:
- Chemin : Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Policy Configuration > Audit Policies
- Paramètres:
- Account Management:
- Enable all subcategories
- Check success and failure
- DS Access:
- Enable all subcategories
- Check success and failure
- Account Management:

TCP IP Client Support
Lancez gpmc.msc sur un contrôleur de domaine pour créer/modifier une GPO et la liée à l’OU Domain Controllers:
- Chemin : Computer Configuration > Preferences > Windows Settings > Registry
- Paramètres:
- Action: Update
- Hive: HKEY_LOCAL_MACHINE
- Key Path: SYSTEM\CurrentControlSet\Control\Lsa
- Value name: TcpipClientSupport
- Value type: REG_DWORD
- Value data: 1
- Base: Decimal

La GPO indiquée ci-dessus ne doit s’appliquer que sur le contrôleur de domaine exécutant le rôle FSMO PDC emulator.
Pour cela, il suffit de créer un filtre WMI afin de l’appliquer dynamiquement au PDCe

Redémarrez le contrôleur de domaine exécutant le rôle FSMO PDCe pour la prise en compte de la clé de registre.
Délégation red\svc_pammon (permissions appliquées à la racine du domaine)
Depuis la console dsa.msc, clic droit Properties sur le domaine corp.lab, sélectionnez l’onglet Security > Advanced > Add :
Permission:
- Type: Allow
- Applies to: Descendant User objects
- Permissions: Read all properties
- Properties: Read all properties
Délégation red\Svc_mimMAxx (permissions appliquées à la racine du domaine)
Cette délégation ne doit être mise en place uniquement s’il y a un MA à qui synchronise des objets de la forêt de production dans le FIMService. Nous préconisons d’utiliser un compte de la forêt d’admin pour synchroniser les objets de la forêt de production.
Permission:
- Type: Allow
- Applies to: This object only
- Permissions:
- List contents
- Read all properties
- Read permissions
- Replicating directory changes
- Properties: Read all properties
Configuration de la relation d’approbation entre la forêt d’admin (red.lab) et la forêt de production (corp.lab)
Assuez-vous que le serveur PAM arrive à contacter les contrôleurs de domaine de production ou a minima le PDCe
Dans le cas d’une relation d’approbation avec authentification sélective, comme dans cet article, il faut s’assurer que le compte red\svc_pamadmin a la permission Allowed to authenticate sur tous les contrôleurs de domaine du domaine de production géré par PAM. Nous préconisons d’ajouter cette permission sur chaque contrôleur de domaine individuellement pour des raisons de sécurité.
Loguez-vous sur le PDCe de la forêt de production (trusting domain) et tapez les commandes suivantes dans un prompt cmd runas admin:
netdom trust corp.lab /domain:red.lab /enablesidhistory:yes
netdom trust corp.lab /domain:red.lab /enablepimtrust:yes
Enfin les prérequis sont terminés !!! Nous allons pouvoir passer à l’installation proprement dite de PAM
Installation de PAM
Montez l’iso de MIM et ouvrez un prompt cmd runas admin :
cd C:\_sources\MIM\MIMSources\Service and Portal\
msiexec /i « Service and Portal.msi » /L*v c:\temp\PAMSetup.Log
Sélectionnez Privileged Access Management

Configure the MIM database connection:
- Database Server: <Nom serveur SQL>\<Nom Instance SQL> (ex: MIM-PAM\MIMPAM)
- Database Name : FIMService
- Re-use the existing database
Dans le contexte de l’article, la base FIMService est déjà installée, raison pour laquelle l’option est forcée sur re-use existing database.

Configure mail server connection
Mail Server: exchange.red.lab
Cochez Use SSL

Configure service certificate
Laissez l’option par défaut

Configure the MIM service account
- Service Account Name: svc_mimser
- Service Account Password: <password>
- Service Account Domain: RED
- Service Email Account: svc@red.lab

Configure the MIM Service and Portal synchronization
- Synchronization Server: MIM-PAM
- MIM Management Agent Account: RED\svc_FIMServiceMA

Configure connection to the MIM Service
- MIM Service Server address: mimportal.red.lab

Sharepoint site collection URL
- http://mimportal.red.lab

Next

Next

Security Changes
- Grant authenticated users access to the MIM Portal site

Configure PAM REST API
- Host Name: laissez à vide
- Port : 8086

Configure PAM REST API
- Application Pool Account Name : svc_mimsp
- Application Pool Account Password: <Password>
- Application Pool Account Domain: RED

Configure the PAM Component Service
- Service Account Name: svc_pamcomp
- Service Account Password: <Password>
- Service Account Domain: RED

Configure the PAM Monitoring Service
- Service Account Name: svc_pammon
- Service Account Password: <Password>
- Service Account Domain: RED

Next

Change

Redémarrez le serveur MIM
Check post-install PAM
Loguez-vous sur le serveur MIM avec le compte de service RED\svc_pamadmin
Connectez-vous au portail MIM via l’URL : http://mimportal.red.lab/IdentityManagement/
Vérifiez que la rubrique Privileged Access Management est présente sur le portail

Sélectionnez Management Policy Rules
Tapez User management dans la zone de recherche (en haut à droite de la fenêtre)
Cliquez sur

Sélectionnez “User management: Users can read attributes of their own”
Décochez Policy is disabled
OK
Submit

Assurez-vous que tous les services requis sont démarrés

Afin de maintenir votre infra MIM/PAM à jour, il est recommandé d’installer les MAJ que vous trouverez sur cette URL : https://learn.microsoft.com/en-us/microsoft-identity-manager/reference/version-history
Les udaptes sont cumulatifs.
Pour une meilleure sécurisation de l’infra MIM/PAM, il est possible d’utiliser des comptes GMSA.
Cependant seuls les comptes suivants sont éligibles :
- Microsoft Identity Manager Synchronization Service (FIMSynchronizationService) (svc_mimsync)
- Microsoft Identity Manager Service (FIMService) (svc_mimser)
- Microsoft Identity Manager Password Registration
- Microsoft Identity Manager Password Reset
- Privileged Access Management (PAM) Monitoring Service (PamMonitoringService) (svc_pammon)
- PAM Component Service (PrivilegeManagementComponentService) (svc_pamcomp)
Pour les plus curieux : https://learn.microsoft.com/en-us/microsoft-identity-manager/microsoft-identity-manager-2016-gmsa
Dans un prochain article, nous verrons comment utiliser PAM.
A ciao & have fun !!!