Unterstützung für Group Managed Service Accounts (gMSA) für die Sitzungsaufzeichnung konfigurieren
Die Sitzungsaufzeichnung unterstützt Group Managed Service Accounts (gMSAs), um die Verwaltung von Dienstprinzipalnamen (SPNs) für Dienste, die auf mehreren Servern ausgeführt werden, zu vereinfachen. Diese Funktion verbessert die Sicherheit und vereinfacht die Verwaltung von Dienstkonten.
Schritt 1: Erstellen eines gMSA auf dem Domänencontroller
Hinweis:
Dieser Abschnitt beschreibt, wie Sie ein gMSA mithilfe des Server-Managers auf dem Domänencontroller erstellen. Alternativ können Sie das folgende Skript ausführen, um dasselbe Ziel zu erreichen:
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-->Der Parameter „Effective time“ (Gültigkeitsdauer) ermöglicht es, dass Schlüssel vor der Verwendung an alle Domänencontroller (DCs) weitergegeben werden. Die Verwendung von Add-KdsRootKey -EffectiveImmediately fügt dem Ziel-DC einen Stammschlüssel zur sofortigen Verwendung durch den Key Distribution Service (KDS) hinzu. Andere Domänencontroller können den Stammschlüssel jedoch erst verwenden, wenn die Replikation abgeschlossen ist.
-
Öffnen Sie auf dem Domänencontroller das Active Directory-Verwaltungscenter.

-
Wählen Sie die Domäne aus und erstellen Sie eine Gruppe.

-
Benennen Sie die Gruppe (z. B. gMSA). Legen Sie Gruppentyp auf Sicherheit und Gruppenbereich auf Global fest. Fügen Sie ihr Mitgliedsserver hinzu. Die Mitgliedsserver umfassen Maschinen, auf denen die Sitzungsaufzeichnungsserver und die Sitzungsaufzeichnungsdatenbank installiert sind.

Ein Gruppenmitglied wird beispielsweise wie folgt hinzugefügt:

-
Nachdem Sie eine Sicherheitsgruppe erfolgreich hinzugefügt haben, können Sie diese über die globale Suche im Active Directory-Verwaltungscenter suchen. Sie können die Mitgliedsserver anzeigen und müssen daran denken, alle neu zu starten.

-
Erstellen Sie ein gMSA-Konto mit dem New-ADServiceAccount PowerShell-Cmdlet.
Öffnen Sie auf dem Domänencontroller Windows PowerShell und führen Sie den folgenden Befehl aus, um ein gMSA zu erstellen:
New-ADServiceAccount $serviceAccountName -DNSHostName $DNSHostName -PrincipalsAllowedToRetrieveManagedPassword $groupName <!--NeedCopy-->Dabei gilt:
-
$serviceAccountName gibt den Namen des gMSA an. Dieser Artikel verwendet IIS1SvC als Beispiel.
-
$DNSHostName gibt den DNS-Hostnamen an, im Format von $serviceAccountName gefolgt vom Domänennamen des Domänencontrollers.
-
$groupName gibt die Gruppe an, die das verwaltete Kennwort abrufen darf. Dieser Artikel verwendet gMSA als Beispiel.
-
Schritt 2: Installieren Sie das gMSA auf jedem Mitgliedsserver
Sie müssen das gMSA auf jedem Server installieren, der es verwenden wird.
-
Installieren Sie das Active Directory-Modul für Windows PowerShell, entweder über den Server-Manager oder PowerShell mit Administratorrechten.
-
Ein Beispiel für die Verwendung des Server-Managers:

-
Wenn Sie PowerShell mit Administratorrechten verwenden, führen Sie den folgenden Befehl aus:
Install-WindowsFeature -Name RSAT-AD-PowerShell <!--NeedCopy-->
-
-
Öffnen Sie Windows PowerShell und führen Sie einen ähnlichen Befehl wie den folgenden aus, um das gMSA zu installieren.
Install-ADServiceAccount IIS1SvC <!--NeedCopy-->Wenn Sie einen ähnlichen Fehler wie „Zugriff verweigert“ erhalten, stellen Sie sicher, dass der aktuelle Mitgliedsserver zur Zulassungsliste des gMSA hinzugefügt und der Server anschließend neu gestartet wurde.

-
Überprüfen Sie, ob Sie das gMSA erfolgreich installiert haben, indem Sie einen Befehl ähnlich dem folgenden in PowerShell ausführen. Wenn der Befehl True zurückgibt, wurde das gMSA erfolgreich installiert.
Test-ADServiceAccount IIS1SvC <!--NeedCopy-->
Schritt 3: gMSA für den Zugriff auf die Session Recording-Datenbank und die Session Recording-Protokollierungsdatenbank aktivieren
-
Erstellen Sie ein Login für das gMSA. Verwenden Sie das SQL Server Management Studio (SSMS), um eine Verbindung zur SQL-Instanz der Session Recording-Datenbank herzustellen.

Benennen Sie das neue Login im Format <Domänenname des Domänencontrollers>\<Name des gMSA>. Zum Beispiel:

-
Aktivieren Sie das gMSA für den Zugriff auf die Session Recording-Datenbank und die Session Recording-Protokollierungsdatenbank.
-
Suchen Sie die Namen der Session Recording-Datenbank und der Session Recording-Protokollierungsdatenbank in der Registrierung. Doppelklicken Sie beispielsweise auf die folgenden Registrierungsschlüssel, um die Wertdaten abzurufen.

-
Erteilen Sie dem gMSA die db_owner-Berechtigung für die Session Recording-Datenbank und die Session Recording-Protokollierungsdatenbank.


Hinweis:
Wenn Sie db_datareader- und db_datawriter-Berechtigungen anstelle der db_owner-Berechtigung erteilen, müssen Sie der gMSA auch die Ausführungsberechtigung für die Datenbanken erteilen. Zum Beispiel:
use SR2311 grant execute to [name of the login created earlier] use SR2311log grant execute to [name of the login created earlier] <!--NeedCopy--> -
Schritt 3: gMSA den Zugriff auf die Session Recording-Server ermöglichen
Führen Sie die folgenden Schritte auf jedem Session Recording-Server aus:
-
Öffnen Sie den Internetinformationsdienste (IIS)-Manager auf dem Computer, auf dem der Session Recording-Server installiert ist, legen Sie die Identität des Anwendungspools auf die gMSA fest und starten Sie IIS neu.

Beispielsweise wurden die folgenden Anwendungspoolidentitäten auf die gMSA festgelegt

Hinweis:
Alternativ können Sie die Identität des Anwendungspools festlegen, indem Sie einen Befehl ähnlich dem folgenden mit Windows PowerShell ausführen:
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--> -
Öffnen Sie den Registrierungs-Editor auf dem Computer, auf dem der Session Recording-Server installiert ist, und erteilen Sie der gMSA dann Leseberechtigung für den Session Recording-Server.
-
Suchen Sie den Objekttyp des Dienstkontos.

-
Geben Sie den Namen der gMSA ein.

-
Erteilen Sie der gMSA Leseberechtigung.

Hinweis:
Alternativ können Sie ein Skript verwenden, das dem folgenden ähnelt, um einem gMSA Leseberechtigungen auf dem Session Recording-Server zu erteilen:
$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--> -
-
Fügen Sie das gMSA zum Speicherordner der Sitzungsaufzeichnung hinzu und erteilen Sie ihm Lese- und Schreibberechtigungen für den Ordner. Danach aktivieren Sie die Vererbung und wählen Alle Berechtigungseinträge für untergeordnete Objekte durch vererbbare Berechtigungseinträge von diesem Objekt ersetzen.



Hinweis:
Alternativ können Sie ein Skript verwenden, das dem folgenden ähnelt, um einem gMSA Lese- und Schreibberechtigungen für den Speicherordner der Sitzungsaufzeichnung zu erteilen und die Vererbung zu aktivieren:
$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--> -
Fügen Sie das gMSA zur Autorisierungskonsole der Sitzungsaufzeichnung hinzu.
-
Suchen Sie den Sicherheitsbezeichner (SID) für das gMSA.

-
Schreiben Sie die SID in die Datei SessionRecordingAzManStore unter <Installationspfad des Session Recording-Servers>\App_Data.

-
Erteilen Sie dem gMSA Vollzugriffsberechtigungen für den Ordner App-Data.

-
Überprüfen Sie, ob das gMSA erfolgreich zur Session Recording-Autorisierungskonsole hinzugefügt wurde.

Hinweis:
Alternativ können Sie ein Skript ähnlich dem folgenden verwenden, um ein gMSA zur Session Recording-Autorisierungskonsole hinzuzufügen:
$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--> -
In diesem Artikel
- Schritt 1: Erstellen eines gMSA auf dem Domänencontroller
- Schritt 2: Installieren Sie das gMSA auf jedem Mitgliedsserver
- Schritt 3: gMSA für den Zugriff auf die Session Recording-Datenbank und die Session Recording-Protokollierungsdatenbank aktivieren
- Schritt 3: gMSA den Zugriff auf die Session Recording-Server ermöglichen