Citrix Virtual Apps and Desktops

Entornos de virtualización de Microsoft Azure Resource Manager

Siga estas instrucciones si usa Azure Resource Manager para aprovisionar máquinas virtuales en su entorno.

Familiarícese con lo siguiente:

Limitaciones

Tenga en cuenta esta limitación al utilizar Azure Resource Manager:

  • Este producto no admite VDA en un entorno de Windows Virtual Desktop (WVD). Para WVD, utilice el servicio Citrix Virtual Apps and Desktops o el servicio Citrix Virtual Apps and Desktops Standard para Azure.

Aprovisionamiento a demanda de Azure

Cuando se usa MCS para crear catálogos de máquinas en Azure Resource Manager, la función de aprovisionamiento a demanda de Azure:

  • Reduce los costes de almacenamiento
  • Proporciona una creación de catálogos más rápida
  • Proporciona unas operaciones de energía más rápidas para las máquinas virtuales (VM)

Para el administrador, el aprovisionamiento a demanda no conlleva diferencias entre los procedimientos de Studio para crear conexiones de host o catálogos de máquinas de Machine Creation Services. Las diferencias consisten en cómo y cuándo se crean y se administran los recursos en Azure, así como en la visibilidad de las VM en Azure Portal.

Cuando MCS creaba un catálogo, las máquinas virtuales se creaban en Azure durante el proceso de aprovisionamiento.

Con el aprovisionamiento a demanda de Azure, las máquinas virtuales se crean solo cuando Citrix Virtual Apps and Desktops inicia una acción de encendido, después de completarse el aprovisionamiento. Una máquina virtual solo aparece en Azure Portal cuando se está ejecutando. (En Studio, las máquinas virtuales aparecen tanto si se están ejecutando como si no.)

Cuando se crea un catálogo con Machine Creation Services, Azure Portal muestra los grupos de recursos, el grupo de seguridad de red, las cuentas de almacenamiento, las interfaces de red, las imágenes base y los discos de identidad. Azure Portal no muestra ninguna máquina virtual hasta que Citrix Virtual Apps and Desktops inicie una acción de encendido en ella. Entonces, el estado de la máquina virtual en Studio cambia a encendido.

  • Para una máquina agrupada, el disco del sistema operativo y la caché de reescritura solo existen cuando existe la máquina virtual. Las máquinas agrupadas pueden resultar en un ahorro considerable del espacio de almacenamiento si apaga frecuentemente las máquinas (por ejemplo, fuera del horario de trabajo).
  • Para una máquina dedicada, el disco del sistema operativo se crea la primera vez que se encienda la máquina virtual. Almacena datos hasta que se elimina la máquina.

Al iniciar una acción de apagado para una máquina virtual, Azure la elimina. Dicha máquina virtual ya no aparece en el portal de Azure. En Studio, el estado de la máquina virtual cambia a apagado.

Catálogos creados antes del aprovisionamiento a demanda

Si dispone de catálogos de máquinas creados antes de que Citrix Virtual Apps and Desktops ofreciera soporte para el aprovisionamiento a demanda de Azure (mediados de 2017), las máquinas de esos catálogos aparecerán en el portal de Azure independientemente de si se están ejecutando o no. No se puede convertir esas máquinas virtuales en máquinas a demanda.

Para aprovechar las mejoras de rendimiento y los ahorros en costes de almacenamiento que ofrece el aprovisionamiento a demanda, cree catálogos con MCS.

Azure Managed Disks

Azure Managed Disks es un sistema de almacenamiento de disco elástico que puede usar con los catálogos de máquinas creados por MCS, como alternativa al uso de cuentas de almacenamiento convencionales.

La función Managed Disks esconde la complejidad de crear y administrar cuentas de almacenamiento. Proporciona una solución simple y de alta disponibilidad para crear y administrar discos. Puede usar discos administrados como imágenes maestras, así como máquinas virtuales. El uso de discos administrados puede mejorar la creación de catálogos de máquinas y el tiempo de actualización Para obtener más información, consulte Learn about Managed Disks.

De manera predeterminada, un catálogo de máquinas usa discos administrados. Cuando cree un catálogo, puede anular este valor predeterminado.

Usar discos administrados

Cuando se crea un catálogo de máquinas en Studio, la página Imagen maestra del asistente de creación de catálogos ofrece una lista de los discos administrados de Managed Disks, así como las VM y los discos VHD. No todas las regiones de Azure admiten la función Managed Disks para discos administrados. Los discos administrados aparecen en la lista de cualquier región que sea visible para la conexión de host del catálogo.

El tiempo de creación del catálogo se optimiza cuando la imagen y el catálogo se encuentran en la misma región.

La función Managed Disks no ofrece actualmente la función de copia de discos entre regiones de Azure. Al seleccionar una imagen en una región que no sea donde MCS aprovisionará el catálogo, la imagen se copia a un VHD en una cuenta de almacenamiento convencional de la región del catálogo. La imagen aparece en la región del catálogo y, a continuación, se convierte de nuevo en un disco administrado.

En la página Almacenamiento y tipos de licencia del asistente de creación de catálogos, puede seleccionar una casilla de verificación para usar cuentas de almacenamiento convencionales en lugar de discos administrados. Esta casilla de verificación no se puede seleccionar cuando se está aprovisionando en una región de Azure que no admite discos administrados.

Crear una conexión a Azure Resource Manager

Consulte el artículo Conexiones y recursos para obtener información sobre los asistentes que crean conexiones. En los siguientes artículos, se describen datos específicos de las conexiones con Azure Resource Manager.

Consideraciones:

  • Las entidades principales de servicio deben contar con el rol Colaborador para la suscripción.
  • 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.
  • Las cuentas utilizadas para la autenticación deben ser de un coadministrador 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 a tener en cuenta: cuenta profesional o educativa y cuenta personal de Microsoft. Consulte CTX219211 para obtener más información.
  • Puede utilizar una cuenta Microsoft tras agregarla como miembro del directorio de la suscripción. Sin embargo, puede haber complicaciones si al usuario se le concedió previamente acceso de invitado a uno de los recursos del directorio. En ese caso, hay una entrada de marcador de posición en el directorio que no le concederá los permisos necesarios, y se producirá un error.

    Para resolver el problema de acceso, 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 la cuenta.

  • Hay un problema conocido que consiste en que algunas cuentas se detectan como invitados del directorio cuando en realidad son miembros. Las cuentas detectadas como invitados suelen darse con cuentas de directorio establecidas más antiguas. 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 contienen recursos de regiones distintas a su propia región. Los grupos de recursos pueden resultar confusos si espera que los recursos se muestren en la región de un grupo de recursos.
  • Su red y subred deben ser lo suficientemente grandes como para alojar la cantidad de máquinas que necesita. El tamaño de la red requiere previsión, pero Microsoft le ayuda a especificar los valores correctos, con orientación sobre la capacidad del espacio de direcciones.

Existen dos métodos para establecer una conexión de host a Azure Resource Manager:

  • Autenticarse en Azure Resource Manager para crear una entidad de servicio.
  • Usar la información de una entidad de servicio anterior para conectarse a Azure Resource Manager

Autenticarse en Azure Resource Manager para crear una entidad de servicio

Antes de comenzar, compruebe que:

  • Tiene una cuenta de usuario en el arrendatario de su suscripción de Azure Active Directory.
  • Con la cuenta de usuario de Azure AD, también se coadministra la suscripción de Azure que quiera usar para aprovisionar recursos.

En la instalación del sitio o en el asistente Agregar conexión y recursos:

  1. En la página Conexión, seleccione el tipo de conexión Microsoft Azure. Luego, seleccione su entorno Azure Cloud.
  2. En la página Detalles de conexión, escriba su ID de suscripción de Azure y un nombre para la conexión. El nombre de conexión puede contener de 1 a 64 caracteres, y no puede contener solo espacios en blanco ni caracteres no alfanuméricos. Después de introducir el ID de suscripción y el nombre de la conexión, se habilita el botón Crear nueva.
  3. Escriba el nombre de usuario y la contraseña de la cuenta de Azure Active Directory.
  4. Haga clic en Iniciar sesión.
  5. Haga clic en Aceptar para conceder a Citrix Virtual Apps and Desktops los permisos mostrados. Citrix Virtual Apps and Desktops crea una entidad de servicio que le permite administrar los recursos de Azure Resource Manager en nombre del usuario especificado.
  6. Después de hacer clic en Aceptar, volverá a la página Conexión en Studio. Tenga en cuenta que, cuando se autentica correctamente en Azure, los botones Crear nueva y Usar existente se reemplazan por Conectado y una marca de verificación verde indica una conexión establecida a la suscripción de Azure.
  7. Indique las herramientas a utilizar para crear las máquinas virtuales y, a continuación, haga clic en Siguiente. No puede pasar de esta página del asistente hasta que se autentique correctamente en Azure y acepte conceder los permisos necesarios.
  8. Los recursos constituyen la región y la red.

    • En la página Región, seleccione una región.
    • En la página Red, escriba un nombre de recurso de 1 a 64 caracteres para identificar más fácilmente la combinación de región y red en Studio. Un nombre de recurso no puede contener solo espacios en blanco ni caracteres no alfanuméricos.
    • Seleccione una combinación de red virtual y recurso de grupo. Dado que puede tener más de una red virtual con el mismo nombre, el emparejamiento del nombre de red con el grupo de recursos proporciona combinaciones únicas. Si selecciona una región de la página anterior que no tenga redes virtuales, volverá a esa página. Seleccione una región que tenga redes virtuales.
  9. Complete el asistente.

Usar la información de una entidad de servicio anterior para conectarse a Azure Resource Manager

Para crear manualmente una entidad de servicio, conéctese a su suscripción de Azure Resource Manager y use los cmdlets de PowerShell que se proporcionan en la siguiente sección.

Requisitos previos:

  • $SubscriptionId: SubscriptionID de Azure Resource Manager perteneciente a la suscripción donde quiere aprovisionar los agentes VDA.
  • $AADUser: Cuenta de usuario de Azure AD perteneciente al arrendatario de su suscripción de AD. Convierta al usuario $AADUser en el coadministrador de su suscripción.
  • $ApplicationName: Nombre de la aplicación que se va a crear en Azure AD.
  • $ApplicationPassword: Contraseña para la aplicación. Usará esta contraseña como secreto de la aplicación cuando cree la conexión de host.

Para crear una entidad de servicio:

  1. Conéctese a su suscripción de Azure Resource Manager.

    Login-AzureRmAccount

  2. Seleccione la suscripción de Azure Resource Manager donde crear la entidad principal de servicio.

    Select-AzureRmSubscription -SubscriptionID $SubscriptionId

  3. Cree la aplicación en su arrendatario de AD.

    $AzureADApplication = New-AzureRmADApplication -DisplayName $ApplicationName -HomePage "https://localhost/$ApplicationName" -IdentifierUris https://$ApplicationName -Password $ApplicationPassword

  4. Cree una entidad principal de servicio.

    New-AzureRmADServicePrincipal -ApplicationId $AzureADApplication.ApplicationId

  5. Asigne un rol a la entidad principal de servicio.

    New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $AzureADApplication.ApplicationId –scope /subscriptions/$SubscriptionId

  6. 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.

En la instalación del sitio o en el asistente Agregar conexión y recursos:

  1. En la página Conexión, seleccione el tipo de conexión Microsoft Azure y su entorno de Azure.
  2. En la página Detalles de conexión, escriba su ID de suscripción de Azure y un nombre para la conexión. El nombre de conexión puede contener de 1 a 64 caracteres, y no puede contener solo espacios en blanco ni caracteres no alfanuméricos.
  3. Haga clic en Usar existente. Introduzca el ID de suscripción, el nombre de suscripción, la URL de autenticación, la URL de administración, el sufijo de almacenamiento, el ID de Active Directory o el ID del arrendatario, el ID de aplicación y el secreto de aplicación para la entidad de servicio existente. Después de introducir la información, se habilitará el botón Aceptar. Haga clic en Aceptar.
  4. Indique las herramientas a utilizar para crear las máquinas virtuales y, a continuación, haga clic en Siguiente. Se utilizará la información que haya proporcionado sobre la entidad de servicio para conectarse a su suscripción de Azure (no puede pasar de esta página del asistente hasta que proporcione información válida para la opción Usar existente).
  5. Los recursos constituyen la región y la red.

    • En la página Región, seleccione una región.
    • En la página Red, escriba un nombre de recursos de 1 a 64 caracteres para identificar más fácilmente la combinación de región y red en Studio. Un nombre de recurso no puede contener solo espacios en blanco ni caracteres no alfanuméricos.
    • Seleccione una combinación de red virtual y recurso de grupo. Dado que puede tener más de una red virtual con el mismo nombre, emparejar un nombre de red con un grupo de recursos ofrece combinaciones únicas. Si ha seleccionado una región que no tiene redes virtuales en la página anterior, debe volver a esa página y seleccionar una región que las tenga.
  6. Complete el asistente.

Crear un catálogo de máquinas con una imagen maestra de Azure Resource Manager

Esta información complementa a las instrucciones del artículo Crear catálogos de máquinas.

Una imagen maestra es la plantilla que se usa para crear las máquinas virtuales en un catálogo de máquinas. Antes de crear el catálogo de máquinas, cree una imagen maestra en Azure Resource Manager. Para obtener información acerca de las imágenes maestras en general, consulte el artículo “Crear catálogos de máquinas”.

Al crear un catálogo de máquinas en Studio:

  • Las páginas Sistema operativo y Administración de máquinas no contienen información específica de Azure. Siga las instrucciones que se indican en Crear catálogos de máquinas.
  • En la página Imagen maestra, seleccione un grupo de recursos. Vaya a los contenedores del disco duro virtual (VHD) de Azure que quiere usar como imagen maestra. El VHD debe tener instalado un VDA de Citrix. Si el VHD está asignado a una VM, la VM debe estar detenida.
  • La página Tipos de licencia y almacenamiento solo aparecerá cuando se use una imagen maestra de Azure Resource Manager.

    Seleccione un tipo de almacenamiento: Estándar o Premium. El tipo de almacenamiento influye en el tamaño de las máquinas que se ofrecen en la página Máquinas virtuales del asistente. Ambos tipos de almacenamiento realizan varias copias sincrónicas de los datos en un único centro de datos. Para obtener más información acerca de los tipos de almacenamiento y la replicación de almacenamiento de Azure, consulte lo siguiente:

    Seleccione si utilizar las licencias locales (“on-premises”) existentes de Windows Server. Al utilizarlas con las imágenes locales (“on-premises”) existentes de Windows Server se usa Azure Hybrid Use Benefits (HUB). Encontrará más información detallada en https://azure.microsoft.com/pricing/hybrid-use-benefit/.

    Usar un HUB reduce los costes de ejecutar máquinas virtuales en Azure a la ratio de procesamiento básica. Elimina el precio de licencias adicionales de Windows Server de la galería de Azure. Debe traer sus imágenes locales de Windows Server a Azure para usar HUB. No se admiten las imágenes de la galería de Azure. Las licencias locales de clientes Windows no se admiten en este momento.

    Compruebe si las máquinas virtuales aprovisionadas están utilizando correctamente HUB. Ejecute el comando de PowerShell Get-AzureRmVM -ResourceGroup MyResourceGroup -Name MyVM y compruebe que el tipo de licencia es Windows_Server. Encontrará instrucciones adicionales en https://docs.microsoft.com/en-us/azure/virtual-machines/windows/hybrid-use-benefit-licensing/.

  • En la página Máquinas virtuales, indique la cantidad de máquinas virtuales que quiere crear; debe especificar al menos una. Seleccione un tamaño de máquina. Después de crear un catálogo de máquinas, no se puede cambiar el tamaño de máquina. Si, más adelante, quiere otro tamaño, elimine el catálogo y cree uno que utilice la misma imagen maestra; especifique entonces el tamaño de máquina pertinente.

    Los nombres de máquina virtual no pueden contener caracteres no ASCII o ni caracteres especiales.

  • (Cuando se usa Machine Creation Services) En la página Grupos de recursos, elija si quiere crear grupos de recursos o usar los grupos existentes.

    Si opta por crear grupos de recursos, haga clic en Siguiente.

    Si decide utilizar los grupos de recursos existentes, seleccione esos grupos en la lista Grupos de recursos de aprovisionamiento disponibles. Debe seleccionar grupos suficientes para las máquinas que está creando en el catálogo. Studio muestra un mensaje si selecciona demasiado pocas. Puede seleccionar más del mínimo requerido de máquinas si va a agregar más máquinas al catálogo más tarde. No se puede agregar más grupos de recursos a un catálogo una vez creado el catálogo.

    Para obtener más información, consulte Grupos de recursos de Azure (#azure-resource-groups).

  • Las páginas Tarjetas de red, Cuentas de equipo y Resumen no contienen información específica de Azure. Siga las instrucciones que se indican en Crear catálogos de máquinas.

Complete el asistente.

Eliminar catálogos de máquinas

Cuando se elimina un catálogo de máquinas de Azure Resource Manager, las máquinas y los grupos de recursos asociados se eliminan de Azure, incluso aunque indique que deben conservarse.

Grupos de recursos de Azure

Los grupos de recursos de aprovisionamiento de Azure ofrecen una manera de aprovisionar las VM que proporcionan escritorios y aplicaciones a los usuarios. Puede agregar grupos de recursos de Azure vacíos existentes cuando cree un catálogo de máquinas con MCS en Studio. También puede decidir que se creen otros grupos de recursos.

Para obtener información acerca de los grupos de recursos de Azure, consulte la documentación de Microsoft.

Requisitos

  • Cada grupo de recursos puede contener 240 máquinas virtuales como máximo. Debe haber suficientes grupos de recursos vacíos disponibles en la región donde está creando el catálogo. Si quiere utilizar los grupos de recursos existentes cuando cree un catálogo de máquinas, debe seleccionar suficientes grupos disponibles para admitir la cantidad de máquinas que se van a crear en el catálogo. Por ejemplo, si especifica 500 máquinas en el asistente de creación de catálogos, seleccione al menos tres grupos de recursos de aprovisionamiento disponibles.

    No se puede agregar grupos de recursos a un catálogo de máquinas una vez creado el catálogo. Sin embargo, puede agregar los grupos de recursos suficientes como para admitir las máquinas que pueda agregar al catálogo más tarde.

  • Cree grupos de recursos vacíos en la misma región que su conexión de host.
  • Si quiere tener grupos de recursos nuevos para cada catálogo de MCS, configure la entidad de servicio Azure asociada a la conexión de host. Esta entidad debe tener permiso para crear y eliminar grupos de recursos. Si quiere que se utilicen los grupos de recursos vacíos existentes, la entidad de servicio Azure asociada a la conexión de host debe tener el permiso Colaborador en esos grupos de recursos vacíos.
  • Cuando crea una conexión de host en Studio mediante la opción Crear nuevo, la entidad principal de servicio creada tiene los permisos de colaborador con el ámbito de suscripción. Como alternativa, puede usar la opción Usar existente para crear la conexión y proporcionar los datos de una entidad principal de servicio existente con el ámbito de suscripción. Utilice la opción Crear nuevo para crear la entidad principal de servicio en Studio. La entidad principal tiene los permisos necesarios para crear y eliminar grupos de recursos o aprovisionar a grupos de recursos vacíos existentes.
  • Las entidades de servicio con ámbito restringido deben crearse mediante PowerShell. Además, cuando se usa a una entidad de servicio con ámbito restringido, debe usar PowerShell o el portal de Azure para crear grupos de recursos vacíos destinados a cada catálogo donde MCS aprovisionará las máquinas virtuales.

    Si utiliza una entidad de servicio con un ámbito restringido para la conexión de host, pero el grupo de recursos de la imagen maestra no aparece en la página Imagen maestra del asistente de creación de catálogos, probablemente es porque esa entidad no tiene el permiso Microsoft.Resources/subscriptions/resourceGroups/read para poder mostrar el grupo de recursos de la imagen maestra. Cierre el asistente, actualice la entidad de servicio para concederle el permiso (consulte la entrada del blog para obtener instrucciones) y, a continuación, reinicie el asistente. En Azure, la actualización puede tardar hasta 10 minutos en aparecer en Studio.

Acerca de las entidades principales de servicio de Azure

Para aprovisionar máquinas en Azure Resource Manager, se debe conceder acceso a un plug-in a su suscripción de Azure. Esos permisos se conceden a través de una entidad de servicio a la que se han asignado permisos a los recursos pertinentes de Azure. Una entidad principal de servicio cumple el mismo propósito básico que una cuenta de usuario. Proporciona al complemento una identidad de Azure Active Directory que proporciona credenciales para la autenticación y permisos para recursos de Azure. Al igual que las cuentas de usuario, las entidades principales de servicio se configuran mediante control de acceso por roles (RBAC).

Dependiendo de cómo se definan los permisos, las entidades principales de servicio se clasifican como:

  • entidades principales de servicio con ámbito de suscripción, o bien

  • entidades principales de servicio con ámbito restringido

Entidades principales de servicio con ámbito de suscripción

Las entidades principales de servicio con ámbito de suscripción tienen permisos de colaborador en todos los recursos de la suscripción, lo que facilita su creación y administración. Citrix Studio automatiza el proceso de creación de entidades principales de servicio con ámbito de suscripción, o se pueden crear manualmente en PowerShell. Estas entidades principales permiten a Azure Resource Manager Plugin crear grupos de recursos de Azure y automatizar completamente la administración de recursos. La desventaja es que el complemento tiene permisos para recursos de la suscripción que no están relacionados con los recursos que dicho complemento tiene la tarea de administrar.

El uso del rol colaborador permite al complemento crear, eliminar, leer y escribir todos los recursos de la suscripción. Los permisos no se extienden a los objetos de Azure Active Directory ni se permite a las entidades principales de servicio con ámbito de suscripción conceder acceso a los recursos a otros usuarios o entidades principales de servicio.

Entidades principales de servicio con ámbito restringido

Las entidades principales de servicio con ámbito restringido permiten a Azure Resource Manager Plugin acceder a un conjunto limitado de recursos definidos por usted. Azure requiere permisos de ámbito de suscripción para crear grupos de recursos. El complemento no puede crear grupos de recursos cuando se utilizan entidades principales de servicio con ámbito restringido. Además de las entidades principales de servicio, debe proporcionar una agrupación de grupos de recursos para cada catálogo en el que se van a aprovisionar las máquinas.

Citrix Studio no admite la creación de catálogos o entidades principales de servicio con ámbito restringido. Ambas tareas deben realizarse con PowerShell. Sin embargo, una vez creado un catálogo, se puede administrar como cualquier otro catálogo de Studio, incluidas la agregación y eliminación de máquinas. Si en algún momento desea utilizar una entidad principal de servicio con ámbito restringido existente con una nueva agrupación de grupos de recursos, debe agregar explícitamente permisos a la entidad principal de servicio con PowerShell.

Definición de los requisitos de acceso a la suscripción de Azure

En las técnicas y ejemplos de las siguientes secciones se muestran requisitos comunes, lo que implica cambios para sus circunstancias particulares.

Considere la posibilidad de utilizar una entidad de servicio con ámbito de suscripción si:

  • Busca la experiencia de administración más sencilla.

  • Desea evitar el uso de PowerShell y administrar todo en Citrix Studio.

  • Su suscripción a Azure es para una única instancia de Citrix Virtual Apps and Desktops Service.

  • Está realizando una prueba de concepto de instalación de Citrix Virtual Apps and Desktops.

  • Sus administradores de Citrix Virtual Apps and Desktops tienen acceso de colaborador en el ámbito de suscripción de Azure.

Considere la posibilidad de utilizar una entidad de servicio con ámbito restringido si:

  • Su suscripción a Azure aloja varios servicios no relacionados.

  • Sus administradores de Azure tienen permisos de suscripción diferentes en función de su rol.

  • Su empresa tiene estándares de seguridad que requieren un control de acceso preciso.

  • Cuenta con un proceso para crear entidades principales de servicio con ámbito restringido.

Sugerencia:

Puede crear suscripciones secundarias que se facturan como parte de su suscripción principal y hacen referencia a la instancia de Azure Active Directory predeterminada en su suscripción principal. Esta configuración proporciona otro mecanismo para controlar el acceso a recursos no relacionados.

Planificación de un catálogo de entidades principales de servicio con ámbito restringido

Antes de crear un catálogo de entidades principales de servicio con ámbito restringido, decida cuántos grupos de recursos se necesitan para alojar el número inicial y futuro de máquinas virtuales. Debido a una limitación de Machine Creation Services, no es posible agregar grupos de recursos una vez creado un catálogo.

Aprovisionar un catálogo por agrupación de grupos de recursos

Azure Resource Manager Plugin crea la infraestructura necesaria en cada grupo de recursos. El grupo de recursos consta de cuentas de almacenamiento, grupos de seguridad, interfaces de red, máquinas virtuales, etc. Las cuentas de almacenamiento se crean, si es necesario, al agregar máquinas al catálogo. Esto significa que el tamaño de un catálogo puede crecer hasta un límite superior establecido por el tamaño de la agrupación de grupos de recursos y las cuotas de suscripción a Azure. Una vez creada una cuenta de almacenamiento, no se elimina hasta que se elimina el catálogo. Puesto que cualquier máquina virtual se puede eliminar, es posible que haya cuentas de almacenamiento vacías. Este caso es infrecuente, ya que las máquinas virtuales tienden a distribuirse aleatoriamente entre las cuentas de almacenamiento disponibles. Las máquinas deben seleccionarse tediosamente inspeccionando el contenido de las cuentas de almacenamiento para vaciar deliberadamente una cuenta de almacenamiento.

Azure limita el número de máquinas virtuales de un grupo de recursos a 800, pero Azure Resource Manager Plugin utiliza una medida diferente. Un disco de Azure estándar tiene un límite de 500 operaciones de E/S por segundo (IOPS), y una cuenta de almacenamiento estándar tiene un límite de 20 000. Por esta razón, el plug-in no aprovisiona una cuenta de almacenamiento con más de 40 máquinas. Este límite se aplica tanto al almacenamiento estándar como al almacenamiento premium. Además, el plug-in no crea no más de 19 cuentas de almacenamiento en un grupo de recursos.

Por lo tanto, la fórmula básica para calcular el número de grupos de recursos en función del número máximo de máquinas es:

Número de grupos de recursos = límite máximo (Número máximo de máquinas / (40 * 19))

Azure Resource Manager Plugin asume que tiene uso exclusivo de la agrupación de grupos de recursos. No hay recursos creados por el usuario en ninguno de los grupos de recursos especificados.

Conceptos básicos del control de acceso por roles de Azure (RBAC).

El acceso a los recursos de Azure se concede asignando un rol RBAC a una entidad principal de servicio en un ámbito determinado. El ámbito puede ser una suscripción, un grupo de recursos o un recurso específico. Los recursos se organizan en una jerarquía de contención, y los permisos definidos por el rol se aplican a todos los recursos situados bajo el ámbito correspondiente. Un rol aplicado en una suscripción se aplica a todos los recursos de la suscripción. Un rol aplicado a un grupo de recursos se aplica a todos los recursos contenidos en el grupo de recursos.

Una implicación de la jerarquía de recursos de Azure es que solo las entidades principales de servicio con permisos de ámbito de suscripción pueden crear grupos de recursos. Esto no es ideal porque impide que aplicaciones como el plug-in creen grupos de recursos a demanda para un grupo lógico y administren recursos (a no ser que tengan amplios permisos en toda la suscripción).

Azure tiene una gran selección de roles integrados y también admite la definición de roles personalizados. Consulte los Roles personalizados para recursos de Azure para obtener más información sobre los roles personalizados en control de acceso por roles de Azure.

Creación de una entidad principal de servicio con ámbito de suscripción

En este ejemplo, se muestra cómo crear una entidad principal de servicio con ámbito de suscripción. Los detalles se pueden usar para crear una conexión de Azure en Citrix Studio. Puede optar por el uso de una entidad principal de servicio existente, o bien crear una conexión de Azure manualmente en PowerShell.

param(
[string]$applicationName = "SubscriptionScopeSP",
[Parameter(Mandatory=$true)][string]$applicationPassword,
[Parameter(Mandatory=$true)][string]$subscriptionId
)

$application = New-AzureRmADApplication -DisplayName $applicationName -HomePage "https://localhost/$applicationName" `
-IdentifierUris "https://$applicationName" -Password $applicationPassword

New-AzureRmADServicePrincipal -ApplicationId $application.ApplicationId

# Wait for the service principal to become available
Start-Sleep -s 60

New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $application.ApplicationId `
-scope "/subscriptions/$subscriptionId"

Write-Host ("Application ID: " + $application.ApplicationId)
<!--NeedCopy-->

Creación de una entidad principal de servicio básica con ámbito restringido

En esta sección se describe el proceso para crear la entidad principal de servicio con ámbito restringido más simple posible, donde los permisos se asignan en el ámbito del grupo de recursos.

Azure Resource Manager Plugin necesita permiso para los siguientes recursos:

  1. El VHD de la imagen maestra

  2. La red virtual de las máquinas

  3. Los grupos de recursos en los que se van a aprovisionar las máquinas

Para simplificar el script, asumimos que el acceso de colaborador se puede conceder en el ámbito del grupo de recursos. Azure Resource Manager Plugin tiene permisos de colaborador en el grupo de recursos donde se almacena el VHD de la imagen, el grupo de recursos que contiene la red virtual y la agrupación de grupos de recursos donde se aprovisionan las máquinas.

param(
[string]$applicationName = "BasicNarrowScopeSP",
[Parameter(Mandatory=$true)][string]$applicationPassword,
[Parameter(Mandatory=$true)][string]$subscriptionId,
[Parameter(Mandatory=$true)][string[]]$resourceGroups
)

$application = New-AzureRmADApplication -DisplayName $applicationName -HomePage "https://localhost/$applicationName" `
-IdentifierUris "https://$applicationName" -Password $applicationPassword

New-AzureRmADServicePrincipal -ApplicationId $application.ApplicationId

# Wait for the service principal to become available
Start-Sleep -s 60

New-AzureRmRoleAssignment -RoleDefinitionName Citrix-Network-Usage-Reader -ServicePrincipalName $application.ApplicationId `
-scope "/subscriptions/$subscriptionId/"

foreach ($rg in $resourceGroups)
{
  New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $application.ApplicationId `
  -scope "/subscriptions/$subscriptionId/resourcegroups/$rg"
}

Write-Host ("Application ID: " + $application.ApplicationId)
<!--NeedCopy-->

Crear una entidad principal de servicio con ámbito restringido mediante roles personalizados

Azure incluye un amplio conjunto de roles RBAC integrados. Citrix utiliza el rol colaborador de la sección anterior. Como se señaló, eso concedía a Azure Resource Manager Plugin permisos ligeramente más amplios que los estrictamente necesarios. En esta sección, se define un rol personalizado y se limita aún más el acceso. Si lo prefiere, el acceso se puede bloquear mediante más roles personalizados y con la aplicación de roles directamente a la imagen y a los recursos de red.

Nota:

Los permisos necesarios están sujetos a cambios.

Utilice los siguientes permisos para definir un rol personalizado para conceder acceso a la red virtual y a la imagen maestra en el ámbito del grupo de recursos.

El VHD de la imagen maestra.

Para la creación de catálogos:

  • Microsoft.Storage/storageAccounts/read

  • Microsoft.Storage/storageAccounts/listKeys/action

Para compatibilidad futura con Citrix Studio:

  • Microsoft.Resources/subscriptions/resourceGroups/read

La red virtual de las máquinas:

  • Microsoft.Network/virtualNetworks/read

  • Microsoft.Network/virtualNetworks/subnets/join/action

Los grupos de recursos para máquinas aprovisionadas.

Podemos crear otro rol personalizado con los siguientes permisos, pero, para mantener el ejemplo simple, continuaremos utilizando el rol Colaborador para los grupos de recursos de máquina. Estos grupos de recursos no contienen recursos que no se hayan creado con Azure Resource Manager Plugin. El rol colaborador hace menos probable que los cambios en el plug-in requieran cambios en la entidad principal de servicio:

  • Microsoft.Compute/virtualMachines/*

  • Microsoft.Network/networkInterfaces/*

  • Microsoft.Network/networkSecurityGroups/*

  • Microsoft.Resources/deployments/*

  • Microsoft.Resources/subscriptions/resourceGroups/read

  • Microsoft.Storage/storageAccounts/*

  • Microsoft.Storage/storageAccounts/listKeys/action

Roles de acceso personalizado de Citrix Virtual Apps and Desktops.

Crear un rol personalizado definiéndolo primero en JSON:

{
  "Name": "Citrix-Custom-Reader",
  "Description": "Grants access to Citrix XenDesktop images and virtual networks.",
  "Actions": [
    "Microsoft.Storage/storageAccounts/read",
    "Microsoft.Storage/storageAccounts/listKeys/action",
    "Microsoft.Network/virtualNetworks/read",
    "Microsoft.Network/virtualNetworks/subnets/join/action"
  ],
  "NotActions": [
  ],
  "AssignableScopes": [
    "/subscriptions/<YOUR-SUBSCRIPTION-ID>"
  ]
}
<!--NeedCopy-->

Crear el rol haciendo referencia a la definición JSON:

New-AzureRmRoleDefinition -InputFile citrix-custom-reader.json
<!--NeedCopy-->

Usar el nuevo rol personalizado al crear una entidad principal de servicio:

param(
[string]$applicationName = "NarrowScopeSP",
[Parameter(Mandatory=$true)][string]$applicationPassword,
[Parameter(Mandatory=$true)][string]$subscriptionId,
[Parameter(Mandatory=$true)][string[]]$machineResourceGroups,
[Parameter(Mandatory=$true)][string]$imageResourceGroup,
[Parameter(Mandatory=$true)][string]$networkResourceGroup
)

$application = New-AzureRmADApplication -DisplayName $applicationName -HomePage "https://localhost/$applicationName" `
-IdentifierUris "https://$applicationName" -Password $applicationPassword

New-AzureRmADServicePrincipal -ApplicationId $application.ApplicationId

# Wait for the service principal to become available
Start-Sleep -s 60

New-AzureRmRoleAssignment -RoleDefinitionName Citrix-Network-Usage-Reader -ServicePrincipalName $application.ApplicationId `
-scope "/subscriptions/$subscriptionId/"

foreach ($rg in $machineResourceGroups)
{
  New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $application.ApplicationId `
  -scope "/subscriptions/$subscriptionId/resourcegroups/$rg"
}

New-AzureRmRoleAssignment -RoleDefinitionName Citrix-Custom-Reader -ServicePrincipalName $application.ApplicationId `
-scope "/subscriptions/$subscriptionId/resourcegroups/$imageResourceGroup"

New-AzureRmRoleAssignment -RoleDefinitionName Citrix-Custom-Reader -ServicePrincipalName $application.ApplicationId `
-scope "/subscriptions/$subscriptionId/resourcegroups/$networkResourceGroup"

Write-Host ("Application ID: " + $application.ApplicationId)
<!--NeedCopy-->

Creación de conexiones de Azure para Citrix Virtual Apps and Desktops.

Es razonable crear una conexión de Azure para Citrix Virtual Apps and Desktops en Citrix Studio con una entidad principal de servicio existente. Es igualmente razonable crear la conexión en PowerShell.

A continuación, se muestra un ejemplo de cómo crear una conexión en PowerShell:

param(
[string]$connectionName = "AzureConnection",
[Parameter(Mandatory=$true)][string]$applicationId,
[Parameter(Mandatory=$true)][string]$applicationPassword,
[Parameter(Mandatory=$true)][string]$subscriptionId,
[Parameter(Mandatory=$true)][string]$subscriptionName,
[Parameter(Mandatory=$true)][string]$tenantId
)

Add-PsSnapin Citrix*

$customProperties = @"
<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/"/>
 <Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/"/>
 <Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net"/>
 <Property xsi:type="StringProperty" Name="TenantId" Value="$tenantId"/>
 <Property xsi:type="StringProperty" Name="SubscriptionId" Value="$subscriptionId"/>
 <Property xsi:type="StringProperty" Name="SubscriptionName" Value="$subscriptionName"/>
</CustomProperties>
"@

$connection = New-Item -ConnectionType "Custom" -CustomProperties $customProperties -HypervisorAddress @("https://management.azure.com/") `
-Path @("XDHyp:\Connections$connectionName") -Persist -PluginId "AzureRmFactory" -Scope @() `
-SecurePassword (ConvertTo-SecureString -AsPlainText -Force $applicationPassword) -UserName $applicationId

New-BrokerHypervisorConnection -HypHypervisorConnectionUid $connection.HypervisorConnectionUid

<!--NeedCopy-->

En este punto, agregue recursos a la conexión, a través de Studio o en PowerShell.

Crear catálogos para Citrix Virtual Apps and Desktops.

En el ejemplo siguiente, se utilizan los complementos de Citrix PowerShell para crear un catálogo de Citrix Virtual Apps and Desktops.

Dado que las entidades principales de servicio con ámbito restringido no permiten que Azure Resource Manager Plugin cree grupos de recursos, deberá:

  1. Crear una agrupación de grupos de recursos.

  2. Asignar los permisos de entidad principal de servicio en todos los grupos de recursos de la agrupación.

  3. Enumerar cada grupo de recursos de la agrupación en una propiedad personalizada al crear el esquema de aprovisionamiento.

La propiedad personalizada se denomina ResourceGroups y el valor es una lista separada por comas de nombres de grupos de recursos. En el siguiente ejemplo, se muestra un ejemplo de cómo definir esta propiedad personalizada.

Nota:

En la propiedad personalizada, solo se muestran los grupos de recursos destinados a las máquinas. No se incluyen uno o más grupos de recursos donde se encuentran la imagen o la red virtual. Si se especifican, Azure Resource Manager Plugin intenta aprovisionar máquinas en esos grupos de recursos, lo que puede provocar algún comportamiento no deseado.

En este ejemplo, las máquinas se aprovisionan en dos grupos de recursos denominados xd-sales-1 y xd-sales-2:

Add-PsSnapin Citrix*

# The hosting unit name is the name of the Azure connection resources that should be used for this catalog
$hostingUnitName = "AzureHostingUnit"
$domain = "citrix.local"
$controllerAddress = ("ddc." + $domain)
$adminAddress = ($controllerAddress + ":80")
$catalogName = "catalog-name"
$network = "network-resource-group.resourcegroup\network-name"
$subnet = "subnet-name"
$serviceOffering = "Standard_A4"
$template = "image-resource-group.resourcegroup\imagestorage.storageaccount\images.container\image-name.vhd"

$customProperties = @" <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Property xsi:type="StringProperty" Name="StorageAccountType" Value="Standard_LRS" />
    <Property xsi:type="StringProperty" Name="ResourceGroups" Value="xd-sales-1, xd-sales-2" />
</CustomProperties>
"@

$identityPool = New-AcctIdentityPool -AdminAddress $adminAddress -AllowUnicode -Domain $domain `
    -IdentityPoolName $catalogName -NamingScheme "vm-#" -NamingSchemeType "Numeric" -Scope @()

$brokerCatalog = New-BrokerCatalog -AdminAddress $adminAddress -AllocationType "Random" -IsRemotePC $False `
    -MinimumFunctionalLevel "L7_9" -Name $catalogName -PersistUserChanges "Discard" -ProvisioningType "MCS" -Scope @() `
    -SessionSupport "MultiSession"

Write-Host $brokerCatalog

$provScheme = New-ProvScheme -AdminAddress $adminAddress -CleanOnBoot -CustomProperties $customProperties `
    -HostingUnitName $hostingUnitName -IdentityPoolName $catalogName `
    -MasterImageVM "XDHyp:\HostingUnits$hostingUnitName\image.folder$template.vhd" `
    -NetworkMapping @{"0"="XDHyp:\HostingUnits$hostingUnitName\virtualprivatecloud.folder$network.virtualprivatecloud$subnet.network"} `
    -ProvisioningSchemeName $catalogName -Scope @() -SecurityGroup @() `
    -ServiceOffering "XDHyp:\HostingUnits$hostingUnitName\serviceoffering.folder$serviceOffering.serviceoffering"

Write-Host $provScheme

Set-BrokerCatalog -AdminAddress $adminAddress -Name $catalogName -ProvisioningSchemeId $provScheme.ProvisioningSchemeUid

Add-ProvSchemeControllerAddress -AdminAddress $adminAddress.com -ControllerAddress $controllerAddress -ProvisioningSchemeName $catalogName
<!--NeedCopy-->

En este punto, puede actualizar la página del catálogo en Citrix Studio, agregar máquinas y administrar máquinas, como con cualquier otro catálogo.

Configurar grupos de recursos para un catálogo de máquinas en Studio

En la página Grupos de recursos del asistente de creación de catálogos, puede elegir si crear grupos de recursos o usar los existentes. Consulte Crear un catálogo de máquinas con una imagen maestra de Azure Resource Manager.

Qué ocurre con los grupos de recursos cuando se elimina un catálogo de máquinas:

  • Si permite que Citrix Virtual Apps and Desktops cree grupos de recursos cuando usted crea el catálogo de máquinas y, posteriormente, elimina ese catálogo, esos grupos de recursos y todos los recursos en esos grupos también se eliminan.

  • Si usa grupos de recursos existentes cuando cree el catálogo de máquinas y, posteriormente, elimina ese catálogo, todos los recursos en esos grupos de recursos se eliminan, pero los grupos en sí se conservan.

Consideraciones, limitaciones y solución de problemas

Cuando se usan grupos de recursos existentes, la lista de los grupos de recursos disponibles en la página “Grupos de recursos” del asistente de creación de catálogos no se actualiza automáticamente. Por lo tanto, si tiene abierta esa página del asistente mientras crea o agrega permisos a los grupos de recursos en Azure, esos cambios no se reflejan en la lista del asistente. Para ver los cambios más recientes, dispone de dos opciones: volver a la página Administración de máquinas del asistente y volver a seleccionar los recursos asociados a la conexión de host, o cerrar y reiniciar el asistente. Pueden pasar hasta 10 minutos hasta que los cambios realizados en Azure aparezcan en Studio.

Un grupo de recursos debería utilizarse en un solo catálogo de máquinas. No obstante, esto no se aplica. Por ejemplo, se seleccionan 10 grupos de recursos al crear un catálogo, pero solo se crea una máquina en el catálogo. Nueve de los grupos de recursos seleccionados permanecen vacíos una vez creado el catálogo. Puede que tenga la intención de usarlos para expandir su capacidad en el futuro, por lo que permanecen asociados a ese catálogo. No se puede agregar grupos de recursos a un catálogo una vez creado el catálogo, así que es sensato planificar para el futuro durante la creación del catálogo. Sin embargo, si se crea otro catálogo, esos nueve grupos de recursos aparecerán en la lista de grupos disponibles. Actualmente Citrix Virtual Apps and Desktops no realiza ningún seguimiento de qué grupos de recursos se asignan a qué catálogos. Supervisar esa asignación recae sobre usted.

Si la conexión utiliza una entidad de servicio que puede acceder a los grupos de recursos vacíos que se encuentran en varias regiones, todos aparecerán en la lista de grupos disponibles. Debe seleccionar los grupos de recursos de la misma región donde crea el catálogo de máquinas.

Solución de problemas:

  • Los grupos de recursos no aparecen en la lista de la página “Grupos de recursos” en el asistente de creación de catálogos.

    La entidad principal de servicio debe tener los permisos adecuados aplicados a los grupos de recursos que quiera que aparezcan en la lista. Consulte la sección anterior de requisitos.

  • Al agregar máquinas a un catálogo de máquinas creado previamente, no se aprovisionan todas las máquinas.

    Después de crear un catálogo, cuando más adelante agregué máquinas a ese catálogo, no exceda la capacidad de máquinas por grupo de recursos originalmente seleccionada para el catálogo (240 por grupo). No se puede agregar grupos de recursos una vez creado el catálogo. Si intenta agregar más máquinas de las que pueden admitir los grupos de recursos existentes, el aprovisionamiento falla.

    Por ejemplo, crea un catálogo de máquinas con 300 VM y 2 grupos de recursos. Los grupos de recursos pueden admitir hasta 480 máquinas virtuales (240 multiplicado por 2). Si más adelante intenta agregar 200 VM al catálogo, lo que supera la capacidad de los grupos de recursos (300 VM actuales + 200 VM nuevas = 500, pero los grupos de recursos pueden contener solo 480 VM).

Más información

Entornos de virtualización de Microsoft Azure Resource Manager