Configurar la compatibilidad de cuentas de servicio administradas por grupo (gMSA) con la grabación de sesiones
La grabación de sesiones admite cuentas de servicio administradas por grupo (gMSA) para simplificar la administración del nombre principal de servicio (SPN) para servicios que se ejecutan en varios servidores. Esta función mejora la seguridad y simplifica la gestión de las cuentas de servicio.
Paso 1: Crear una gMSA en el controlador de dominio
Nota:
Esta sección describe cómo crear una gMSA utilizando el Administrador de servidor en el controlador de dominio. Alternativamente, puede ejecutar el siguiente script para lograr el mismo propósito:
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-->
El parámetro Tiempo efectivo permite que las claves tengan tiempo para propagarse a todos los controladores de dominio (DC) antes de su uso. El uso de Add-KdsRootKey -EffectiveImmediately agrega una clave raíz al controlador de dominio de destino para su uso inmediato por parte del servicio de distribución de claves (KDS). Sin embargo, otros controladores de dominio no podrán utilizar la clave raíz hasta que se complete la replicación.
-
En el controlador de dominio, abra el Centro administrativo de Active Directory.
-
Seleccione el dominio y cree un grupo.
-
Nombre el grupo (usando gMSA como ejemplo). Establezca Tipo de grupo en Seguridad y Ámbito de grupo en Global. Agréguele servidores miembros. Los servidores miembros incluyen máquinas donde están instalados los servidores de grabación de sesiones y la base de datos de grabación de sesiones.
Por ejemplo, un miembro del grupo se agrega de la siguiente manera:
-
Después de agregar exitosamente un grupo de seguridad, puede buscarlo usando la búsqueda global en el Centro administrativo de Active Directory. Puede ver los servidores miembros y recordar reiniciarlos todos.
-
Cree una cuenta gMSA utilizando el cmdlet de PowerShell New-ADServiceAccount.
En el controlador de dominio, abra Windows PowerShell y ejecute el siguiente comando para crear una gMSA:
New-ADServiceAccount $serviceAccountName -DNSHostName $DNSHostName -PrincipalsAllowedToRetrieveManagedPassword $groupName <!--NeedCopy-->
Donde:
-
$serviceAccountName especifica el nombre de la gMSA. Este artículo utiliza IIS1SvC como ejemplo.
-
$DNSHostName especifica el nombre de host DNS, en el formato $serviceAccountName seguido del nombre de dominio del controlador de dominio.
-
$groupName especifica el grupo autorizado para recuperar la contraseña administrada. Este artículo utiliza gMSA como ejemplo.
-
Paso 2: Instalar la gMSA en cada servidor miembro
Debe instalar gMSA en cada servidor que lo utilizará.
-
Instale el módulo Active Directory para Windows PowerShell, utilizando el Administrador del servidor o PowerShell con privilegios administrativos.
-
Para ver un ejemplo de uso del Administrador de servidor:
-
Si usa PowerShell con privilegios administrativos, ejecute el siguiente comando:
Install-WindowsFeature -Name RSAT-AD-PowerShell <!--NeedCopy-->
-
-
Abra Windows PowerShell y ejecute un comando similar al siguiente para instalar gMSA.
Install-ADServiceAccount IIS1SvC <!--NeedCopy-->
Si encuentra un error de “Acceso denegado” similar al siguiente, asegúrese de que el servidor miembro actual se haya agregado a la lista de permitidos de gMSA y que el servidor se haya reiniciado posteriormente.
-
Verifique que haya instalado gMSA correctamente ejecutando un comando similar al siguiente en PowerShell. Si el comando devuelve Verdadero, la gMSA se ha instalado correctamente.
Test-ADServiceAccount IIS1SvC <!--NeedCopy-->
Paso 3: Habilite la gMSA para acceder a la base de datos de grabación de sesiones y a la base de datos de registro de grabación de sesiones
-
Cree un inicio de sesión para la gMSA. Utilice SQL Server Management Studio (SSMS) para conectarse a la instancia SQL de la base de datos de grabación de sesiones.
Asigne al nuevo nombre de inicio de sesión el formato <nombre de dominio del controlador de dominio>\<nombre de la gMSA>. Por ejemplo:
-
Habilite gMSA para acceder a la base de datos de grabación de sesiones y a la base de datos de registro de grabación de sesiones.
-
Encuentre los nombres de la base de datos de grabación de sesiones y la base de datos de registro de grabación de sesiones a través del Registro. Por ejemplo, haga doble clic en las siguientes claves de registro para obtener los datos del valor.
-
Otorgue el permiso db_owner de la base de datos de grabación de sesiones y de la base de datos de registro de grabación de sesiones a gMSA.
Nota:
Si otorga permisos db_datareader y db_datawriter en lugar del permiso db_owner, también debe otorgar el permiso de ejecución en las bases de datos a gMSA. Por ejemplo:
use SR2311 grant execute to [name of the login created earlier] use SR2311log grant execute to [name of the login created earlier] <!--NeedCopy-->
-
Paso 3: Habilite la gMSA para acceder a los servidores de grabación de sesiones
Complete los siguientes pasos en cada servidor de Grabación de sesiones:
-
Abra el Administrador de Internet Information Services (IIS) en la máquina donde está instalado el servidor de Grabación de sesiones, configure la identidad del grupo de aplicaciones en gMSA y reinicie IIS.
Por ejemplo, las siguientes identidades de grupo de aplicaciones se han establecido en gMSA
Nota:
Como alternativa, puede configurar la identidad del grupo de aplicaciones ejecutando un comando similar al siguiente usando 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-->
-
Abra el Editor del Registro en la máquina donde está instalado el servidor de Grabación de sesiones y luego otorgue permiso de lectura en el servidor de Grabación de sesiones a la gMSA.
-
Localice el tipo de objeto de la cuenta de servicio.
-
Introduzca el nombre de la gMSA.
-
Otorgue permiso de lectura a la gMSA.
Nota:
Como alternativa, puede utilizar un script similar al siguiente para otorgar permiso de lectura en el servidor de Grabación de sesiones a una 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-->
-
-
Agregue la gMSA a la carpeta de almacenamiento de grabaciones de sesiones y otórguele permisos de lectura y escritura en la carpeta. Después de eso, habilite la herencia y seleccione Reemplazar todas las entradas de permisos de objetos secundarios con entradas de permisos heredables de este objeto.
Nota:
Como alternativa, puede utilizar un script similar al siguiente para otorgar permisos de lectura y escritura en la carpeta de almacenamiento de grabación de sesiones a una gMSA y habilitar la herencia:
$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-->
-
Agregue la gMSA a la consola de autorización de grabación de sesiones.
-
Encuentre el identificador de seguridad (SID) para la gMSA.
-
Escriba el SID en el archivo SessionRecordingAzManStore en la <ruta de instalación del servidor de Grabación de sesiones>\App_Data.
-
Otorgue permiso de control total sobre la carpeta App-Data a gMSA.
-
Verifique que la gMSA se haya agregado correctamente a la Consola de autorización de grabación de sesiones.
Nota:
Como alternativa, puede utilizar un script similar al siguiente para agregar una gMSA a la Consola de autorización de grabación de sesiones:
$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-->
-
En este artículo
- Paso 1: Crear una gMSA en el controlador de dominio
- Paso 2: Instalar la gMSA en cada servidor miembro
- Paso 3: Habilite la gMSA para acceder a la base de datos de grabación de sesiones y a la base de datos de registro de grabación de sesiones
- Paso 3: Habilite la gMSA para acceder a los servidores de grabación de sesiones