Configurar la compatibilidad con la cuenta de servicio administrada de grupo (gMSA) para la Grabación de sesiones

La Grabación de sesiones admite las Cuentas de servicio administradas de grupo (gMSA) para simplificar la administración del nombre principal de servicio (SPN) para los servicios que se ejecutan en varios servidores. Esta función mejora la seguridad y simplifica la administració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 mediante el Administrador del 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 de tiempo efectivo permite que las claves se propaguen a todos los controladores de dominio (DC) antes de su uso. El uso de Add-KdsRootKey -EffectiveImmediately agrega una clave raíz al DC de destino para su uso inmediato por el servicio de distribución de claves (KDS). Sin embargo, otros controladores de dominio no podrán usar la clave raíz hasta que se complete la replicación.

  1. En el controlador de dominio, abra el Centro de administración de Active Directory.

    El Centro de administración de Active Directory

  2. Seleccione el dominio y cree un grupo.

    Seleccione el dominio y cree un grupo

  3. Asigne un nombre al grupo (usando gMSA como ejemplo). Establezca el Tipo de grupo en Seguridad y el Ámbito del grupo en Global. Agregue servidores miembros a él. 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.

    Asigne un nombre al grupo y agregue servidores miembros

    Por ejemplo, se agrega un miembro del grupo de la siguiente manera:

    Se agrega un miembro del grupo

  4. Después de agregar correctamente un grupo de seguridad, puede buscarlo mediante la búsqueda global en el Centro de administración de Active Directory. Puede ver los servidores miembros y recuerde reiniciarlos todos.

    Búsqueda global

  5. Cree una cuenta gMSA mediante 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 de $serviceAccountName seguido del nombre de dominio del controlador de dominio.

    • $groupName especifica el grupo al que se le permite recuperar la contraseña administrada. Este artículo utiliza gMSA como ejemplo.

Paso 2: Instale la gMSA en cada servidor miembro

Debe instalar la gMSA en cada servidor que la vaya a utilizar.

  1. Instale el módulo de Active Directory para Windows PowerShell, utilizando el Administrador del servidor o PowerShell con privilegios administrativos.

    • Por ejemplo, para usar el Administrador del servidor:

      Instalar el módulo de Active Directory para Windows PowerShell

    • Si utiliza PowerShell con privilegios administrativos, ejecute el siguiente comando:

       Install-WindowsFeature -Name RSAT-AD-PowerShell
       <!--NeedCopy-->
      
  2. Abra Windows PowerShell y ejecute un comando similar al siguiente para instalar la 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 la gMSA y de que el servidor se haya reiniciado posteriormente.

    Error de acceso denegado al instalar un gMSA

  3. verificar que ha instalado el gMSA correctamente ejecutando un comando similar al siguiente en PowerShell. Si el comando devuelve True, el gMSA se ha instalado correctamente.

    Test-ADServiceAccount IIS1SvC
     <!--NeedCopy-->
    

    verificar la instalación correcta de un gMSA

Paso 3: Habilitar el 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

  1. Cree un inicio de sesión para el gMSA. Utilice SQL Server Management Studio (SSMS) para conectarse a la instancia SQL de la base de datos de grabación de sesiones.

    Crear un inicio de sesión para un gMSA

    Asigne un nombre al nuevo inicio de sesión con el formato de <nombre de dominio del controlador de dominio>\<nombre del gMSA>. Por ejemplo:

    Nombre de inicio de sesión de la instancia SQL

  2. Habilite el 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.

    1. Busque 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 del Registro para obtener los datos de valor.

      Buscar nombres de bases de datos a través del registro

    2. Conceda el permiso db_owner de la base de datos de grabación de sesiones y la base de datos de registro de grabación de sesiones al gMSA.

      Conceder el permiso db_owner para la base de datos de grabación de sesiones

      Conceder el permiso db_owner para la base de datos de registro de grabación de sesiones

    Nota:

    Si concede permisos de db_datareader y db_datawriter en lugar del permiso de db_owner, también debe conceder el permiso de ejecución en las bases de datos a la 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: Habilitar la gMSA para acceder a los servidores de Session Recording

Complete los siguientes pasos en cada servidor de Session Recording:

  1. Abra el Administrador de Internet Information Services (IIS) en la máquina donde está instalado el servidor de Session Recording, establezca la identidad del grupo de aplicaciones en la gMSA y reinicie IIS.

    Establecer la identidad del grupo de aplicaciones en una gMSA

    Por ejemplo, las siguientes identidades de grupo de aplicaciones se han establecido en la gMSA

    Las identidades del grupo de aplicaciones se han establecido en una gMSA

    Nota:

    Alternativamente, puede establecer la identidad del grupo de aplicaciones ejecutando un comando similar al siguiente mediante 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-->
    
  2. Abra el Editor del Registro en la máquina donde está instalado el servidor de Session Recording y, a continuación, conceda permiso de lectura en el servidor de Session Recording a la gMSA.

    1. Busque el tipo de objeto de cuenta de servicio.

      Busque el tipo de objeto de cuenta de servicio

    2. Introduzca el nombre de la gMSA.

      Introduzca la gMSA

    3. Conceda permiso de lectura a la gMSA.

      Conceder permiso de lectura al gMSA

    Nota:

    Alternativamente, puede usar un script similar al siguiente para conceder permiso de lectura en el servidor de Grabación de sesiones a 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-->
    
  3. Agregue el gMSA a la carpeta de almacenamiento de Grabación de sesiones y concédale 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.

    Conceder permisos de lectura y escritura en la carpeta de almacenamiento de Grabación de sesiones al gMSA - Paso 1

    Conceder permisos de lectura y escritura en la carpeta de almacenamiento de Grabación de sesiones al gMSA - Paso 2

    Habilitar herencia

    Nota:

    Alternativamente, puede usar un script similar al siguiente para conceder permisos de lectura y escritura en la carpeta de almacenamiento de Grabación de sesiones a un gMSA y para 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-->
    
  4. Agregue el gMSA a la Consola de autorización de Grabación de sesiones.

    1. Busque el identificador de seguridad (SID) del gMSA.

      Buscar el SID del gMSA

    2. Escriba el SID en el archivo SessionRecordingAzManStore en <Ruta de instalación del servidor de Grabación de sesiones>\App_Data.

      Escribir el SID del gMSA en un archivo

    3. Conceda permiso de control total en la carpeta App-Data al gMSA.

      Conceder permiso de control total sobre la carpeta App-Data a la gMSA(/es-es/session-recording/current-release/media/grant-permission-on-the-app-data-folder-to-a-gmsa.png)

    4. verificar que la gMSA se ha añadido correctamente a la Consola de autorización de grabación de sesiones.

      verificar que la gMSA se ha añadido correctamente a la Consola de autorización de grabación de sesiones(/es-es/session-recording/current-release/media/verify-that-a-gmsa-is-successfully-added-to-the-session-recording-authorization-console.png)

    Nota:

    Alternativamente, puede usar un script similar al siguiente para añadir 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-->
    
Configurar la compatibilidad con la cuenta de servicio administrada de grupo (gMSA) para la Grabación de sesiones