Configurer la prise en charge des comptes de service gérés de groupe (gMSA) pour l’enregistrement de session
L’enregistrement de session prend en charge les comptes de service gérés de groupe (gMSA) pour simplifier la gestion des noms de principal de service (SPN) pour les services exécutés sur plusieurs serveurs. Cette fonctionnalité améliore la sécurité et simplifie la gestion des comptes de service.
Étape 1 : Créer un gMSA sur le contrôleur de domaine
Remarque :
Cette section décrit comment créer un gMSA à l’aide du Gestionnaire de serveur sur le contrôleur de domaine. Vous pouvez également exécuter le script suivant pour atteindre le même objectif :
Add-KdsRootKey -EffectiveImmediately Install-WindowsFeature -Name RSAT-AD-PowerShell NEW-ADGroup –name "gMSA" –path "DC=ajj,DC=test" -GroupCategory Security -groupscope Global Add-ADGroupMember "gMSA" -Members "Server-3$"(The dollar sign $ is must) New-ADServiceAccount IIS1SvC -DNSHostName IIS1Svc.ajj.test -PrincipalsAllowedToRetrieveManagedPassword gMSA <!--NeedCopy-->Le paramètre Effective time permet aux clés de se propager à tous les contrôleurs de domaine (DC) avant utilisation. L’utilisation de Add-KdsRootKey -EffectiveImmediately ajoute une clé racine au contrôleur de domaine cible pour une utilisation immédiate par le service KDS (Key Distribution Service). Cependant, les autres contrôleurs de domaine ne pourront pas utiliser la clé racine tant que la réplication ne sera pas terminée.
-
Sur le contrôleur de domaine, ouvrez le Centre d’administration Active Directory.

-
Sélectionnez le domaine et créez un groupe.

-
Nommez le groupe (en utilisant gMSA comme exemple). Définissez le Type de groupe sur Sécurité et l’Étendue du groupe sur Global. Ajoutez-y des serveurs membres. Les serveurs membres incluent les machines où les serveurs d’enregistrement de session et la base de données d’enregistrement de session sont installés.

Par exemple, un membre de groupe est ajouté comme suit :

-
Après avoir ajouté un groupe de sécurité, vous pouvez le rechercher à l’aide de la recherche globale dans le Centre d’administration Active Directory. Vous pouvez afficher les serveurs membres et n’oubliez pas de les redémarrer tous.

-
Créez un compte gMSA à l’aide du cmdlet PowerShell New-ADServiceAccount.
Sur le contrôleur de domaine, ouvrez Windows PowerShell et exécutez la commande suivante pour créer un gMSA :
New-ADServiceAccount $serviceAccountName -DNSHostName $DNSHostName -PrincipalsAllowedToRetrieveManagedPassword $groupName <!--NeedCopy-->Où :
-
$serviceAccountName spécifie le nom du gMSA. Cet article utilise IIS1SvC comme exemple.
-
$DNSHostName spécifie le nom d’hôte DNS, au format $serviceAccountName suivi du nom de domaine du contrôleur de domaine.
-
$groupName spécifie le groupe autorisé à récupérer le mot de passe géré. Cet article utilise gMSA comme exemple.
-
Étape 2 : Installer le gMSA sur chaque serveur membre
Vous devez installer le gMSA sur chaque serveur qui l’utilisera.
-
Installez le module Active Directory pour Windows PowerShell, en utilisant le Gestionnaire de serveur ou PowerShell avec des privilèges d’administrateur.
-
Pour un exemple d’utilisation du Gestionnaire de serveur :

-
Si vous utilisez PowerShell avec des privilèges d’administrateur, exécutez la commande suivante :
Install-WindowsFeature -Name RSAT-AD-PowerShell <!--NeedCopy-->
-
-
Ouvrez Windows PowerShell et exécutez une commande similaire à la suivante pour installer le gMSA.
Install-ADServiceAccount IIS1SvC <!--NeedCopy-->Si vous rencontrez une erreur “Accès refusé” similaire à la suivante, assurez-vous que le serveur membre actuel a été ajouté à la liste d’autorisation du gMSA et que le serveur a été redémarré par la suite.

-
Vérifiez que vous avez installé le gMSA avec succès en exécutant une commande similaire à la suivante dans PowerShell. Si la commande renvoie True, le gMSA a été installé avec succès.
Test-ADServiceAccount IIS1SvC <!--NeedCopy-->
Étape 3 : Autoriser le gMSA à accéder à la base de données d’enregistrement de session et à la base de données de journalisation d’enregistrement de session
-
Créez une connexion pour le gMSA. Utilisez SQL Server Management Studio (SSMS) pour vous connecter à l’instance SQL de la base de données d’enregistrement de session.

Nommez la nouvelle connexion au format <nom de domaine du contrôleur de domaine>\<nom du gMSA>. Par exemple :

-
Autorisez le gMSA à accéder à la base de données d’enregistrement de session et à la base de données de journalisation d’enregistrement de session.
-
Recherchez les noms de la base de données d’enregistrement de session et de la base de données de journalisation d’enregistrement de session via le Registre. Par exemple, double-cliquez sur les clés de Registre suivantes pour obtenir les données de valeur.

-
Accordez la permission db_owner de la base de données d’enregistrement de session et de la base de données de journalisation d’enregistrement de session au gMSA.


Remarque :
Si vous accordez les autorisations db_datareader et db_datawriter au lieu de l’autorisation db_owner, vous devez également accorder l’autorisation d’exécution sur les bases de données au gMSA. Par exemple :
use SR2311 grant execute to [name of the login created earlier] use SR2311log grant execute to [name of the login created earlier] <!--NeedCopy--> -
Étape 3 : Autoriser le gMSA à accéder aux serveurs d’enregistrement de session
Effectuez les étapes suivantes sur chaque serveur d’enregistrement de session :
-
Ouvrez le Gestionnaire des services Internet (IIS) sur la machine où le serveur d’enregistrement de session est installé, définissez l’identité du pool d’applications sur le gMSA, puis redémarrez IIS.

Par exemple, les identités de pool d’applications suivantes ont été définies sur le gMSA

Remarque :
Vous pouvez également définir l’identité du pool d’applications en exécutant une commande similaire à la suivante à l’aide de Windows PowerShell :
Import-Module WebAdministration -ErrorAction Stop $webapps = Get-ChildItem -Path IIS:\AppPools foreach ($webapp in $webapps) { if ($webapp.Name.Contains("SessionRecording")){ $Pool = "IIS:\AppPools\" + $webapp.Name Write-Host $Pool Set-ItemProperty -Path $Pool -Name processModel -Value @{userName="AJJ \IIS1SvC$";identitytype=3} } } <!--NeedCopy--> -
Ouvrez l’Éditeur du Registre sur la machine où le serveur d’enregistrement de session est installé, puis accordez l’autorisation de lecture sur le serveur d’enregistrement de session au gMSA.
-
Recherchez le type d’objet de compte de service.

-
Saisissez le nom du gMSA.

-
Accordez l’autorisation de lecture au gMSA.

Remarque :
Vous pouvez également utiliser un script similaire à celui-ci pour accorder l’autorisation de lecture sur le serveur d’enregistrement de session à un gMSA :
$RegistryKey = "HKLM:\SOFTWARE\Citrix\SmartAuditor" $NewAcl = Get-Acl -Path $RegistryKey $identity = "pahl6\IIS1SvC$" $RegistryKeyRights = "ReadPermissions" $type = "Allow" $RegistryKeyAccessRuleArgumentList = $identity, $RegistryKeyRights, $type $RegistryKeyAccessRule = New-Object System.Security.AccessControl.RegistryAccessRule -ArgumentList $RegistryKeyAccessRuleArgumentList $NewAcl.SetAccessRule($RegistryKeyAccessRule) Set-Acl -Path $RegistryKey -AclObject $NewAcl <!--NeedCopy--> -
-
Ajoutez le gMSA au dossier de stockage d’enregistrement de session et accordez-lui les autorisations de lecture et d’écriture sur le dossier. Ensuite, activez l’héritage et sélectionnez Remplacer toutes les entrées d’autorisation d’objet enfant par des entrées d’autorisation héritables de cet objet.



Remarque :
Vous pouvez également utiliser un script similaire à celui-ci pour accorder les autorisations de lecture et d’écriture sur le dossier de stockage d’enregistrement de session à un gMSA et pour activer l’héritage :
$path = "C:\SessionRecordings" $NewAcl = Get-Acl $path # Set properties $identity = "pahl6\IIS1SvC$" $fileSystemRights = "Modify" $type = "Allow" # Create new rule $fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, $type $fileSystemAccessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule $fileSystemAccessRuleArgumentList # Apply new rule $NewAcl.SetAccessRule($fileSystemAccessRule) # enable inherit $isProtected = $false $preserveInheritance = $false $NewAcl.SetAccessRuleProtection($isProtected, $preserveInheritance) Set-Acl -Path $path -AclObject $NewAcl <!--NeedCopy--> -
Ajoutez le gMSA à la console d’autorisation d’enregistrement de session.
-
Recherchez l’identificateur de sécurité (SID) du gMSA.

-
Écrivez le SID dans le fichier SessionRecordingAzManStore sous <chemin d’installation du serveur d’enregistrement de session>\App_Data.

-
Accordez l’autorisation de contrôle total sur le dossier App-Data au gMSA.
Accorder l’autorisation de contrôle total sur le dossier App-Data au gMSA(/fr-fr/session-recording/2411/media/grant-permission-on-the-app-data-folder-to-a-gmsa.png)
-
Vérifiez que le gMSA est ajouté avec succès à la console d’autorisation de l’enregistrement de session.
Vérifiez que le gMSA est ajouté avec succès à la console d’autorisation de l’enregistrement de session(/fr-fr/session-recording/2411/media/verify-that-a-gmsa-is-successfully-added-to-the-session-recording-authorization-console.png)
Remarque :
Vous pouvez également utiliser un script similaire au suivant pour ajouter un gMSA à la console d’autorisation de l’enregistrement de session :
$account = "IIS1SvC" $AccountDetail = Get-ADServiceAccount -Identity $account $accountSid = $AccountDetail.SID.Value write-host $accountSid $path = "C:\Program Files\Citrix\SessionRecording\Server\App_Data\SessionRecordingAzManStore.xml" $doc = [xml](Get-Content $path) $node = $doc.AzAdminManager.AzApplication.AzRole | Where-Object {$_.Name -eq "LoggingWriter"} $element = $doc.CreateElement("Member") $element.InnerText = $accountSid $node.AppendChild($element) $doc.Save($path) <!--NeedCopy--> -
Dans cet article
- Étape 1 : Créer un gMSA sur le contrôleur de domaine
- Étape 2 : Installer le gMSA sur chaque serveur membre
- Étape 3 : Autoriser le gMSA à accéder à la base de données d’enregistrement de session et à la base de données de journalisation d’enregistrement de session
- Étape 3 : Autoriser le gMSA à accéder aux serveurs d’enregistrement de session