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

La grabación de sesiones admite cuentas de servicio administradas de grupo (gMSA) para simplificar la administración de nombres principales 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. También 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 Effective time 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 parte del 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.

    Seleccionar el dominio y crear 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 las máquinas donde están instalados los servidores de grabación de sesiones y la base de datos de grabación de sesiones.

    Asignar un nombre al grupo y agregar servidores miembros

    Por ejemplo, un miembro del grupo se agrega 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 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 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.

    • Para ver un ejemplo de cómo 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 que el servidor se haya reiniciado posteriormente.

    Error de acceso denegado al instalar un gMSA(/es-es/session-recording/2509/media/access-denied-when-installing-a-mgsa.png)

  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 <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 de permisos de db_owner, también debe conceder el permiso de ejecución en las bases de datos al 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 el gMSA para acceder a los servidores de grabación de sesiones

Complete los siguientes pasos en cada servidor de grabación de sesiones:

  1. Abra el Administrador de Internet Information Services (IIS) en la máquina donde está instalado el servidor de grabación de sesiones, establezca la identidad del grupo de aplicaciones en el gMSA y, a continuación, reinicie IIS.

    Establezca la identidad del grupo de aplicaciones en un gMSA

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

    Las identidades del grupo de aplicaciones se han establecido en un 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 grabación de sesiones y, a continuación, conceda permiso de lectura en el servidor de grabación de sesiones al gMSA.

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

      Localice el tipo de objeto de cuenta de servicio

    2. Introduzca el nombre del gMSA.

      Introduzca el gMSA

    3. Conceda permiso de lectura al gMSA.

      Conceder permiso de lectura a la gMSA

    Nota:

    Alternativamente, puede usar un script similar al siguiente para conceder 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-->
    
  3. Agregue la 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 a la gMSA - Paso 1

    Conceder permisos de lectura y escritura en la carpeta de almacenamiento de Grabación de sesiones a la 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 una 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 la gMSA a la Consola de autorización de Grabación de sesiones.

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

      Buscar el SID de la 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 de la gMSA en un archivo

    3. Conceda permiso de control total sobre la carpeta App-Data a la gMSA.

      Conceder permiso de control total en la carpeta App-Data al gMSA

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

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

    Nota:

    Alternativamente, puede usar un script similar al siguiente para agregar un 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