Implementar recursos de Grabación de sesiones en una suscripción en la nube
Este artículo proporciona información sobre la implementación de recursos de Grabación de sesiones en una suscripción de Azure.
Puede implementar los siguientes recursos de Grabación de sesiones en una suscripción de Azure desde el servicio Grabación de sesiones:
- Servidores de Grabación de sesiones
- Bases de datos
- Almacenamiento
- Equilibrador de carga
Hay dos formas de implementar recursos de Grabación de sesiones en una suscripción de Azure:
-
Utilice una conexión de host que se conecte a la suscripción de Azure. La creación de una conexión de host requiere que proporcione la información de su suscripción. Para obtener más información, consulte Crear e implementar un sitio a través de una conexión de host más adelante en este artículo.
-
Si no desea proporcionar la información de su suscripción, cree una plantilla de Azure Resource Manager (plantilla ARM) que contenga cómo y qué recursos desea implementar. Para obtener más información, consulte Crear e implementar un sitio a través de una plantilla ARM más adelante en este artículo.
Crear e implementar un sitio a través de una conexión de host
Esta sección le guía a través del procedimiento para crear e implementar un sitio a través de una conexión de host y las siguientes operaciones que se pueden realizar en un sitio implementado de esta manera:
- Agregar recursos a un sitio existente implementado en Azure
- Cambiar las direcciones IP que tienen permitido acceder al equilibrador de carga
- Ver los costos reales de usar Azure
Crear e implementar un sitio a través de una conexión de host
-
Seleccione Configuración > Administración de servidores en el panel de navegación izquierdo del servicio de Grabación de sesiones.

-
En la página Administración de servidores, haga clic en Crear sitio. Aparecerá la página Crear sitio.

-
Seleccione Crear e implementar un sitio a través de una conexión de host. Los pasos principales se enumeran en el panel de navegación izquierdo.

-
Introduzca un nombre y una descripción para el sitio, seleccione una conexión de host que se conecte a su suscripción de Azure y especifique una región.
-
Si no tiene una conexión de host configurada, agregue una consultando Agregar una conexión de host más adelante en este artículo.
-
Las regiones de Azure Government no son compatibles.
-
-
Después de completar la información del sitio, haga clic en Siguiente para continuar.
-
(Opcional) Para obtener recomendaciones de configuraciones de VM y almacenamiento, proporcione información sobre sus necesidades de grabación.
Puede omitir este paso haciendo clic en Estoy bien, omitir este paso o haciendo clic en Siguiente sin seleccionar nada.

Cuando selecciona una opción de la lista desplegable, se presenta una recomendación según su selección. Hay un botón Restablecer disponible junto a la recomendación. Le permite borrar sus selecciones y la recomendación correspondiente en esa sección.
-
Vaya al portal de Azure y cree una nueva red virtual en la región seleccionada y configure el emparejamiento de red virtual entre la nueva red virtual y aquella a la que están conectados sus VDA. A continuación, añada una subred en la nueva red virtual. Busque e introduzca el ID de subred a continuación.

Para mantener las conexiones entre los recursos dentro de la red privada, marque la casilla Crear puntos de conexión privados para almacenamiento y bases de datos.
Después de marcar la casilla Crear puntos de conexión privados para almacenamiento y bases de datos, decida si desea introducir otro ID de subred teniendo en cuenta lo siguiente:
- Si no tiene previsto unir sus servidores de Grabación de sesiones a un dominio de Active Directory, la subred no es necesaria y, por lo tanto, deje el campo ID de subred vacío.
- Si deja el campo ID de subred vacío, está uniendo sus servidores de Grabación de sesiones a un dominio de Azure Active Directory.

-
Cree máquinas virtuales (VM) como sus servidores de Grabación de sesiones.

Nota:
- El campo Número de máquinas virtuales se rellena previamente con el número recomendado, si lo hay. Cambie el número según sea necesario.
- Los costes estimados se basan en precios estándar y no tienen en cuenta los descuentos. Puede esperar costes reales inferiores a los estimados.
-
Una los servidores de Grabación de sesiones al mismo dominio que sus VDA y especifique un certificado para los servidores de Grabación de sesiones.
-
Si sus VDA se conectan a un dominio de Active Directory, marque la casilla Unir servidores a un dominio de Active Directory e introduzca la información pertinente. Al marcar la casilla Unir servidores a un dominio de Active Directory, está configurando la implementación para un escenario híbrido, integrando Active Directory local con Azure AD.
-
Si sus VDA se conectan a un dominio de Azure Active Directory (Azure AD), desmarque la casilla Unir servidores a un dominio de Active Directory. Después de completar la creación del sitio actual, asegúrese de unir manualmente los servidores de Grabación de sesiones al mismo dominio de Azure AD. Tenga en cuenta que la implementación pura de Azure AD solo está disponible para Grabación de sesiones 2402 y versiones posteriores.


Nota:
Desde julio de 2023, Microsoft ha cambiado el nombre de Azure Active Directory (Azure AD) a Microsoft Entra ID. En este documento, cualquier referencia a Azure Active Directory, Azure AD o AAD ahora se refiere a Microsoft Entra ID.
-
-
Configure una cuenta de almacenamiento de Azure y recursos compartidos de archivos para almacenar los archivos de grabación. Para obtener información sobre precios, consulte Precios de Azure Files.

-
Cree dos bases de datos SQL en Azure. Una se utiliza como base de datos de grabación de sesiones (denominada sessionrecording) y la otra como base de datos de registro del administrador (denominada sessionrecordinglogging).

Nota:
Al agregar recursos, específicamente servidores de grabación de sesiones, a un sitio existente implementado a través de una conexión de host, debe proporcionar la contraseña de administrador de la base de datos establecida durante la creación del sitio.
-
Cree un equilibrador de carga para distribuir la carga de trabajo entre los servidores de grabación de sesiones. Introduzca las direcciones IP o los rangos de sus VDA y sepárelos con una coma (,) en el campo Restringir el acceso del equilibrador de carga solo a las siguientes direcciones. Para obtener información sobre precios, consulte Precios de Load Balancer.

-
(Opcional) Aplique etiquetas a los recursos de Azure que se van a crear.

-
Cree un cliente seguro para incorporar los servidores de grabación de sesiones al servicio de grabación de sesiones.
Haga clic en Crear cliente para que Citrix cree un cliente seguro en su nombre. Alternativamente, puede crear un cliente seguro a través de la pestaña Administración de identidades y accesos > Acceso a la API de la consola de Citrix Cloud™ y, a continuación, rellenar la información siguiente.

-
Vea el resumen sobre el sitio que se va a crear. Haga clic en el icono del lápiz para editar la configuración si es necesario o haga clic en el botón para iniciar la implementación.

Los siguientes son ejemplos del proceso de implementación:
Implementación en curso:

Mientras la implementación de un sitio está en curso, puede hacer clic en Ver estado para ver el progreso.
Error de implementación:

Si se producen errores durante el proceso de implementación, haga clic en Ver estado para ver los detalles del error. Por ejemplo, los detalles del error:

Puede hacer clic en Volver a la configuración o cancelar la implementación. Si hace clic en Volver a la configuración, volverá a la página Crear sitio, donde podrá modificar la configuración e intentarlo de nuevo. Si está seguro de cancelar la implementación, siga el asistente para eliminar el sitio y los recursos de Azure creados para el sitio. Por ejemplo:

Implementación correcta:
Cuando se completa la implementación de un sitio, puede expandirlo y ver y administrar los recursos creados en él. El botón Ver estado cambia a Configuración. Hay un icono de Azure disponible para representar los sitios implementados en Azure. Para obtener información sobre la configuración del sitio, consulte Configuración del sitio y del servidor.

Agregar recursos a un sitio existente implementado en Azure
Para un sitio existente que haya implementado en Azure a través de una conexión de host, puede agregarle recursos, incluidos servidores y almacenamiento. Para ello, complete los siguientes pasos:
- Seleccione Configuración > Administración de servidores en la navegación izquierda del servicio de Grabación de sesiones.
- En la página Administración de servidores, localice y despliegue el sitio de destino. Hay un icono de Azure disponible para representar los sitios implementados en Azure.
-
Haga clic en Agregar recursos.

-
En la página Agregar recursos, haga clic en Agregar servidor y Agregar almacenamiento según sea necesario.

-
Para agregar servidores, haga clic en Agregar servidor y, a continuación, complete los siguientes pasos:

- Especifique el número de servidores que desea agregar.
- Haga clic en Proporcionar credenciales en la sección Dominio para unir los nuevos servidores al mismo dominio que los servidores existentes.
- Haga clic en Proporcionar credenciales en la sección Cuentas de administrador para proporcionar la contraseña de administrador de la base de datos establecida durante la creación del sitio. Además, debe establecer una contraseña para la cuenta de administrador en las máquinas de servidor que se van a agregar. Recomendamos usar la misma contraseña que la establecida durante la creación del sitio.
- Haga clic en Crear cliente para incorporar los nuevos servidores al servicio de Grabación de sesiones.
- Haga clic en Iniciar implementación.
-
Para agregar almacenamiento para guardar los archivos de grabación, haga clic en Agregar almacenamiento y, a continuación, complete los siguientes pasos según corresponda:
-
Si su sitio se creó con una cuenta de almacenamiento estándar, se le pedirá que especifique el número de recursos compartidos de archivos que desea agregar. Por ejemplo:

-
Si su sitio se creó con una cuenta de almacenamiento premium, puede especificar el número de recursos compartidos de archivos que desea agregar y personalizar la capacidad de cada recurso compartido de archivos. Por ejemplo:

-
Haga clic en Iniciar implementación.
Nota:
- El botón Iniciar implementación está disponible cuando se cumple alguna de las siguientes condiciones:
- Se ha especificado al menos un servidor y se han configurado el dominio y el cliente seguro.
- Se ha especificado al menos un recurso compartido de archivos.
- Mientras la implementación de recursos está en curso, el botón Configuración del equilibrador de carga está inhabilitado.
-
La implementación de los recursos agregados puede fallar y el servicio de Grabación de sesiones podría no poder eliminar estos recursos de su suscripción. En este caso, se le proporciona un mensaje similar al siguiente para que tome medidas:

- El botón Iniciar implementación está disponible cuando se cumple alguna de las siguientes condiciones:
-
-
Cambiar las direcciones IP que pueden acceder al equilibrador de carga
Para un sitio existente que haya implementado en Azure a través de una conexión de host, puede cambiar las direcciones IP que pueden acceder al equilibrador de carga. Para ello, siga estos pasos:
- Seleccione Configuración > Administración de servidores en el panel de navegación izquierdo del servicio de Grabación de sesiones.
- En la página Administración de servidores, localice y despliegue el sitio de destino. Hay un icono de Azure disponible para representar los sitios implementados en Azure.
-
Haga clic en el botón Configuración en la sección Equilibrador de carga.

-
En la página de configuración del Equilibrador de carga, introduzca las nuevas direcciones IP o rangos de sus VDA y sepárelas con una coma (,) en el campo Restringir el acceso del equilibrador de carga solo a las siguientes direcciones.

- Haga clic en Guardar.
Ver los costes reales de usar Azure
Para un sitio existente que haya implementado en Azure a través de una conexión de host, haga clic en el importe del coste para ver los detalles del coste. Por ejemplo:


Consejos para ver los costes reales:
- Cuando se desplaza sobre el gráfico de área del mes actual, aparece una línea de referencia para la fecha y los datos de ese día como una superposición.
- Los costes históricos de los diferentes recursos se representan mediante gráficos de líneas. Los gráficos de líneas están disponibles cuando hay al menos dos meses de datos. Al pasar el ratón por los gráficos de líneas, aparece una línea de referencia y un desglose de costes del mes como superposición. Para ver el gráfico de líneas de un recurso específico, pase el ratón por el recurso.
Agregar una conexión de host
Para agregar una conexión de host, siga estos pasos:
-
Haga clic en Agregar conexión en la página Crear sitio con la opción Crear e implementar un sitio a través de una conexión de host seleccionada. O bien, haga clic en Agregar conexión en la página Conexión de host.
Para acceder a la página Crear sitio, seleccione Configuración > Administración de servidores en el panel de navegación izquierdo del servicio de Grabación de sesiones y, a continuación, haga clic en Crear sitio.

Para acceder a la página Conexión de host, seleccione Configuración > Conexión de host en el panel de navegación izquierdo del servicio de Grabación de sesiones:

-
En la página Agregar conexión, asigne un nombre y una descripción (opcional) a la nueva conexión de host. Introduzca su ID de suscripción de Azure y la siguiente información obligatoria sobre el registro de su aplicación:
- ID de aplicación (cliente)
- ID de objeto de entidad de servicio (ID del objeto de entidad de servicio asociado a la aplicación)
- ID de directorio (inquilino)
- Secreto de cliente
- Fecha de caducidad del secreto

Para encontrar su ID de suscripción de Azure, haga lo siguiente:
- Inicie sesión en el portal de Azure.
- En la sección Servicios de Azure, seleccione Suscripciones.
-
Busque su suscripción en la lista y copie el ID de suscripción que se muestra en la segunda columna.

Para obtener la información necesaria sobre el registro de su aplicación, haga lo siguiente:
-
(Omita este paso si ya tiene una aplicación registrada). Registre una aplicación con su inquilino de Azure AD. Se debe registrar una aplicación para delegar las funciones de administración de identidades y accesos a Azure AD.
Hay dos métodos para registrar una aplicación.
Método 1:
-
Copie el siguiente script proporcionado por Citrix y asígnele el nombre, por ejemplo, AppRegistration.ps1:
<# .SYNOPSIS Copyright (c) Citrix Systems, Inc. All Rights Reserved. .DESCRIPTION Create Azure app registrations and give proper permissions for Citrix Session Recording service deployment .Parameter azureTenantID .Parameter azureSubscriptionID .Parameter appName .Parameter role #> [CmdletBinding()] Param( [Parameter(Mandatory = $true)] [String] $tenantId, [Parameter(Mandatory = $true)] [String] $subscriptionId, [Parameter(Mandatory = $true)] [String] $appName, [Parameter(Mandatory = $true)] [String] $role ) if ($role -ne "Citrix Session Recording service" -and $role -ne "Citrix Session Recording Deployment" -and $role -ne "Contributor") { throw [System.Exception] "Invalid role '$role', only support 'Citrix Session Recording service', 'Citrix Session Recording Deployment', and 'Contributor'." } try { Get-InstalledModule -Name "Az.Accounts" -ErrorAction Stop } catch { Install-Module -Name "Az.Accounts" -Scope CurrentUser -Repository PSGallery -SkipPublisherCheck -Force } try { Get-InstalledModule -Name "Az.Resources" -ErrorAction Stop } catch { Install-Module -Name "Az.Resources" -Scope CurrentUser -Repository PSGallery -SkipPublisherCheck -Force } Connect-AzAccount -TenantId $tenantId -Subscription $subscriptionId try { $azureAdApplication = Get-AzADApplication -DisplayName $appName if ($null -eq $azureAdApplication) { Write-Host "Create a new app registration for Citrix Session Recording" -ForegroundColor Green $azureAdApplication = New-AzADApplication -DisplayName $appName -AvailableToOtherTenants $false } else { Write-Host "App registration '$appName' already exists." -ForegroundColor Yellow } $azureAdApplicationServicePrincipal = Get-AzADServicePrincipal -DisplayName $appName if($null -eq $azureAdApplicationServicePrincipal) { $azureAdApplicationServicePrincipal = New-AzADServicePrincipal -AppId $azureAdApplication.AppId Write-Host "Create a service principal for app registration '$appName'" -ForegroundColor Green }else{ Write-Host "Service principal already exists for app registration '$appName'" -ForegroundColor Yellow } if ($role -eq "Citrix Session Recording service" -or $role -eq "Citrix Session Recording Deployment") { $rootPath = Get-Location $customRolePath = $(Join-Path -Path $rootPath -ChildPath "sessionrecording.json") | Resolve-Path $customRoleJson = Get-Content $customRolePath | ConvertFrom-Json $customRoleJson.AssignableScopes[0] = "/subscriptions/" + $subscriptionId $tmpCustomRolePath = Join-Path -Path $rootPath -ChildPath "sessionrecording_tmp.json" $roleDef = Get-AzRoleDefinition -Name $role if ($null -eq $roleDef) { try { $customRoleJson | ConvertTo-Json -depth 32 | Set-Content $tmpCustomRolePath Write-Host "Create a custom role '$role'" -ForegroundColor Green New-AzRoleDefinition -InputFile $tmpCustomRolePath } catch { Write-Host "Failed to create custom role, error: $_" -ForegroundColor Red throw $_.Exception } } else { try { $customRoleJson | Add-Member -MemberType NoteProperty -Name 'id' -Value $($roleDef.Id) $customRoleJson | ConvertTo-Json -depth 32 | Set-Content $tmpCustomRolePath Write-Host "Upadate the custom role '$role'" -ForegroundColor Green Set-AzRoleDefinition -InputFile $tmpCustomRolePath } catch { Write-Host "Failed to update custom role, error: $_" -ForegroundColor Red throw $_.Exception } } } $roleAssignment = Get-AzRoleAssignment -RoleDefinitionName $role -ObjectId $($azureAdApplicationServicePrincipal.Id) if ($null -eq $roleAssignment) { Write-Host "Assign role '$role' to app '$appName'" -ForegroundColor Green New-AzRoleAssignment -RoleDefinitionName $role -ApplicationId $azureAdApplication.AppId } else { Write-Host "Role '$role' already assigned to app '$appName'" -ForegroundColor Yellow } Write-Host "Tenant ID: $tenantId" -ForegroundColor Green Write-Host "Subscription ID: $subscriptionId" -ForegroundColor Green Write-Host "Application ID: $($azureAdApplication.AppId)" -ForegroundColor Green Write-Host "Service principal object ID: $($azureAdApplicationServicePrincipal.Id)" -ForegroundColor Green } catch { Write-Host "Failed to assign role assignment to this app, error: $_" -ForegroundColor Red Write-Host "Please make sure the current azure admin has permission to assign roles" -ForegroundColor Red } <!--NeedCopy--> -
Copie el siguiente archivo de rol personalizado y asígnele el nombre sessionrecording.json. Este archivo de rol personalizado ayuda a asignar los permisos mínimos para la aplicación que se va a registrar.
{ "name": "Citrix Session Recording service", "description": "This role has permissions which allow Citrix Session Recording service to deploy Session Recording resources using a host connection.", "assignableScopes": [ "/subscriptions/*" ], "actions": [ "Microsoft.Compute/availabilitySets/write", "Microsoft.Compute/virtualMachines/delete", "Microsoft.Compute/virtualMachines/extensions/read", "Microsoft.Compute/virtualMachines/extensions/write", "Microsoft.Compute/virtualMachines/read", "Microsoft.Compute/virtualMachines/runCommands/read", "Microsoft.Compute/virtualMachines/runCommands/write", "Microsoft.Compute/virtualMachines/write", "Microsoft.CostManagement/forecast/read", "Microsoft.CostManagement/query/read", "Microsoft.KeyVault/locations/deletedVaults/purge/action", "Microsoft.KeyVault/vaults/PrivateEndpointConnectionsApproval/action", "Microsoft.KeyVault/vaults/read", "Microsoft.KeyVault/vaults/secrets/read", "Microsoft.KeyVault/vaults/secrets/write", "Microsoft.KeyVault/vaults/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.ManagedIdentity/userAssignedIdentities/read", "Microsoft.ManagedIdentity/userAssignedIdentities/write", "Microsoft.Network/dnsForwardingRulesets/forwardingRules/read", "Microsoft.Network/dnsForwardingRulesets/forwardingRules/write", "Microsoft.Network/dnsForwardingRulesets/read", "Microsoft.Network/dnsForwardingRulesets/virtualNetworkLinks/read", "Microsoft.Network/dnsForwardingRulesets/virtualNetworkLinks/write", "Microsoft.Network/dnsForwardingRulesets/write", "Microsoft.Network/dnsResolvers/outboundEndpoints/join/action", "Microsoft.Network/dnsResolvers/outboundEndpoints/read", "Microsoft.Network/dnsResolvers/outboundEndpoints/write", "Microsoft.Network/dnsResolvers/read", "Microsoft.Network/dnsResolvers/write", "Microsoft.Network/loadBalancers/backendAddressPools/join/action", "Microsoft.Network/loadBalancers/read", "Microsoft.Network/loadBalancers/write", "Microsoft.Network/networkInterfaces/join/action", "Microsoft.Network/networkInterfaces/read", "Microsoft.Network/networkInterfaces/write", "Microsoft.Network/networkSecurityGroups/delete", "Microsoft.Network/networkSecurityGroups/join/action", "Microsoft.Network/networkSecurityGroups/read", "Microsoft.Network/networkSecurityGroups/securityRules/read", "Microsoft.Network/networkSecurityGroups/securityRules/write", "Microsoft.Network/networkSecurityGroups/write", "Microsoft.Network/privateDnsZones/join/action", "Microsoft.Network/privateDnsZones/read", "Microsoft.Network/privateDnsZones/virtualNetworkLinks/read", "Microsoft.Network/privateDnsZones/virtualNetworkLinks/write", "Microsoft.Network/privateDnsZones/write", "Microsoft.Network/privateEndpoints/privateDnsZoneGroups/read", "Microsoft.Network/privateEndpoints/privateDnsZoneGroups/write", "Microsoft.Network/privateEndpoints/read", "Microsoft.Network/privateEndpoints/write", "Microsoft.Network/publicIPAddresses/join/action", "Microsoft.Network/publicIPAddresses/read", "Microsoft.Network/publicIPAddresses/write", "Microsoft.Network/virtualNetworks/join/action", "Microsoft.Network/virtualNetworks/read", "Microsoft.Network/virtualNetworks/subnets/join/action", "Microsoft.Network/virtualNetworks/subnets/read", "Microsoft.Resources/deployments/operationstatuses/read", "Microsoft.Resources/deployments/read", "Microsoft.Resources/deployments/write", "Microsoft.Resources/subscriptions/resourceGroups/delete", "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Resources/subscriptions/resourceGroups/write", "Microsoft.Sql/servers/auditingSettings/write", "Microsoft.Sql/servers/databases/write", "Microsoft.Sql/servers/firewallRules/write", "Microsoft.Sql/servers/privateEndpointConnectionsApproval/action", "Microsoft.Sql/servers/read", "Microsoft.Sql/servers/write", "Microsoft.Storage/storageAccounts/PrivateEndpointConnectionsApproval/action", "Microsoft.Storage/storageAccounts/fileServices/shares/delete", "Microsoft.Storage/storageAccounts/fileServices/shares/read", "Microsoft.Storage/storageAccounts/fileServices/shares/write", "Microsoft.Storage/storageAccounts/listkeys/action", "Microsoft.Storage/storageAccounts/read", "Microsoft.Storage/storageAccounts/write" ], "NotActions": [], "DataActions": [], "NotDataActions": [] } <!--NeedCopy--> - Coloque AppRegistration.ps1 y sessionrecording.json en la misma carpeta.
- Ejecute cualquiera de los siguientes comandos según sea necesario.
Para crear una aplicación y asignarle los permisos mínimos con el archivo de rol personalizado anterior (sessionrecording.json), ejecute:
``` .\AppRegistration.ps1 -tenantId <tenant ID> -subscriptionId <subscription ID> -appName <application name> -role "Citrix Session Recording service" <!--NeedCopy--> ``` To create an application and assign it the Azure built-in **Contributor** role, run: ``` .\AppRegistration.ps1 -tenantId <tenant ID> -subscriptionId <subscription ID> -appName <application name> -role "Contributor" <!--NeedCopy--> ```Método 2:
Vaya al portal de Azure y registre una aplicación usted mismo. Conceda los permisos adecuados a la aplicación. Para conocer los permisos mínimos necesarios, consulte el archivo sessionrecording.json en el Método 1.
-
-
Haga clic en el nombre para mostrar de su aplicación.

-
En la página de información general, busque el ID de la aplicación (cliente) y el ID del directorio (inquilino). Haga clic en el vínculo junto a Aplicación administrada en el directorio local para encontrar el ID del objeto de entidad de servicio asociado a la aplicación. Haga clic en el vínculo junto a Credenciales de cliente para encontrar el ID del secreto de cliente y su fecha de caducidad.

Por ejemplo, el ID del objeto de entidad de servicio asociado a la aplicación:

Por ejemplo, el ID del secreto de cliente y su fecha de caducidad:

-
Haga clic en Guardar para comprobar si la conexión de host que especifica está disponible.
Si la conexión de host que especifica está disponible, se le redirigirá a la página de Conexión de host y se le indicará que la conexión de host se ha agregado correctamente.
El servicio de Grabación de sesiones le recuerda los secretos de cliente caducados y a punto de caducar mediante iconos de error y advertencia, respectivamente. Puede hacer clic en la conexión de host correspondiente y hacer clic en Cambiar secreto en la página Detalles de conexión para actualizar el secreto de cliente y su fecha de caducidad.

Crear e implementar un sitio mediante una plantilla ARM
Puede crear una plantilla de Azure Resource Manager (plantilla ARM) para implementar recursos de Grabación de sesiones en Azure. Los siguientes son los pasos principales para lograr este objetivo:
- Cree una plantilla ARM en el servicio de Grabación de sesiones. La plantilla ARM es un archivo JSON (JavaScript Object Notation) que contiene cómo y qué recursos desea implementar.
- Descargue y descomprima la plantilla ARM. Ejecute el script de implementación en la carpeta de la plantilla descomprimida para empezar a implementar los recursos especificados en la plantilla en Azure.
- Compruebe el progreso de la implementación en Azure. Una vez completada la implementación, configure la Grabación de sesiones para que esté operativa. Para configurar la Grabación de sesiones, debe especificar la versión del servidor de Grabación de sesiones que desea instalar y cargar el archivo resourceInfo.json.
Los pasos específicos son los siguientes:
-
Seleccione Configuración > Administración de servidores en la navegación izquierda del servicio de Grabación de sesiones.

-
En la página Administración de servidores, haga clic en Crear sitio. Aparecerá la página Crear sitio.

-
Seleccione Crear e implementar un sitio mediante una plantilla ARM. Los pasos principales se enumeran en la navegación izquierda.

-
Introduzca un nombre y una descripción para el sitio y, a continuación, haga clic en Siguiente.
-
(Opcional) Para obtener recomendaciones sobre las configuraciones de VM y almacenamiento, proporcione información sobre sus necesidades de grabación.
Puede omitir este paso haciendo clic en Estoy bien, omitir este paso o haciendo clic en Siguiente sin seleccionar nada.

Cuando selecciona una opción de la lista desplegable, se presenta una recomendación según su selección. Hay un botón de restablecimiento disponible junto a la recomendación. Le permite borrar sus selecciones y la recomendación correspondiente en esa sección.
-
Vaya al portal de Azure y cree una nueva red virtual en la región seleccionada y configure el emparejamiento de red virtual entre la nueva red virtual y aquella a la que están conectados sus VDA. Luego, agregue una subred en la nueva red virtual. Busque e introduzca el ID de subred a continuación.

Para mantener las conexiones entre los recursos dentro de la red privada, marque la casilla Crear puntos de conexión privados para almacenamiento y bases de datos.
Después de marcar la casilla Crear puntos de conexión privados para almacenamiento y bases de datos, decida si introducir otro ID de subred teniendo en cuenta lo siguiente:
- Si no tiene previsto unir sus servidores de Session Recording a un dominio de Active Directory, la subred no es necesaria y, por lo tanto, deje el campo ID de subred vacío.
- Si deja el campo ID de subred vacío, está uniendo sus servidores de Session Recording a un dominio de Azure Active Directory.

-
(Omita este paso si ya tiene una aplicación registrada). Registre una aplicación con su inquilino de Azure AD. Se debe registrar una aplicación para delegar las funciones de administración de identidades y accesos a Azure AD.
Hay dos métodos para registrar una aplicación.
Método 1:
-
Copie el siguiente script proporcionado por Citrix y asígnele el nombre, por ejemplo, AppRegistration.ps1:
<# .SYNOPSIS Copyright (c) Citrix Systems, Inc. All Rights Reserved. .DESCRIPTION Create Azure app registrations and give proper permissions for Citrix Session Recording service deployment .Parameter azureTenantID .Parameter azureSubscriptionID .Parameter appName .Parameter role #> [CmdletBinding()] Param( [Parameter(Mandatory = $true)] [String] $tenantId, [Parameter(Mandatory = $true)] [String] $subscriptionId, [Parameter(Mandatory = $true)] [String] $appName, [Parameter(Mandatory = $true)] [String] $role ) if ($role -ne "Citrix Session Recording service" -and $role -ne "Citrix Session Recording Deployment" -and $role -ne "Contributor") { throw [System.Exception] "Invalid role '$role', only support 'Citrix Session Recording service', 'Citrix Session Recording Deployment', and 'Contributor'." } try { Get-InstalledModule -Name "Az.Accounts" -ErrorAction Stop } catch { Install-Module -Name "Az.Accounts" -Scope CurrentUser -Repository PSGallery -SkipPublisherCheck -Force } try { Get-InstalledModule -Name "Az.Resources" -ErrorAction Stop } catch { Install-Module -Name "Az.Resources" -Scope CurrentUser -Repository PSGallery -SkipPublisherCheck -Force } Connect-AzAccount -TenantId $tenantId -Subscription $subscriptionId try { $azureAdApplication = Get-AzADApplication -DisplayName $appName if ($null -eq $azureAdApplication) { Write-Host "Create a new app registration for Citrix Session Recording" -ForegroundColor Green $azureAdApplication = New-AzADApplication -DisplayName $appName -AvailableToOtherTenants $false } else { Write-Host "App registration '$appName' already exists." -ForegroundColor Yellow } $azureAdApplicationServicePrincipal = Get-AzADServicePrincipal -DisplayName $appName if($null -eq $azureAdApplicationServicePrincipal) { $azureAdApplicationServicePrincipal = New-AzADServicePrincipal -AppId $azureAdApplication.AppId Write-Host "Create a service principal for app registration '$appName'" -ForegroundColor Green }else{ Write-Host "Service principal already exists for app registration '$appName'" -ForegroundColor Yellow } if ($role -eq "Citrix Session Recording service" -or $role -eq "Citrix Session Recording Deployment") { $rootPath = Get-Location $customRolePath = $(Join-Path -Path $rootPath -ChildPath "sessionrecordingdeployment.json") | Resolve-Path $customRoleJson = Get-Content $customRolePath | ConvertFrom-Json $customRoleJson.AssignableScopes[0] = "/subscriptions/" + $subscriptionId $tmpCustomRolePath = Join-Path -Path $rootPath -ChildPath "sessionrecording_tmp.json" $roleDef = Get-AzRoleDefinition -Name $role if ($null -eq $roleDef) { try { $customRoleJson | ConvertTo-Json -depth 32 | Set-Content $tmpCustomRolePath Write-Host "Create a custom role '$role'" -ForegroundColor Green New-AzRoleDefinition -InputFile $tmpCustomRolePath } catch { Write-Host "Failed to create custom role, error: $_" -ForegroundColor Red throw $_.Exception } } else { try { $customRoleJson | Add-Member -MemberType NoteProperty -Name 'id' -Value $($roleDef.Id) $customRoleJson | ConvertTo-Json -depth 32 | Set-Content $tmpCustomRolePath Write-Host "Upadate the custom role '$role'" -ForegroundColor Green Set-AzRoleDefinition -InputFile $tmpCustomRolePath } catch { Write-Host "Failed to update custom role, error: $_" -ForegroundColor Red throw $_.Exception } } } $roleAssignment = Get-AzRoleAssignment -RoleDefinitionName $role -ObjectId $($azureAdApplicationServicePrincipal.Id) if ($null -eq $roleAssignment) { Write-Host "Assign role '$role' to app '$appName'" -ForegroundColor Green New-AzRoleAssignment -RoleDefinitionName $role -ApplicationId $azureAdApplication.AppId } else { Write-Host "Role '$role' already assigned to app '$appName'" -ForegroundColor Yellow } Write-Host "Tenant ID: $tenantId" -ForegroundColor Green Write-Host "Subscription ID: $subscriptionId" -ForegroundColor Green Write-Host "Application ID: $($azureAdApplication.AppId)" -ForegroundColor Green Write-Host "Service principal object ID: $($azureAdApplicationServicePrincipal.Id)" -ForegroundColor Green } catch { Write-Host "Failed to assign role assignment to this app, error: $_" -ForegroundColor Red Write-Host "Please make sure the current azure admin has permission to assign roles" -ForegroundColor Red } <!--NeedCopy--> -
Copie el siguiente archivo de rol personalizado y asígnele el nombre sessionrecordingdeployment.json. Este archivo de rol personalizado ayuda a asignar los permisos mínimos para la aplicación que se va a registrar.
{ "name": "Citrix Session Recording Deployment", "description": "This role has permissions which allow users to deploy Session Recording resources using an Azure Resource Manager template (ARM template). ", "assignableScopes": [ "/subscriptions/*" ], "actions": [ "Microsoft.Compute/availabilitySets/write", "Microsoft.Compute/virtualMachines/extensions/read", "Microsoft.Compute/virtualMachines/extensions/write", "Microsoft.Compute/virtualMachines/read", "Microsoft.Compute/virtualMachines/runCommands/read", "Microsoft.Compute/virtualMachines/runCommands/write", "Microsoft.Compute/virtualMachines/write", "Microsoft.ContainerInstance/containerGroups/read", "Microsoft.ContainerInstance/containerGroups/write", "Microsoft.KeyVault/vaults/PrivateEndpointConnectionsApproval/action", "Microsoft.KeyVault/vaults/read", "Microsoft.KeyVault/vaults/secrets/read", "Microsoft.KeyVault/vaults/secrets/write", "Microsoft.KeyVault/vaults/write", "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action", "Microsoft.ManagedIdentity/userAssignedIdentities/read", "Microsoft.ManagedIdentity/userAssignedIdentities/write", "Microsoft.Network/dnsForwardingRulesets/forwardingRules/read", "Microsoft.Network/dnsForwardingRulesets/forwardingRules/write", "Microsoft.Network/dnsForwardingRulesets/read", "Microsoft.Network/dnsForwardingRulesets/virtualNetworkLinks/read", "Microsoft.Network/dnsForwardingRulesets/virtualNetworkLinks/write", "Microsoft.Network/dnsForwardingRulesets/write", "Microsoft.Network/dnsResolvers/outboundEndpoints/join/action", "Microsoft.Network/dnsResolvers/outboundEndpoints/read", "Microsoft.Network/dnsResolvers/outboundEndpoints/write", "Microsoft.Network/dnsResolvers/read", "Microsoft.Network/dnsResolvers/write", "Microsoft.Network/loadBalancers/backendAddressPools/join/action", "Microsoft.Network/loadBalancers/write", "Microsoft.Network/networkInterfaces/join/action", "Microsoft.Network/networkInterfaces/read", "Microsoft.Network/networkInterfaces/write", "Microsoft.Network/networkSecurityGroups/join/action", "Microsoft.Network/networkSecurityGroups/read", "Microsoft.Network/networkSecurityGroups/securityRules/read", "Microsoft.Network/networkSecurityGroups/securityRules/write", "Microsoft.Network/networkSecurityGroups/write", "Microsoft.Network/privateDnsZones/join/action", "Microsoft.Network/privateDnsZones/read", "Microsoft.Network/privateDnsZones/virtualNetworkLinks/read", "Microsoft.Network/privateDnsZones/virtualNetworkLinks/write", "Microsoft.Network/privateDnsZones/write", "Microsoft.Network/privateEndpoints/privateDnsZoneGroups/read", "Microsoft.Network/privateEndpoints/privateDnsZoneGroups/write", "Microsoft.Network/privateEndpoints/read", "Microsoft.Network/privateEndpoints/write", "Microsoft.Network/publicIPAddresses/join/action", "Microsoft.Network/publicIPAddresses/read", "Microsoft.Network/publicIPAddresses/write", "Microsoft.Network/virtualNetworks/join/action", "Microsoft.Network/virtualNetworks/read", "Microsoft.Network/virtualNetworks/subnets/join/action", "Microsoft.Network/virtualNetworks/subnets/read", "Microsoft.Resources/deploymentScripts/read", "Microsoft.Resources/deploymentScripts/write", "Microsoft.Resources/deployments/operationstatuses/read", "Microsoft.Resources/deployments/read", "Microsoft.Resources/deployments/validate/action", "Microsoft.Resources/deployments/write", "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Resources/subscriptions/resourceGroups/write", "Microsoft.Resources/templateSpecs/read", "Microsoft.Resources/templateSpecs/versions/read", "Microsoft.Resources/templateSpecs/versions/write", "Microsoft.Resources/templateSpecs/write", "Microsoft.Sql/servers/auditingSettings/write", "Microsoft.Sql/servers/databases/write", "Microsoft.Sql/servers/firewallRules/write", "Microsoft.Sql/servers/privateEndpointConnectionsApproval/action", "Microsoft.Sql/servers/read", "Microsoft.Sql/servers/write", "Microsoft.Storage/storageAccounts/PrivateEndpointConnectionsApproval/action", "Microsoft.Storage/storageAccounts/blobServices/containers/read", "Microsoft.Storage/storageAccounts/blobServices/containers/write", "Microsoft.Storage/storageAccounts/fileServices/shares/write", "Microsoft.Storage/storageAccounts/listkeys/action", "Microsoft.Storage/storageAccounts/read", "Microsoft.Storage/storageAccounts/write" ], "notActions": [], "dataActions": [], "notDataActions": [] } <!--NeedCopy--> - Coloque AppRegistration.ps1 y sessionrecordingdeployment.json en la misma carpeta.
-
Ejecute cualquiera de los siguientes comandos según sea necesario.
Para crear una aplicación y asignarle los permisos mínimos con el archivo de rol personalizado anterior (sessionrecordingdeployment.json), ejecute:
.\AppRegistration.ps1 -tenantId <tenant ID> -subscriptionId <subscription ID> -appName <application name> -role "Citrix Session Recording Deployment" <!--NeedCopy-->Para crear una aplicación y asignarle el rol integrado de Azure Colaborador, ejecute:
.\AppRegistration.ps1 -tenantId <tenant ID> -subscriptionId <subscription ID> -appName <application name> -role "Contributor" <!--NeedCopy-->
Método 2:
Vaya al portal de Azure y registre una aplicación usted mismo. Conceda los permisos adecuados a la aplicación. Para conocer los permisos mínimos necesarios, consulte el archivo sessionrecordingdeployment.json en el Método 1.
-
-
Especifique las configuraciones para los servidores de Grabación de sesiones que se instalarán más adelante.

Nota:
- El campo Número de máquinas virtuales se rellena previamente con el número recomendado, si lo hay. Cambie el número según sea necesario.
- Los costes estimados se basan en precios estándar y no tienen en cuenta los descuentos. Puede esperar costes reales inferiores a los estimados.
-
Una los servidores de Grabación de sesiones al mismo dominio que sus VDA y especifique un certificado para los servidores de Grabación de sesiones.
-
Si sus VDA se conectan a un dominio de Active Directory, seleccione la casilla de verificación Unir servidores a un dominio de Active Directory e introduzca la información relevante.
-
Si sus VDA se conectan a un dominio de Azure Active Directory (Azure AD), desactive la casilla de verificación Unir servidores a un dominio de Active Directory. Una vez que haya terminado de crear el sitio actual, asegúrese de unir manualmente los servidores de Grabación de sesiones al mismo dominio de Azure AD. Tenga en cuenta que la implementación pura de Azure AD solo está disponible para Grabación de sesiones 2402 y versiones posteriores.


-
-
Configure una cuenta de almacenamiento de Azure y recursos compartidos de archivos para almacenar sus archivos de grabación. Para obtener información sobre precios, consulte Precios de Azure Files.

-
Cree dos bases de datos SQL en Azure. Una se utiliza como base de datos de grabación de sesiones (denominada sessionrecording) y la otra como base de datos de registro del administrador (denominada sessionrecordinglogging).

-
Cree un equilibrador de carga para distribuir la carga de trabajo entre los servidores de grabación de sesiones. Introduzca las direcciones IP o los rangos de sus VDA y sepárelos con una coma (,) en el campo Restringir el acceso del equilibrador de carga solo a las siguientes direcciones. Para obtener información sobre precios, consulte Precios de Load Balancer.

-
(Opcional) Aplique etiquetas a los recursos de Azure que se van a crear.

-
Cree un cliente seguro para incorporar los servidores de grabación de sesiones al servicio de grabación de sesiones.
Haga clic en Crear cliente para que Citrix cree un cliente seguro en su nombre. Alternativamente, puede crear un cliente seguro a través de la pestaña Administración de identidades y accesos > Acceso a la API de la consola de Citrix Cloud y luego rellenar la información a continuación.

-
Vea el resumen de los recursos que se van a crear y haga clic en el icono del lápiz para editar la configuración si es necesario. Después, haga clic en Descargar plantilla. A continuación, se descarga una plantilla AEM que contiene cómo y qué recursos desea implementar en la carpeta Descargas de su máquina. También puede ver el sitio recién creado en la página Administración de servidores.

-
Vaya a la carpeta Descargas y descomprima la plantilla ARM. Abra la carpeta de archivos descomprimidos, escriba PowerShell en la barra de direcciones y pulse Intro. Espere hasta que se abra una ventana de PowerShell en esa carpeta.
-
Ejecute el script de JavaScript Object Notation (JSON) denominado DeploySessionRecording.ps1. Proporcione valores para los parámetros solicitados. Los parámetros reales varían en función de la configuración que especificó al crear la plantilla. Por ejemplo:


-
Vaya al portal de Azure, localice el grupo de recursos que contiene su implementación y, a continuación, compruebe el progreso de la implementación. Espere hasta que toda la implementación muestre Correcto.

-
Vuelva a la página Administración de servidores del servicio Grabación de sesiones. Busque el sitio recién creado y verá un botón Configurar disponible. Haga clic en Configurar para configurar Grabación de sesiones y ponerlo en marcha.


Para configurar Grabación de sesiones, debe especificar la versión del servidor de Grabación de sesiones que desea instalar y cargar el archivo resourceInfo.json.


Introduzca las credenciales de sus bases de datos.

Haga clic en Iniciar inicio. A continuación, puede comprobar el progreso de la configuración en la página Administración de servidores.


Puede ver el progreso de la instalación de servidores individuales en la lista de servidores.

Cuando todos los servidores de Grabación de sesiones aparezcan disponibles en la lista, la creación del sitio estará completa y los recursos especificados se implementarán en Azure.
