gMSA-Unterstützung (Group Managed Service Account) für die Sitzungsaufzeichnung konfigurieren
Die Sitzungsaufzeichnung unterstützt gruppenverwaltete Dienstkonten (gMSAs), um die Verwaltung von Dienstprinzipalnamen (SPNs) für Dienste zu vereinfachen, die auf mehreren Servern ausgeführt werden. Dieses Feature erhöht die Sicherheit und vereinfacht die Verwaltung von Dienstkonten.
Schritt 1: gMSA auf dem Domänencontroller erstellen
Hinweis:
In diesem Abschnitt wird beschrieben, wie Sie mit Server Manager auf dem Domänencontroller ein gMSA erstellen. Alternativ können Sie zum gleichen Zweck das folgende Skript ausführen:
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 “Gültige Zeit” gibt den Schlüsseln Zeit, sich vor ihrer Verwendung an alle Domänencontroller (DCs) zu verteilen. Mit Add-KdsRootKey -EffectiveImmediately wird dem Ziel-DC ein Stammschlüssel zur sofortigen Verwendung durch den Key Distribution Service (KDS) hinzugefügt. 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 (verwenden Sie als Beispiel gMSA). Setzen Sie Gruppentyp auf Sicherheit und Gruppenbereich auf Global. Fügen Sie ihr Mitgliedsserver hinzu. Zu den Mitgliedsservern gehören Maschinen, auf denen die Sitzungsaufzeichnungsserver und die Sitzungsaufzeichnungsdatenbank installiert sind.
Beispielsweise wird ein Gruppenmitglied wie folgt hinzugefügt:
-
Nachdem Sie eine Sicherheitsgruppe erfolgreich hinzugefügt haben, können Sie mit der globalen Suche im Active Directory-Verwaltungscenter danach suchen. Sie können die Server der Mitglieder sehen und vergessen Sie nicht, sie alle neu zu starten.
-
Erstellen Sie mit dem PowerShell-Cmdlet New-ADServiceAccount ein gMSA-Konto.
Ö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-->
Hierbei gilt:
-
$serviceAccountName gibt den Namen des gMSA an. Dieser Artikel verwendet IIS1SvC als Beispiel.
-
$DNSHostName gibt den DNS-Hostnamen im Format $serviceAccountName an, 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: gMSA auf jedem Mitgliedsserver installieren
Sie müssen gMSA auf jedem Server installieren, der gMSA verwenden wird.
-
Installieren Sie das Active Directory-Modul für Windows PowerShell, indem Sie entweder den Server Manager oder PowerShell mit Administratorrechten verwenden.
-
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 Befehl ähnlich dem folgenden aus, um gMSA zu installieren.
Install-ADServiceAccount IIS1SvC <!--NeedCopy-->
Wenn ein “Zugriff verweigert”-Fehler ähnlich dem folgenden auftritt, stellen Sie sicher, dass der aktuelle Mitgliedsserver zur gMSA-Positivliste hinzugefügt und der Server anschließend neu gestartet wurde.
-
Überprüfen Sie, ob die gMSA-Installation erfolgreich war, indem Sie in PowerShell einen Befehl ähnlich dem folgenden ausführen. Wenn der Befehl Truezurückgibt, wurde gMSA erfolgreich installiert.
Test-ADServiceAccount IIS1SvC <!--NeedCopy-->
Schritt 3: Aktivieren Sie für das gMSA den Zugriff auf die Sitzungsaufzeichnungsdatenbank und die Sitzungsaufzeichnungsprotokollierungsdatenbank
-
Erstellen Sie einen Login für das gMSA. Verwenden Sie SQL Server Management Studio (SSMS), um eine Verbindung mit der SQL-Instanz der Sitzungsaufzeichnungsdatenbank herzustellen.
Benennen Sie den neuen Login im Format <Domänenname des Domänencontrollers>\<Name des gMSA>. Beispiel:
-
Aktivieren Sie das gMSA, um auf die Sitzungsaufzeichnungsdatenbank und die Sitzungsaufzeichnungsprotokollierungsdatenbank zuzugreifen.
-
Suchen Sie in der Registrierung nach den Namen der Sitzungsaufzeichnungsdatenbank und der Sitzungsaufzeichnungsprotokollierungsdatenbank. Doppelklicken Sie beispielsweise auf die folgenden Registrierungsschlüssel, um die Wertdaten abzurufen.
-
Erteilen Sie dem gMSA die Berechtigung db_owner für die Sitzungsaufzeichnungsdatenbank und die Sitzungsaufzeichnungsprotokollierungsdatenbank.
Hinweis:
Wenn Sie die Berechtigungen db_datareader und db_datawriter anstelle der Berechtigung db_owner erteilen, müssen Sie dem gMSA auch die Ausführungsberechtigung für die Datenbanken erteilen. 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: Aktivieren Sie das gMSA für den Zugriff auf die Sitzungsaufzeichnungsserver
Führen Sie auf jedem Sitzungsaufzeichnungsserver die folgenden Schritte aus:
-
Öffnen Sie den Internetinformationsdienste-Manager (IIS) auf der Maschine, auf der der Sitzungsaufzeichnungsserver installiert ist, legen Sie die Anwendungspoolidentität auf gMSA fest und starten Sie IIS neu.
Beispielsweise wurden die folgenden Anwendungspoolidentitäten auf das gMSA gesetzt
Hinweis:
Alternativ können Sie die Anwendungspoolidentität festlegen, indem Sie in Windows PowerShell einen Befehl ähnlich dem folgenden 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 der Maschine, auf der der Sitzungsaufzeichnungsserver installiert ist, und erteilen Sie dem gMSA dann Leseberechtigung für den Sitzungsaufzeichnungsserver.
-
Suchen Sie den Objekttyp des Dienstkontos.
-
Geben Sie den Namen des gMSA ein.
-
Gewähren Sie dem gMSA die Leseberechtigung.
Hinweis:
Alternativ können Sie ein Skript ähnlich dem folgenden verwenden, um einem gMSA Leseberechtigung auf dem Sitzungsaufzeichnungsserver 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 für die Sitzungsaufzeichnung hinzu und erteilen Sie ihm Lese- und Schreibberechtigungen für den Ordner. Aktivieren Sie anschließend die Vererbung und wählen Sie . Ersetzen Sie alle Berechtigungseinträge untergeordneter Objekte durch vererbbare Berechtigungseinträge dieses Objekts.
Hinweis:
Alternativ können Sie ein Skript ähnlich dem folgenden verwenden, 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 Session Recording Authorization Console hinzu.
-
Suchen Sie die Sicherheitskennung (SID) für das gMSA.
-
Schreiben Sie die SID in die Datei SessionRecordingAzManStore unter <Installationspfad des Session Recording-Servers>\App_Data.
-
Gewähren Sie dem gMSA die Vollzugriffsberechtigung für den Ordner App-Data .
-
Überprüfen Sie, ob das gMSA erfolgreich zur Session Recording Authorization Console hinzugefügt wurde.
Hinweis:
Alternativ können Sie ein Skript ähnlich dem folgenden verwenden, um der Session Recording Authorization Console ein gMSA 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: gMSA auf dem Domänencontroller erstellen
- Schritt 2: gMSA auf jedem Mitgliedsserver installieren
- Schritt 3: Aktivieren Sie für das gMSA den Zugriff auf die Sitzungsaufzeichnungsdatenbank und die Sitzungsaufzeichnungsprotokollierungsdatenbank
- Schritt 3: Aktivieren Sie das gMSA für den Zugriff auf die Sitzungsaufzeichnungsserver