Conexión con Microsoft Azure
Nota: No
En julio de 2023, Microsoft cambió 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 hace referencia a Microsoft Entra ID.
Crear y administrar conexiones y recursos describe los asistentes que crean una conexión. La siguiente información incluye detalles específicos de los entornos de nube de Azure Resource Manager.
Nota: No
Antes de crear una conexión con Microsoft Azure, debe terminar de configurar su cuenta de Azure como ubicación de recursos. Consulte Entornos de virtualización de Microsoft Azure Resource Manager.
Crear conexiones y entidades principales de servicio
Antes de crear conexiones, debe configurar entidades principales de servicio que las conexiones utilizan para acceder a recursos de Azure. Puede crear una conexión de dos maneras:
- Crear una entidad principal de servicio y una conexión juntos mediante Studio
- Crear una conexión mediante una entidad principal de servicio creada previamente
En esta sección se muestra cómo completar estas tareas:
- Crear una entidad principal de servicio y una conexión con Studio
- Crear una entidad principal de servicio mediante PowerShell
- Obtener el secreto de la aplicación en Azure
- Crear una conexión mediante una entidad principal de servicio existente
Consideraciones
Antes de empezar, tenga en cuenta lo siguiente:
- Citrix recomienda usar la entidad principal de servicio con un rol Colaborador. Sin embargo, consulte la sección Permisos mínimos para obtener la lista de permisos mínimos correspondientes.
- Al crear la primera conexión, Azure pide conceder a ese rol los permisos necesarios. Para conexiones futuras, aún deberá autenticarse, pero Azure recuerda su consentimiento anterior y no vuelve a mostrar la solicitud.
- Tras autenticarse en Azure por primera vez, se invita a una aplicación multiarrendatario propiedad de Citrix (ID:
08b70dc3-76c5-4611-ba7d-3312ba36cb2b
) a su instancia de Azure Active Directory en nombre de la cuenta autenticada. - Las cuentas usadas para la autenticación deben tener permisos para asignar roles en la suscripción mediante Azure RBAC. Por ejemplo, propietario, administrador de control de acceso por roles (RBAC) o administrador de acceso de usuarios de la suscripción.
- La cuenta utilizada para la autenticación debe ser un miembro del directorio de suscripción. Hay dos tipos de cuentas que tener en cuenta: “cuenta profesional o educativa” y “cuenta personal de Microsoft” Para más información, consulte CTX219211.
-
Puede usar una cuenta existente de Microsoft si la agrega como miembro del directorio de suscripción. Sin embargo, puede haber complicaciones si el usuario antes tenía acceso como invitado a uno de los recursos del directorio. En ese caso, puede tener una entrada de marcador de posición en el directorio que no le concederá los permisos necesarios, y se producirá un error.
Para rectificarlo, quite los recursos del directorio y agréguelos de nuevo explícitamente. Sin embargo, use esta opción con cuidado, ya que tiene efectos no deseados para otros recursos a los que pueda acceder esta cuenta.
- Hay un problema conocido que consiste en que algunas cuentas se detectan como invitados del directorio cuando en realidad son miembros. Por regla general, configuraciones como esta se producen con las cuentas de directorio antiguas establecidas. Solución temporal: Agregue una cuenta al directorio, con el valor correcto de membresía.
- Los grupos de recursos son simplemente contenedores de recursos, y pueden contener recursos de regiones distintas a su propia región. Eso puede ser confuso si cree que los recursos que se muestran en la región de un grupo de recursos están disponibles.
- Su red y subred deben ser lo suficientemente grandes como para alojar la cantidad de máquinas que necesita. Eso requiere previsión, pero Microsoft le ayuda a especificar los valores correctos, con orientación sobre la capacidad del espacio de direcciones.
Crear una entidad principal de servicio y una conexión con Studio
Importante:
Esta función aún no está disponible para las suscripciones de Azure China.
Con Studio, puede crear una entidad principal de servicio y una conexión en un único flujo de trabajo. Las entidades principales de servicio permiten a las conexiones acceder a recursos de Azure. Al autenticarse en Azure para crear una entidad principal de servicio, se registra una aplicación en Azure. Se crea una clave secreta (denominada secreto de cliente o secreto de aplicación) para la aplicación registrada. La aplicación registrada (una conexión en este caso) usa el secreto de cliente para autenticarse en Azure AD.
Antes de empezar, asegúrese de cumplir estos requisitos previos:
- Tiene una cuenta de usuario en el arrendatario de su suscripción de Azure Active Directory.
- Las cuentas usadas para la autenticación deben tener permisos para asignar roles en la suscripción mediante Azure RBAC. Por ejemplo, propietario, administrador de control de acceso por roles (RBAC) o administrador de acceso de usuarios de la suscripción.
- Tiene permisos de administrador global, administrador de aplicaciones o desarrollador de aplicaciones para la autenticación. Los permisos se pueden revocar después de crear una conexión de host. Para obtener más información sobre los roles, consulte Roles integrados de Azure AD.
Utilice el asistente Agregar conexiones y recursos para crear una entidad principal de servicio y una conexión juntos:
-
En la página Conexión, seleccione Crear una conexión, el tipo de conexión Microsoft Azure y su entorno de Azure.
-
Seleccione las herramientas a utilizar para crear las máquinas virtuales y, a continuación, seleccione Siguiente.
-
En la página Detalles de la conexión, cree una entidad principal de servicio y defina el nombre de la conexión de la siguiente manera:
- Introduzca el ID de suscripción de Azure y un nombre para la conexión. Después de introducir el ID de suscripción, se habilita el botón Crear.
Nota: No
El nombre de la conexión puede contener de 1 a 64 caracteres y no puede contener solo espacios en blanco ni los caracteres
\/;:#.*?=<>|[]{}"'()'
.- Seleccione Crear e introduzca el nombre de usuario y la contraseña de la cuenta de Azure Active Directory.
- Seleccione Iniciar sesión.
- Seleccione Aceptar para conceder a Citrix DaaS los permisos mostrados. Azure crea una entidad principal de servicio que permite a Citrix DaaS administrar recursos de Azure en nombre del usuario especificado.
> **Nota: No** > > Citrix DaaS requiere los siguientes permisos para crear una nueva entidad principal de servicio: > > - **Acceso a Azure Service Management como usted** > - **Lectura y escritura de aplicaciones** > - **Iniciar sesión y leer su perfil** > - **Mantener el acceso a los datos a los que le ha dado acceso**
-
Tras seleccionar Aceptar, volverá a la página Detalles de la conexión.
Nota: No
Después de autenticarse correctamente en Azure, desaparecen los botones Crear y Usar existente. Aparece el texto Conexión correcta, con una marca de verificación verde que indica la conexión correcta a su suscripción de Azure.
-
Para redirigir solicitudes de API a Azure a través de Citrix Cloud Connectors, marque la casilla Redirigir tráfico a través de Citrix Cloud Connectors.
Como alternativa, puede habilitar esta función mediante PowerShell. Para obtener más información, consulte Crear un entorno seguro para el tráfico administrado de Azure.
Nota: No
Esta opción solo está disponible cuando hay Citrix Cloud Connectors activos en la implementación. Actualmente, esta función no es compatible con Connector Appliances.
-
Seleccione Next.
Nota: No
No puede pasar a la página siguiente hasta que se haya autenticado correctamente en Azure y haya dado su consentimiento para otorgar los permisos necesarios.
-
Configure los recursos para la conexión de la siguiente manera:
- En la página Región, seleccione una región.
- En la página Red, haga lo siguiente:
- Escriba un nombre de recurso de 1 a 64 caracteres para identificar más fácilmente la combinación de región y red. Un nombre de recurso no puede contener solo espacios en blanco ni los caracteres
\/;:#.*?=<>|[]{}"'()'
. - Seleccione un par de red virtual y grupo de recursos (si tiene más de una red virtual con el mismo nombre, emparejar un nombre de red con un grupo de recursos ofrece combinaciones únicas). Si en la página anterior seleccionó una región que no tiene redes virtuales, vuelva a esa página y seleccione una región que las tenga.
- Escriba un nombre de recurso de 1 a 64 caracteres para identificar más fácilmente la combinación de región y red. Un nombre de recurso no puede contener solo espacios en blanco ni los caracteres
-
En la página Resumen, verá un resumen de los parámetros. Seleccione Finalizar para completar la configuración.
Ver el ID de la aplicación
Después de crear una conexión, puede ver el ID de aplicación que la conexión usa para acceder a los recursos de Azure.
En la lista Agregar conexión y recursos, seleccione la conexión para ver los detalles. La ficha Detalles muestra el ID de la aplicación.
Crear una entidad principal de servicio mediante PowerShell
Para crear una entidad principal de servicio con PowerShell, conéctese a su suscripción de Azure Resource Manager y use los siguientes cmdlets de PowerShell que se proporcionan en las siguientes secciones.
Asegúrese de tener preparados estos elementos:
-
SubscriptionId:
SubscriptionID
de Azure Resource Manager para la suscripción en la que quiere aprovisionar VDA. - ActiveDirectoryID: ID de arrendatario de la aplicación que registró en Azure AD.
- ApplicationName: Nombre de la aplicación que se va a crear en Azure AD.
Estos son los pasos detallados:
-
Conéctese a su suscripción de Azure Resource Manager.
Connect-AzAccount
-
Seleccione la suscripción de Azure Resource Manager donde crear la entidad principal de servicio.
Get-AzSubscription -SubscriptionId $subscriptionId | Select-AzSubscription
-
Cree la aplicación en su arrendatario de AD.
$AzureADApplication = New-AzADApplication -DisplayName $ApplicationName
-
Cree una entidad principal de servicio.
New-AzADServicePrincipal -ApplicationId $AzureADApplication.AppId
-
Asigne un rol a la entidad principal de servicio.
New-AzRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $AzureADApplication.AppId –scope /subscriptions/$SubscriptionId
-
En la ventana de resultados de la consola de PowerShell, anote el ID de aplicación (ApplicationId). Debe proporcionar ese ID cuando cree la conexión de host.
Obtener el secreto de la aplicación en Azure
Para crear una conexión mediante una entidad principal de servicio existente, primero debe obtener el ID de la aplicación y el secreto de la entidad principal del servicio en Azure Portal.
Estos son los pasos detallados:
- Obtenga el ID de aplicación en Studio o mediante PowerShell.
- Inicie sesión en Azure Portal.
- En Azure, seleccione Azure Active Directory.
- En Registros de aplicaciones, en Azure AD, seleccione su aplicación.
- Vaya a Certificados y secretos.
- Haga clic en Secretos del cliente.
Crear una conexión mediante una entidad principal de servicio existente
Si ya tiene una entidad principal de servicio, puede usarla para crear una conexión mediante Studio.
Asegúrese de tener preparados estos elementos:
- SubscriptionId
- ActiveDirectoryID (ID de arrendatario).
- ID de aplicación
-
Secreto de la aplicación
Para obtener más información, consulte Obtener el secreto de la aplicación.
- Fecha de caducidad del secreto
Estos son los pasos detallados:
En el asistente Agregar conexión y recursos:
-
En la página Conexión, seleccione Crear una conexión, el tipo de conexión Microsoft Azure y su entorno de Azure.
-
Seleccione las herramientas a utilizar para crear las máquinas virtuales y, a continuación, seleccione Siguiente.
-
En la página Detalles de conexión, escriba su ID de suscripción de Azure y un nombre para la conexión.
Nota: No
El nombre de la conexión puede contener de 1 a 64 caracteres y no puede contener solo espacios en blanco ni los caracteres
\/;:#.*?=<>|[]{}"'()'
. -
Seleccione Usar existente. En la ventana Detalles de entidad principal de servicio existente, introduzca estos parámetros para la entidad principal de servicio existente. Después de introducir la información, se habilitará el botón Guardar. Seleccione Guardar. No puede avanzar más allá de esta página hasta que haya proporcionado detalles válidos.
- ID de suscripción. Introduzca el ID de su suscripción de Azure. Para obtener su ID de suscripción, inicie sesión en Azure Portal y vaya a Suscripciones > Información general.
- ID de Active Directory (ID de arrendatario). Escriba el ID del directorio (arrendatario) de la aplicación con la que se registró en Azure AD.
- ID de la aplicación. Escriba el ID de la aplicación (cliente) con la que se registró en Azure AD.
- Secreto de la aplicación. Introduzca una clave secreta (secreto de cliente). La aplicación registrada utiliza la clave para autenticarse en Azure AD. Le recomendamos cambiar las claves con frecuencia por motivos de seguridad. Asegúrese de guardar la clave porque no podrá recuperarla más tarde.
-
Fecha de caducidad del secreto. Introduzca la fecha en la cual caduca el secreto de la aplicación. Recibirá una alerta en la consola 14 días antes de que caduque la clave secreta. Sin embargo, si la clave secreta caduca, recibirá errores.
Nota: No
Por motivos de seguridad, el período de caducidad no puede ser superior a dos años a partir de ahora.
- URL de autenticación. Este campo se rellena automáticamente y no se puede modificar.
- URL de administración. Este campo se rellena automáticamente y no se puede modificar.
- Sufijo de almacenamiento. Este campo se rellena automáticamente y no se puede modificar.
- Dispositivo de punto final de almacenamiento de blobs de Azure para cargar o descargar discos o instantáneas. Este campo se rellena automáticamente y no se puede modificar.
- Servicio Key Vault. Este campo se rellena automáticamente y no se puede modificar.
-
Sufijo de bus de servicio. Este campo se rellena automáticamente y no se puede modificar.
Se requiere acceso a los siguientes dispositivos de punto final para crear un catálogo de MCS en Azure. El acceso a estos dispositivos de punto final optimiza la conectividad entre la red local y Azure Portal y sus servicios.
- URL de autenticación:
https://login.microsoftonline.com
- URL de administración:
https://management.azure.com
. Esta es una URL de solicitud para las API del proveedor de Azure Resource Manager. El dispositivo de punto final para la administración depende del entorno. Por ejemplo, para Azure Global, eshttps://management.azure.com
, y para Azure US Government, eshttps://management.usgovcloudapi.net
. - Sufijo de almacenamiento:
https://*.core.windows.net
. Este (*) es un carácter comodín para el sufijo de almacenamiento. Por ejemplo,https://demo.table.core.windows.net
. - Dispositivo de punto final de almacenamiento de blobs de Azure para cargar o descargar discos o instantáneas:
https://*.storage.azure.net
. Este (*) es un carácter comodín para las operaciones de importación y exportación de blob Storage. Por ejemplo,https://md-impexp-xxxxx.z[00-50].blob.storage.azure.net
. - Servicio Key Vault:
https://*.vault.azure.net
. Este (*) es un carácter comodín para el nombre de la caja fuerte de llaves (Key Vault). Por ejemplo,https://<your-key-vault-name>.vault.azure.net
. - Sufijo del bus de servicio:
https://*.servicebus.windows.net
. Este (*) es un carácter comodín para los espacios de nombres creados en la nube global de Azure. Por ejemplo,https://{serviceNamespace}.servicebus.windows.net/{path}
.
- URL de autenticación:
-
Tras seleccionar Guardar, volverá a la página Detalles de conexión. Seleccione Siguiente para pasar a la página siguiente.
-
Configure los recursos para la conexión de la siguiente manera:
- En la página Región, seleccione una región.
- En la página Red, haga lo siguiente:
- Escriba un nombre de recurso de 1 a 64 caracteres para identificar más fácilmente la combinación de región y red. Un nombre de recurso no puede contener solo espacios en blanco ni los caracteres
\/;:#.*?=<>|[]{}"'()'
. - Seleccione un par de red virtual y grupo de recursos (si tiene más de una red virtual con el mismo nombre, emparejar un nombre de red con un grupo de recursos ofrece combinaciones únicas). Si en la página anterior seleccionó una región que no tiene redes virtuales, vuelva a esa página y seleccione una región que las tenga.
- Escriba un nombre de recurso de 1 a 64 caracteres para identificar más fácilmente la combinación de región y red. Un nombre de recurso no puede contener solo espacios en blanco ni los caracteres
-
En la página Resumen, verá un resumen de los parámetros. Seleccione Finalizar para completar la configuración.
Crear una conexión de host con Azure Managed Identity
Puede crear una conexión de host a Microsoft Azure Resource Manager mediante Azure Managed Identity. Las identidades administradas en Azure ofrecen una forma segura y escalable de acceder a los servicios de Azure sin necesidad de administrar credenciales. Este enfoque elimina los riesgos asociados con el almacenamiento, la rotación y la administración de secretos.
Puede crear esta conexión de host con una nueva CustomProperty AuthenticationMode
. AuthenticationMode
tiene tres opciones: AppClientSecret
, SystemAssignedManagedIdentity
y UserAssignedManagedIdentity
.
A continuación, se describen las opciones:
-
AppClientSecret
: Este es el valor predeterminado. Se necesita un ID de aplicación y un secreto. -
UserAssignedManagedIdentity
: Es necesario proporcionar un ID de cliente a través de un nombre de usuario. -
SystemAssignedManagedIdentity
: En este caso, no se necesita ninguna entrada. Incluso si proporciona un ID de cliente, se omite.
Condición:
El parámetro ProxyHypervisorTrafficThroughConnector
debe tener el valor “true” para usar la identidad administrada.
A continuación, se describen los pasos para crear la conexión de host mediante Azure Managed Identity:
- Instale un Citrix Cloud Connector en una máquina virtual de Azure.
-
Habilite Azure Managed Identity en esa máquina virtual de Cloud Connector.
-
Para la identidad administrada asignada por el usuario:
- En Azure Portal, cree una identidad administrada asignada por el usuario. Para obtener más información, consulte Crear y asignar una identidad administrada asignada por el usuario.
- Asigne roles de Azure a la identidad administrada. Consulte Permisos de Azure requeridos.
- Cree una máquina virtual de Azure como Cloud Connector y agréguele la identidad asignada por el usuario.
-
Para la identidad administrada asignada por el sistema:
- Abra Azure Portal y vaya a su máquina virtual.
- Seleccione el blade de identidad en los parámetros de la máquina virtual.
- En la ficha Asignado por el sistema, establezca el estado en Activado.
- Haga clic en Guardar.
- Conceda los Permisos de Azure requeridos.
Nota: No
Si habilita la identidad administrada asignada por el sistema en una máquina virtual con Cloud Connector y la usa para crear una conexión de host, podrá seguir creando conexiones de host con la identidad administrada asignada por el sistema incluso después de inhabilitarla en la máquina virtual con Cloud Connector. La creación de conexiones de host puede completarse incluso 24 horas después de que se haya inhabilitado la identidad. Esto se debe a que la infraestructura subyacente de Azure almacena en caché los tokens de identidad administrados. Para obtener más información, consulte ¿Los tokens de identidades administradas se almacenan en caché?
-
-
Cree la conexión de host con este nuevo tipo de autenticación mediante los comandos de PowerShell:
- Abra una ventana de PowerShell.
- Ejecute
asnp citrix*
para cargar los módulos de PowerShell específicos de Citrix. -
Cree conexiones de host. Por ejemplo:
-
Para la identidad administrada asignada por el usuario:
$UserName = "should be the Client ID of the user-assigned managed identity" $Password = "It can be any string.Not used" $CustomProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' ` + '<Property xsi:type="StringProperty" Name="SubscriptionId" Value="' + $SubscriptionId + '" />'` + '<Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" />'` + '<Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" />'` + '<Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" />'` + '<Property xsi:type="StringProperty" Name="TenantId" Value="' + $TenantId + '" />'` + '<Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />'` + '<Property xsi:type="StringProperty" Name="AuthenticationMode" Value="UserAssignedManagedIdentity" />'` + '</CustomProperties>' New-Item -ConnectionType "Custom" ` -CustomProperties $CustomProperties ` -HypervisorAddress @($HypervisorAddress) ` -Path @("XDHyp:\Connections\$($ConnectionName)") ` -Metadata $Metadata ` -Persist ` -PluginId "AzureRmFactory" ` -Scope @() ` -Password $Password ` -UserName $UserName ` -ZoneUid $zoneUid <!--NeedCopy-->
-
Para la identidad administrada asignada por el sistema:
$UserName = "It can be any string. Not used" $Password = "It can be any string. Not used" $CustomProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' ` + '<Property xsi:type="StringProperty" Name="SubscriptionId" Value="' + $SubscriptionId + '" />'` + '<Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" />'` + '<Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" />'` + '<Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" />'` + '<Property xsi:type="StringProperty" Name="TenantId" Value="' + $TenantId + '" />'` + '<Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />'` + '<Property xsi:type="StringProperty" Name="AuthenticationMode" Value="SystemAssignedManagedIdentity" />'` + '</CustomProperties>' New-Item -ConnectionType "Custom" ` -CustomProperties $CustomProperties ` -HypervisorAddress @($HypervisorAddress) ` -Path @("XDHyp:\Connections\$($ConnectionName)") ` -Metadata $Metadata ` -Persist ` -PluginId "AzureRmFactory" ` -Scope @() ` -Password $Password ` -UserName $UserName ` -ZoneUid $zoneUid <!--NeedCopy-->
-
También puede actualizar una conexión de host existente para usar una identidad asignada por el sistema o una identidad administrada asignada por el usuario. Por ejemplo, ejecute los siguientes comandos de PowerShell:
- Abra una ventana de PowerShell.
- Ejecute
asnp citrix*
para cargar los módulos de PowerShell específicos de Citrix. -
Ejecute los comandos siguientes:
$connName = "ConnectionName" $conn = get-item XDHyp:\Connections\$connName $conn.CustomProperties <!--NeedCopy-->
-
Cambie
ProxyHypervisorTrafficThroughConnector
aTrue
y agregue la propiedad personalizada paraAuthenticationMode
establecida enSystemAssignedManagedIdentity
oUserAssignedManagedIdentity
. Por ejemplo:$customProps = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation"><Property xsi:type="StringProperty" Name="SubscriptionId" Value="subscriptionId" /><Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" /><Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" /><Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" /><Property xsi:type="StringProperty" Name="TenantId" Value="tenantId" /><Property xsi:type="StringProperty" Name="AzureAdDeviceManagement" Value="false" /><Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="true" /><Property xsi:type="StringProperty" Name="AuthenticationMode" Value="SystemAssignedManagedIdentity" /></CustomProperties>' <!--NeedCopy-->
- Ejecute
$cred = Get-Credential
. Introduzca cualquier valor aquí. - Ejecute
Set-Item -PSPath XDHyp:\Connections\$connName -CustomProperties $CustomProperties -username $cred.username -Securepassword $cred.password
.
Administrar entidades principales de servicio y conexiones
En esta sección se detalla cómo puede administrar entidades principales de servicio y conexiones:
- Configurar parámetros de limitación de Azure
- Administrar la entidad principal de servicio de una conexión de host existente
- Habilitar el uso compartido de imágenes en Azure
- Agregar arrendatarios compartidos a una conexión mediante Studio
- Implementar el uso compartido de imágenes mediante PowerShell
- Crear un entorno seguro para el tráfico administrado de Azure
- Administrar el secreto de aplicación y la fecha de caducidad del secreto
Configurar parámetros de limitación de Azure
Azure Resource Manager limita las solicitudes de suscripciones y arrendatarios mediante la redirección del tráfico en función de límites definidos y adaptada a las necesidades específicas del proveedor. Consulte Limitación de solicitudes de Resource Manager en el sitio de Microsoft para obtener más información. Existen límites para las suscripciones y los arrendatarios, donde administrar muchas máquinas podría resultar problemático. Por ejemplo: es posible que una suscripción que contenga muchas máquinas sufra problemas de rendimiento relacionados con las operaciones de energía.
Sugerencia:
Para obtener más información, consulte Mejora del rendimiento de Azure con Machine Creation Services.
Para ayudar a mitigar estos problemas, Citrix DaaS permite quitar la limitación interna de MCS para usar más cuota de solicitudes disponible de Azure.
Le recomendamos la siguiente configuración óptima al encender o apagar máquinas virtuales en suscripciones grandes, como, por ejemplo, aquellas que contengan 1000 máquinas virtuales:
- Operaciones simultáneas absolutas: 500
- Máximo de nuevas operaciones por minuto: 2000
- Máximo de operaciones simultáneas: 500
Para usar Studio en la configuración de operaciones de Azure para una conexión de host determinada:
- En Studio, seleccione Alojamiento en el panel de la izquierda.
- Seleccione una conexión relacionada con Azure para modificarla.
- En el asistente Modificar conexión, seleccione Avanzado.
- En la página Avanzado, utilice las opciones de configuración para especificar la cantidad de acciones simultáneas y el máximo de acciones nuevas por minuto y las opciones de conexión adicionales.
MCS admite un máximo de 500 operaciones simultáneas de forma predeterminada. De forma alternativa, puede utilizar el SDK de PowerShell remoto para establecer el máximo de operaciones simultáneas.
Use la propiedad MaximumConcurrentProvisioningOperations
de PowerShell para especificar la cantidad máxima de operaciones de aprovisionamiento de Azure simultáneas. Al usar esta propiedad, tenga en cuenta lo siguiente:
- El valor predeterminado de
MaximumConcurrentProvisioningOperations
es 500. - Configure el parámetro
MaximumConcurrentProvisioningOperations
con el comandoSet-item
de PowerShell.
Administrar la entidad principal de servicio de una conexión de host existente
Después de crear una conexión de host mediante una entidad principal de servicio, puede modificar dicha conexión para que:
- Tenga una nueva entidad principal de servicio
- Use otra entidad principal de servicio
- En Studio, seleccione Alojamiento en el panel de la izquierda.
- Seleccione la conexión y, a continuación, seleccione Modificar conexión en la barra de acciones.
- Seleccione Propiedades de la conexión en el panel izquierdo.
-
En la página Propiedades de la conexión, haga clic en Modificar parámetros. Ahora puede optar por crear una nueva entidad principal de servicio o por usar otra entidad principal de servicio existente.
- Haga clic en Crear entidad principal de servicio para crear una. Siga las instrucciones para iniciar sesión en su cuenta de usuario de Azure AD. Citrix usa el ID de la aplicación multiarrendatario
08b70dc3-76c5-4611-ba7d-3312ba36cb2b
para crear una nueva entidad principal de servicio para la conexión de host existente y conceder los permisos adecuados. - Haga clic en Usar existente para usar otra entidad principal de servicio para esa conexión de host.
- Haga clic en Crear entidad principal de servicio para crear una. Siga las instrucciones para iniciar sesión en su cuenta de usuario de Azure AD. Citrix usa el ID de la aplicación multiarrendatario
Habilitar el uso compartido de imágenes en Azure
Al crear o actualizar catálogos de máquinas, puede seleccionar imágenes compartidas de diferentes suscripciones y arrendatarios de Azure (compartidas a través de Azure Compute Gallery). Para habilitar el uso compartido de imágenes con o entre arrendatarios, debe hacer los ajustes necesarios en Azure:
Compartir imágenes con un arrendatario (entre suscripciones)
Para seleccionar una imagen de Azure Compute Gallery que pertenezca a una suscripción diferente, la imagen debe compartirse con la entidad principal de servicio (SPN) de esa suscripción.
Por ejemplo: si hay una entidad principal de servicio (SPN 1) que está configurada en Studio como:
Entidad principal de servicio: SPN 1
Suscripción: suscripción 1
Arrendatario: arrendatario 1
La imagen está en una suscripción diferente, que está configurada en Studio como:
Suscripción: suscripción 2
Arrendatario: arrendatario 1
Si quiere compartir la imagen de la suscripción 2 con la suscripción 1 (SPN 1), vaya a la suscripción 2 y comparta el grupo de recursos con SPN 1.
La imagen debe compartirse con otro SPN mediante control de acceso por roles (RBAC) de Azure. Azure RBAC es el sistema de autorización que se utiliza para administrar el acceso a los recursos de Azure. Para obtener más información sobre Azure RBAC, consulte el documento de Microsoft What is Azure role-based access control (Azure RBAC). Para conceder acceso, asigne roles a las entidades principales de servicio en el ámbito del grupo de recursos con el rol Colaborador. Para asignar roles de Azure, debe tener el permiso Microsoft.Authorization/roleAssignments/write
, como Administrador de acceso de usuario o Propietario. Para obtener más información sobre cómo compartir imágenes con otro SPN, consulte el documento de Microsoft Assign Azure roles using the Azure portal.
Compartir imágenes entre arrendatarios
Para compartir imágenes entre arrendatarios con Azure Compute Gallery, cree o actualice el registro de la aplicación y use esta aplicación para crear una conexión de host.
Por ejemplo, si hay dos arrendatarios (arrendatario 1 y arrendatario 2) y quiere compartir su galería de imágenes con el arrendatario 1, entonces:
-
Cree un registro de aplicaciones para el arrendatario 1. Para obtener más información, consulte Create the app registration.
-
Permita que el arrendatario 2 acceda a la aplicación mediante una solicitud de inicio de sesión con explorador web. Sustituya el
ID del arrendatario 2
por el ID del arrendatario 1. Sustituya elID de aplicación (cliente)
por el ID de aplicación del registro de aplicación que creó. Cuando haya terminado con las sustituciones, pegue la URL en un explorador web y siga las instrucciones de inicio de sesión para iniciar sesión en el arrendatario 2. Por ejemplo:https://login.microsoftonline.com/<Tenant 2 ID>/oauth2/authorize?client_id=<Application (client) ID>&response_type=code&redirect_uri=https%3A%2F%2Fwww.microsoft.com%2F <!--NeedCopy-->
Para obtener más información, consulte Give Tenant 2 access.
-
Permita a la aplicación acceder al grupo de recursos del arrendatario 2. Inicie sesión como el arrendatario 2 y otorgue acceso al registro de aplicaciones para el grupo de recursos que contiene la imagen de la galería. Para obtener más información, consulte Authenticate requests across tenants.
Agregar arrendatarios compartidos a una conexión mediante Studio
Al crear o actualizar catálogos de máquinas en Studio, puede seleccionar imágenes compartidas de diferentes suscripciones y arrendatarios de Azure (compartidas a través de Azure Compute Gallery). La función requiere que proporcione información compartida sobre la suscripción y los arrendatarios compartidos para las conexiones de host asociadas.
Nota: No
Asegúrese de haber configurado los ajustes necesarios en Azure para permitir el uso compartido de imágenes entre arrendatarios. Para obtener más información, consulte Compartir imágenes entre arrendatarios.
Complete estos pasos para establecer una conexión:
- En Studio, seleccione Alojamiento en el panel de la izquierda.
-
Seleccione la conexión y, a continuación, seleccione Modificar conexión en la barra de acciones.
- En Shared Tenants, haga lo siguiente:
- Proporcione el ID de la aplicación y el secreto de la aplicación asociados a la suscripción de la conexión. DaaS usa esta información para autenticarse en Azure AD.
- Agregue arrendatarios y suscripciones que compartan Azure Compute Gallery con la suscripción de la conexión. Puede agregar hasta ocho arrendatarios compartidos y ocho suscripciones por cada arrendatario.
- Cuando haya terminado, seleccione Aplicar para aplicar los cambios que haya hecho y deje la ventana abierta, o bien seleccione Aceptar para aplicar los cambios y cierre la ventana.
Implementar el uso compartido de imágenes mediante PowerShell
Esta sección le guiará a través de los procesos para compartir imágenes con PowerShell:
- Seleccionar una imagen de una suscripción diferente
- Actualizar las propiedades personalizadas de la conexión de host con identificadores de arrendatarios compartidos
- Seleccionar una imagen de otro arrendatario
Seleccionar una imagen de una suscripción diferente
Puede seleccionar una imagen en Azure Compute Gallery que pertenezca a una suscripción compartida diferente del mismo arrendatario de Azure para crear y actualizar catálogos de MCS mediante los comandos de PowerShell.
- En la carpeta raíz de la unidad host, Citrix crea una nueva carpeta de suscripción compartida llamada
sharedsubscription
. -
Enumere todas las suscripciones compartidas de un arrendatario.
Get-ChildItem -Path "XDhyp:\HostingUnits\azres\sharedsubscription.folder" <!--NeedCopy-->
-
Seleccione una suscripción compartida y, a continuación, enumere todos los grupos de recursos compartidos de esa suscripción compartida.
Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription" <!--NeedCopy-->
-
Seleccione un grupo de recursos y, a continuación, enumere todas las galerías de ese grupo de recursos.
Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup" <!--NeedCopy-->
-
Seleccione una galería y, a continuación, enumere todas las definiciones de imágenes de esa galería.
Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\testgallery.gallery" <!--NeedCopy-->
-
Seleccione una definición de imagen y, a continuación, enumere todas las versiones de imagen de esa definición de imagen.
Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\sigtestdef.imagedefinition" <!--NeedCopy-->
-
Cree y actualice un catálogo de MCS con los siguientes elementos:
- Resource group
- Galería
- Definición de imagen de la galería
- Versión de la imagen de la galería
Actualizar las propiedades personalizadas de la conexión de host con identificadores de arrendatarios compartidos
Use Set-Item
para actualizar las propiedades personalizadas de la conexión de host con los ID de arrendatario y los ID de suscripción compartidos. Agregue una propiedad SharedTenants
en CustomProperties
. El formato de SharedTenants
es:
[{"Tenant":"94367291-119e-457c-bc10-25337231f7bd","Subscriptions":["7bb42f40-8d7f-4230-a920-be2781f6d5d9"]},{"Tenant":"50e83564-c4e5-4209-b43d-815c45659564","Subscriptions":["06ab8944-6a88-47ee-a975-43dd491a37d0"]}]
<!--NeedCopy-->
Por ejemplo:
Set-Item -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">
<Property xsi:type=`"StringProperty`" Name=`"SubscriptionId`" Value=`"123`" />
<Property xsi:type=`"StringProperty`" Name=`"ManagementEndpoint`" Value=`"https://management.azure.com/`" />
<Property xsi:type=`"StringProperty`" Name=`"AuthenticationAuthority`" Value=`"https://login.microsoftonline.com/`" />
<Property xsi:type=`"StringProperty`" Name=`"StorageSuffix`" Value=`"core.windows.net`" />
<Property xsi:type=`"StringProperty`" Name=`"TenantId`" Value=`"123abc`" />
<Property xsi:type=`"StringProperty`" Name=`"SharedTenants`" Value=`"`[ { 'Tenant':'123abc', 'Subscriptions':['345', '567'] } ]`"` />
</CustomProperties>"
-LiteralPath @("XDHyp:\Connections\aazure") -PassThru -UserName "advc345" -SecurePassword
$psd
<!--NeedCopy-->
Nota: No
Puede agregar más de un arrendatario. Cada arrendatario puede tener más de una suscripción.
Seleccionar una imagen de otro arrendatario
Puede seleccionar una imagen en Azure Compute Gallery que pertenezca a otro arrendatario de Azure para crear y actualizar catálogos de MCS mediante comandos de PowerShell.
- En la carpeta raíz de la unidad host, Citrix crea una nueva carpeta de suscripción compartida llamada
sharedsubscription
. -
Enumere todas las suscripciones compartidas.
Get-ChildItem XDHyp:\HostingUnits\azres\sharedsubscription.folder <!--NeedCopy-->
-
Seleccione una suscripción compartida y, a continuación, enumere todos los grupos de recursos compartidos de esa suscripción compartida.
Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription <!--NeedCopy-->
-
Seleccione un grupo de recursos y, a continuación, enumere todas las galerías de ese grupo de recursos.
Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup <!--NeedCopy-->
-
Seleccione una galería y, a continuación, enumere todas las definiciones de imágenes de esa galería.
Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery <!--NeedCopy-->
-
Seleccione una definición de imagen y, a continuación, enumere todas las versiones de imagen de esa definición de imagen.
Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery\hij.imagedefinition <!--NeedCopy-->
-
Cree y actualice un catálogo de MCS con los siguientes elementos:
- Resource group
- Galería
- Definición de imagen de la galería
- Versión de la imagen de la galería
Crear un entorno seguro para el tráfico administrado de Azure
MCS permite que el tráfico de red (llamadas de API desde Citrix Cloud al hipervisor de Azure) se redirija a través de los Cloud Connectors de su entorno. Esta implementación le ayuda a bloquear su suscripción de Azure para permitir el tráfico de red desde direcciones IP específicas. Para ello, agregue ProxyHypervisorTrafficThroughConnector
en CustomProperties
. Después de configurar las propiedades personalizadas, puede configurar las directivas de Azure para tener acceso a discos privados con los discos administrados de Azure.
Si configura la directiva de Azure para crear accesos a disco automáticamente para que cada disco nuevo utilice dispositivos de punto final privados, no podrá cargar ni descargar más de cinco discos o instantáneas al mismo tiempo con el mismo objeto de acceso a disco que exige Azure. Este límite es para cada catálogo de máquinas si configura la directiva de Azure al nivel de grupo de recursos, y para todos los catálogos de máquinas si configura la directiva de Azure al nivel de suscripción. Si no configura la directiva de Azure para crear accesos a disco automáticamente para que cada disco nuevo utilice dispositivos de punto final privados, no se aplicará el límite de cinco operaciones simultáneas.
Nota: No
Actualmente, esta función no es compatible con Connector Appliance. Para conocer las limitaciones de Azure relacionadas con esta función, consulte Restrict import/export access for managed disks using Azure Private Link.
Habilitar el proxy
Para habilitar el proxy, defina las propiedades personalizadas de esta manera en la conexión de host:
- Abra una ventana de PowerShell con Remote PowerShell SDK. Para obtener más información, consulte https://docs.citrix.com/en-us/citrix-daas/sdk-api.html#citrix-virtual-apps-and-desktops-remote-powershell-sdk/.
-
Ejecute los comandos siguientes:
Add-PSSnapin citrix*. cd XDHyp:\Connections\ dir <!--NeedCopy-->
-
Copie
CustomProperties
de la conexión a un bloc de notas y agréguele el parámetro de propiedad<Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />
aCustomProperties
para habilitar el proxy. Por ejemplo:<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation"> <Property xsi:type="StringProperty" Name="SubscriptionId" Value="4991xxxx-2xxx-4xxx-8xxx-ff59a830xxxx" /> <Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" /> <Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" /> <Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" /> <Property xsi:type="StringProperty" Name="TenantId" Value="5cxxxxx-9xxx-4xxx-8xxx-dffe3efdxxxx" /> <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" /> </CustomProperties> <!--NeedCopy-->
-
En la ventana de PowerShell, asigne una variable a las propiedades personalizadas modificadas. Por ejemplo:
$customProperty = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation"> <Property xsi:type="StringProperty" Name="SubscriptionId" Value="4991xxxx-2xxx-4xxx-8xxx-ff59a830xxxx" /> <Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" /> <Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" /> <Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" /> <Property xsi:type="StringProperty" Name="TenantId" Value="5cxxxxx-9xxx-4xxx-8xxx-dffe3efdxxxx" /> <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" /> </CustomProperties>' <!--NeedCopy-->
- Ejecute
$cred = Get-Credential
. Si se le solicita, proporcione las credenciales de conexión. Las credenciales son el ID de aplicación y el secreto de Azure. -
Ejecute
Set-Item -PSPath XDHyp:\Connections\<Connection_Name> -CustomProperties $customProperty -username $cred.username -Securepassword $cred.password
.Importante:
Si recibe un mensaje que indica que falta
SubscriptionId
, sustituya todas las comillas dobles (“) por comillas simples invertidas seguidas de comillas dobles (`”) en la propiedad personalizada. Por ejemplo:<CustomProperties xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`" xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`"> <Property xsi:type=`"StringProperty`" Name=`"SubscriptionId`" Value=`"4991xxxx-2xxx-4xxx-8xxx-ff59a830xxxx`" /> <Property xsi:type=`"StringProperty`" Name=`"ManagementEndpoint`" Value=`"https://management.azure.com/`" /> <Property xsi:type=`"StringProperty`" Name=`"AuthenticationAuthority`" Value=`"https://login.microsoftonline.com/`" /> <Property xsi:type=`"StringProperty`" Name=`"StorageSuffix`" Value=`"core.windows.net`" /> <Property xsi:type=`"StringProperty`" Name=`"TenantId`" Value=`"5cxxxxx-9xxx-4xxx-8xxx-dffe3efdxxxx`" /> <Property xsi:type=`"StringProperty`" Name=`"ProxyHypervisorTrafficThroughConnector`" Value=`"True`" /> </CustomProperties> <!--NeedCopy-->
- Ejecute
dir
para verificar el parámetroCustomProperties
actualizado.
Administrar el secreto de aplicación y la fecha de caducidad del secreto
Asegúrese de cambiar el secreto de aplicación para una conexión antes de que caduque. Recibirá una alerta en Studio antes de que caduque la clave secreta.
Crear un secreto de aplicación en Azure
Puede crear un secreto de aplicación para una conexión a través de Azure Portal.
- Seleccione Azure Active Directory.
- En Registros de aplicaciones, en Azure AD, seleccione su aplicación.
- Vaya a Certificados y secretos.
-
Haga clic en Secretos de cliente > Nuevo secreto de cliente.
-
Proporcione una descripción del secreto y especifique una duración. Cuando haya terminado, seleccione Agregar.
Nota: No
Guarde el secreto de cliente porque no podrá recuperarlo más tarde.
- Copie el valor del secreto del cliente y la fecha de caducidad.
- En la interfaz de Studio, modifique la conexión correspondiente y sustituya el contenido de los campos Secreto de la aplicación y Fecha de caducidad del secreto por los valores copiados.
Cambiar la fecha de caducidad del secreto
Puede usar Studio para agregar o modificar la fecha de caducidad del secreto de aplicación en uso.
- En el asistente Agregar conexión y recursos, haga clic con el botón secundario en una conexión y haga clic en Modificar conexión.
- En la página Propiedades de la conexión, haga clic en Fecha de caducidad del secreto para agregar o modificar la fecha de caducidad del secreto de la aplicación en uso.
Usar un grupo de seguridad de red previamente creado
Cree un grupo de seguridad de red Deny-All para la preparación de imágenes, en lugar de solicitar a Citrix que cree y modifique el grupo de seguridad de red (NSG). Modifique las propiedades personalizadas de la unidad de host con el comando Set-Item
de PowerShell para incluir el parámetro NsgForPreparation
y proporcionar el grupo de seguridad de red Deny-All.
Requisitos previos
Configure los siguientes permisos necesarios para una entidad principal de servicio:
-
Microsoft.Network/networkSecurityGroups/join/action
: Asocia un grupo de seguridad de red a una interfaz de red o subred -
Microsoft.Network/networkSecurityGroups/read
: Obtiene el grupo de seguridad de red -
Microsoft.Network/networkSecurityGroups/securityRules/read
: Obtiene la regla
Agregar el grupo de seguridad de red Deny-All creado previamente
Para agregar el grupo de seguridad de red Deny-All creado previamente, defina las propiedades personalizadas de la siguiente manera en la unidad de alojamiento:
- Abra una ventana de PowerShell con Remote PowerShell SDK.
-
Ejecute los comandos siguientes:
Add-PSSnapin citrix*. cd XDHyp:\HostingUnits\ Dir <!--NeedCopy-->
-
Seleccione una unidad de alojamiento para obtener los detalles:
Get-Item "XDHyp:\HostingUnits\<hostingunitname>" <!--NeedCopy-->
-
Copie las CustomProperties en un bloc de notas y añada el parámetro de propiedad
<Property xsi:type="StringProperty
” Name="NsgForPreparation
” Value="{ResourceGroupName}/{NetworkSecurityGroupName}"/>
. Por ejemplo:<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"NsgForPreparation`" Value=`{ResourceGroupName}/{NetworkSecurityGroupName}`"/></CustomProperties> <!--NeedCopy-->
-
En la ventana de PowerShell, asigne una variable a las propiedades personalizadas modificadas. Por ejemplo:
$customProperty = "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"NsgForPreparation`" Value=`"{ResourceGroupName}/{NetworkSecurityGroupName}`"/></CustomProperties>" <!--NeedCopy-->
- Ejecute
$cred = Get-Credential
. Si se le solicita, proporcione las credenciales de conexión. Las credenciales son el ID de aplicación y el secreto de Azure. -
Ejecute este comando:
Set-Item -PSPath XDHyp:\HostingUnits\<hostingunitname> -CustomProperties $customProperty -username $cred.username -Securepassword $cred.password <!--NeedCopy-->
Importante:
Si recibe un mensaje que indica que falta SubscriptionId, sustituya todas las comillas dobles (“) por comillas simples invertidas seguidas de comillas dobles (`”) en la propiedad personalizada.
- Ejecute
dir
para verificar el parámetroCustomProperties
actualizado.
Nota: No
Las actualizaciones tardan más de un minuto en reflejarse.
Obtener los detalles del grupo de seguridad de red
Para obtener los detalles del grupo de seguridad de red, obtenga primero los grupos de recursos que lo contienen y, a continuación, obtenga el grupo de seguridad de red en función del nombre del grupo de recursos.
-
Obtenga los grupos de recursos que contienen el grupo de seguridad de red. Por ejemplo:
Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["networksecuritygroup"]}' <!--NeedCopy-->
-
Obtenga el grupo de seguridad de red en función del nombre del grupo de recursos. Por ejemplo:
Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType securitygroup -MaxRecords 5 -AdditionalDataFilter '{"location": ["eastus", "westus"], "resourcegroup":["resourcegroupname"]}' <!--NeedCopy-->
Filtrar grupos de recursos vacíos
Use el comando Get-HypInventoryItem
de PowerShell para filtrar los grupos de recursos vacíos mientras selecciona una imagen maestra, un perfil de máquina o una imagen preparada durante la creación del catálogo de máquinas.
Ejemplos:
-
Obtener la cantidad máxima de registros de una página:
Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 <!--NeedCopy-->
-
Obtener la cantidad máxima de registros de una página y aplicar filtros para identificar contenedores de recursos que incluyan recursos específicos.
Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}' <!--NeedCopy-->
-
Obtener registros con skip para indicar directamente la página y aplicar filtros para identificar contenedores de recursos que tengan recursos específicos.
Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -skip 20 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}' <!--NeedCopy-->
-
Usar un token para obtener la página siguiente y aplicar filtros para identificar contenedores de recursos que tengan recursos específicos.
Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}' -ContinuationToken 'ew0KICAiJGlkIjogIjEiLA0KICAiTWF4Um93cyI6IDUsDQogICJSb3dzVG9Ta2lwIjogMjUsDQogICJLdXN0b0NsdXN0ZXJVcmwiOiAiaHR0cHM6Ly9hcmctbmV1LTEzLXNmLmFyZy5jb3JlLndpbmRvd3MubmV0Ig0KfQ==' <!--NeedCopy-->
-
Obtener todos los grupos de recursos con la etiqueta interna de Citrix y limitar la cantidad máxima de registros con
MaxRecords
.Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 <!--NeedCopy-->
-
Filtrar por perfil de máquina (imagen maestra) con la etiqueta interna de Citrix y limitar la cantidad máxima de registros con
MaxRecords
.Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}' <!--NeedCopy-->
-
Filtrar por imagen preparada con la etiqueta interna de Citrix y limitar la cantidad máxima de registros con
MaxRecords
.Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion"]}' <!--NeedCopy-->
-
Filtrar por perfil de máquina (imagen preparada) con la etiqueta interna de Citrix y limitar la cantidad máxima de registros con
MaxRecords
.Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}' <!--NeedCopy-->
-
Filtrar por imagen con etiqueta interna de Citrix y limitar la cantidad máxima de registros con
MaxRecords
y ubicación.Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion", "storageaccount"], "location": ["eastus", "westus"]}' <!--NeedCopy-->
-
Obtener todos los grupos de recursos sin tener en cuenta las etiquetas
CitrixResource
.Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 50 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion", "storageaccount"]}' -Force $true <!--NeedCopy-->
Permisos de Azure requeridos
En esta sección se detallan los permisos mínimos y los permisos generales necesarios para Azure.
Permisos mínimos
Los permisos mínimos ofrecen un mejor control de la seguridad. Sin embargo, las nuevas funciones que requieren permisos adicionales fallan si solo se otorgan los permisos mínimos. En esta sección se enumeran los permisos mínimos por acción.
Crear una conexión de host
Agregue una conexión de host con la información obtenida de Azure.
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/disks/read",
"Microsoft.Resources/providers/read",
"Microsoft.Resources/subscriptions/locations/read",
"Microsoft.Resources/tenants/read",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/securityRules/read"
<!--NeedCopy-->
Administración de energía de las máquinas virtuales
Encienda o apague las instancias de máquina.
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Insights/diagnosticsettings/delete",
"Microsoft.Insights/diagnosticsettings/read",
"Microsoft.Insights/diagnosticsettings/write",
<!--NeedCopy-->
Creación, actualización o eliminación de máquinas virtuales
Cree un catálogo de máquinas y, a continuación, agregue, elimine y actualice máquinas, y elimine el catálogo de máquinas.
A continuación, se muestra la lista de permisos mínimos requeridos cuando las imágenes maestras son discos administrados o instantáneas que se encuentran en la misma región que la conexión de host.
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Resources/tags/read",
"Microsoft.Resources/tags/write",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/snapshots/read",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/endGetAccess/action",
"Microsoft.Compute/disks/read",
"Microsoft.Compute/disks/write",
"Microsoft.Compute/disks/delete",
"Microsoft.Compute/disks/beginGetAccess/action",
"Microsoft.Compute/disks/endGetAccess/action",
"Microsoft.Compute/locations/publishers/artifacttypes/types/versions/read",
"Microsoft.Compute/skus/read",
"Microsoft.Compute/virtualMachines/extensions/read",
"Microsoft.Compute/virtualMachines/extensions/write",
"Microsoft.Features/providers/features/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/locations/usages/read",
"Microsoft.Compute/capacityReservationGroups/capacityReservations/read",
"Microsoft.Compute/capacityReservationGroups/deploy/action"
<!--NeedCopy-->
Necesita los siguientes permisos adicionales, en función de los permisos mínimos, para las siguientes funciones:
-
Si la imagen maestra es un disco duro virtual de una cuenta de almacenamiento ubicada en la misma región que la conexión de host:
"Microsoft.Storage/storageAccounts/read", "Microsoft.Storage/storageAccounts/listKeys/action", <!--NeedCopy-->
-
Si la imagen maestra es una versión de imagen de Azure Compute Gallery (anteriormente, Shared Image Gallery):
"Microsoft.Compute/galleries/read", "Microsoft.Compute/galleries/images/read", "Microsoft.Compute/galleries/images/versions/read", <!--NeedCopy-->
-
Si la imagen maestra es un disco administrado, una instantánea o un VHD que se encuentra en una región diferente de la región de la conexión de host:
"Microsoft.Storage/storageAccounts/read", "Microsoft.Storage/storageAccounts/listKeys/action", "Microsoft.Storage/storageAccounts/write", "Microsoft.Storage/storageAccounts/delete", "Microsoft.Storage/checknameavailability/read", "Microsoft.Storage/locations/usages/read", "Microsoft.Storage/skus/read", <!--NeedCopy-->
-
Si usa el grupo de recursos administrado por Citrix:
"Microsoft.Resources/subscriptions/resourceGroups/write", "Microsoft.Resources/subscriptions/resourceGroups/delete", <!--NeedCopy-->
-
Si coloca la imagen maestra en Azure Compute Gallery (anteriormente, Shared Image Gallery) en un arrendatario o en una suscripción compartidos:
"Microsoft.Compute/galleries/write", "Microsoft.Compute/galleries/images/write", "Microsoft.Compute/galleries/images/versions/write", "Microsoft.Compute/galleries/read", "Microsoft.Compute/galleries/images/read", "Microsoft.Compute/galleries/images/versions/read", "Microsoft.Compute/galleries/delete", "Microsoft.Compute/galleries/images/delete", "Microsoft.Compute/galleries/images/versions/delete", "Microsoft.Resources/subscriptions/read", <!--NeedCopy-->
-
Si usa compatibilidad con hosts dedicados de Azure:
"Microsoft.Compute/hostGroups/read", "Microsoft.Compute/hostGroups/write", "Microsoft.Compute/hostGroups/hosts/read", <!--NeedCopy-->
-
Si usa cifrado del lado del servidor (SSE) con claves administradas por el cliente (CMK):
"Microsoft.Compute/diskEncryptionSets/read", <!--NeedCopy-->
-
Si implementa máquinas virtuales mediante plantillas ARM (perfil de máquina):
"Microsoft.Resources/deployments/write", "Microsoft.Resources/deployments/operationstatuses/read", "Microsoft.Resources/deployments/read", "Microsoft.Resources/deployments/delete", "Microsoft.Insights/DataCollectionRuleAssociations/Read", "Microsoft.Insights/dataCollectionRules/read", <!--NeedCopy-->
-
Si usa la especificación de plantilla de Azure como perfil de máquina:
"Microsoft.Resources/templateSpecs/read", "Microsoft.Resources/templateSpecs/versions/read", <!--NeedCopy-->
Crear, actualizar y eliminar máquinas con discos no administrados
A continuación, se muestra la lista de permisos mínimos requeridos cuando la imagen maestra es un disco duro virtual (VHD) y se utiliza el grupo de recursos proporcionado por el administrador:
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/tags/read",
"Microsoft.Resources/tags/write",
"Microsoft.Storage/storageAccounts/delete",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/write",
"Microsoft.Storage/checknameavailability/read",
"Microsoft.Storage/locations/usages/read",
"Microsoft.Storage/skus/read",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Network/networkInterfaces/delete",
"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/write",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Network/locations/usages/read",
<!--NeedCopy-->
Administración de costes
A continuación se indica el permiso mínimo necesario para obtener los precios de las máquinas virtuales:
"Microsoft.Consumption/pricesheets/read"
<!--NeedCopy-->
Permisos generales
El rol de colaborador tiene pleno acceso para administrar todos los recursos. Este conjunto de permisos no le impide obtener nuevas funcionalidades.
El siguiente conjunto de permisos proporciona la mejor compatibilidad de cara al futuro, aunque incluye más permisos de los necesarios con el conjunto de funciones actual:
"Microsoft.Compute/diskEncryptionSets/read",
"Microsoft.Compute/disks/beginGetAccess/action",
"Microsoft.Compute/disks/delete",
"Microsoft.Compute/disks/endGetAccess/action",
"Microsoft.Compute/disks/read",
"Microsoft.Compute/disks/write",
"Microsoft.Compute/galleries/delete",
"Microsoft.Compute/galleries/images/delete",
"Microsoft.Compute/galleries/images/read",
"Microsoft.Compute/galleries/images/versions/delete",
"Microsoft.Compute/galleries/images/versions/read",
"Microsoft.Compute/galleries/images/versions/write",
"Microsoft.Compute/galleries/images/write",
"Microsoft.Compute/galleries/read",
"Microsoft.Compute/galleries/write",
"Microsoft.Compute/hostGroups/hosts/read",
"Microsoft.Compute/hostGroups/read",
"Microsoft.Compute/hostGroups/write",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/endGetAccess/action",
"Microsoft.Compute/snapshots/read",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Compute/locations/publishers/artifacttypes/types/versions/read",
"Microsoft.Compute/skus/read",
"Microsoft.Compute/virtualMachines/extensions/read",
"Microsoft.Compute/virtualMachines/extensions/write",
"Microsoft.Network/networkInterfaces/delete",
"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/write",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Network/locations/usages/read",
"Microsoft.Resources/deployments/operationstatuses/read",
"Microsoft.Resources/deployments/read",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Resources/deployments/write",
"Microsoft.Resources/deployments/delete",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Resources/subscriptions/resourceGroups/delete",
"Microsoft.Resources/providers/read",
"Microsoft.Resources/subscriptions/locations/read",
"Microsoft.Resources/subscriptions/read",
"Microsoft.Resources/tags/read",
"Microsoft.Resources/tags/write",
"Microsoft.Resources/tenants/read",
"Microsoft.Resources/templateSpecs/read",
"Microsoft.Resources/templateSpecs/versions/read",
"Microsoft.Storage/storageAccounts/delete",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/write",
"Microsoft.Storage/checknameavailability/read",
"Microsoft.Storage/locations/usages/read",
"Microsoft.Storage/skus/read",
"Microsoft.Features/providers/features/read",
"Microsoft.Insights/DataCollectionRuleAssociations/Read",
"Microsoft.Insights/dataCollectionRules/read",
"Microsoft.Insights/diagnosticsettings/delete",
"Microsoft.Insights/diagnosticsettings/read",
"Microsoft.Insights/diagnosticsettings/write",
"Microsoft.Compute/capacityReservationGroups/capacityReservations/read",
"Microsoft.Consumption/pricesheets/read",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/securityRules/read",
"Microsoft.Compute/capacityReservationGroups/deploy/action"
<!--NeedCopy-->
Configurar los permisos de conexión de host de Azure necesarios
Puede configurar fácilmente todos los permisos mínimos necesarios para una entidad principal de servicio o cuenta de usuario en Azure vinculada a una conexión de host para realizar todas las operaciones de MCS mediante una plantilla ARM. Esta plantilla de ARM automatiza lo siguiente:
- Creación de un rol de Azure con los permisos mínimos necesarios para las operaciones.
- Asignación de este rol a una entidad principal de servicio de Azure existente en el nivel de suscripción.
Puede implementar esta plantilla de ARM mediante los comandos de Azure Portal o PowerShell. Para obtener más información, consulte Plantilla ARM para operaciones de Citrix Virtual Apps and Desktops.
Validar permisos en la conexión de host
Puede validar los permisos en una conexión de host para realizar tareas relacionadas con la creación y la administración de catálogos de máquinas de MCS. Esta implementación le ayuda a conocer con antelación los permisos ausentes necesarios para diferentes situaciones, como la creación, la eliminación y la actualización de máquinas virtuales, y la administración de energía de las máquinas virtuales, para evitar el bloqueo en momentos críticos.
Puede validar los permisos de una conexión de host mediante el comando Test-HypHypervisorConnection
de PowerShell. El resultado del comando se captura como una lista en la que cada elemento de la lista se divide en tres secciones.
- Categoría: La acción o tarea que un usuario puede realizar para crear y administrar un catálogo de máquinas de MCS.
- Acción correctiva: El paso que debe seguir un administrador para resolver la discrepancia de permisos ausentes de un usuario.
- Permiso que falta: La lista de permisos ausentes para una categoría.
Para validar los permisos, haga lo siguiente:
- Cree una conexión de host con Azure.
- Abra una ventana de PowerShell desde el host del Delivery Controller.
- Ejecute
asnp citrix*
para cargar los módulos de PowerShell específicos de Citrix. -
Ejecute el siguiente comando para verificar si tiene los permisos necesarios para probar una conexión.
Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AzureCon" <!--NeedCopy-->
Se requiere permiso de nivel de rol para el SPN:
- Microsoft.Authorization/roleDefinitions/read (a nivel de suscripción o a nivel de grupo de recursos si se proporciona un grupo de recursos)
- Microsoft.Authorization/roleAssignments/read (a nivel de suscripción o a nivel de grupo de recursos si se proporciona un grupo de recursos)
Permisos de nivel de API necesarios para el SPN:
Microsoft.Graph:
- Application.Read.All
- Directory.Read.All
- ServicePrincipalEndpoint.Read.All
-
Después de agregar los permisos ausentes necesarios para buscar los permisos, ejecute el siguiente comando para verificar si tiene permisos en las distintas categorías.
Ejemplo :
Para probar una conexión a nivel de suscripción con un nivel de autorización más alto:
Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\ AzureCon -SecurePassword $password -UserName 922e65d5-38ae-4cf5-xxxx-xxxxxxxxx <!--NeedCopy-->
Ejemplo :
Para probar una conexión a nivel de grupo de recursos sin un alto nivel de autorización:
Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\testles -CustomProperties $customProperties | Format-List <!--NeedCopy-->
Nota: No
El parámetro
CustomProperties
se usa para proporcionar el nivel de grupo de recursos, puesto que el grupo de recursos es una información específica de la conexión.Ejemplo :
Para probar una conexión con el nivel más alto de autorización a nivel de grupo de recursos:
Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\testles -SecurePassword $password -UserName 922e65d5-38ae-4cf5-832b-54122196b7dd -CustomProperties $customProperties <!--NeedCopy-->
Para obtener información sobre los permisos, consulte Permisos de Azure requeridos.
Qué hacer a continuación
- Si está en el proceso de implementación inicial, consulte Crear catálogos de máquinas.
- Para obtener información específica de Azure, consulte Crear un catálogo de Microsoft Azure.
Más información
En este artículo
- Crear conexiones y entidades principales de servicio
- Administrar entidades principales de servicio y conexiones
- Usar un grupo de seguridad de red previamente creado
- Filtrar grupos de recursos vacíos
- Permisos de Azure requeridos
- Configurar los permisos de conexión de host de Azure necesarios
- Validar permisos en la conexión de host
- Qué hacer a continuación
- Más información