Citrix Virtual Apps and Desktops

Environnements de virtualisation Microsoft Azure Resource Manager

Suivez ce guide si vous utilisez Microsoft Azure Resource Manager pour provisionner des machines virtuelles dans votre déploiement.

Vous devriez vous familiariser avec les informations suivantes :

Limitations

Tenez compte de la limitation suivante lors de l’utilisation d’Azure Resource Manager :

  • Ce produit ne prend pas en charge les VDA dans un environnement de bureau virtuel Windows (WVD). Pour la prise en charge WVD, utilisez le service Citrix Virtual Apps and Desktops ou le service Citrix Virtual Apps and Desktops Standard pour Azure.

Provisioning à la demande d’Azure

Lorsque vous utilisez MCS pour créer des catalogues de machines dans Azure Resource Manager, la fonctionnalité de provisioning à la demande d’Azure :

  • Réduit vos coûts de stockage
  • Accélère la création de catalogues
  • Accélère les opérations d’alimentation de machine virtuelle (VM)

Pour l’administrateur, le provisioning à la demande ne modifie pas les procédures de création de connexions hôte et de catalogues de machines MCS de Studio. Les différences résident dans la méthode et le moment auxquels les ressources sont créées et gérées dans Azure et la visibilité des VM dans le portail Azure.

Lorsque MCS a créé un catalogue, les machines virtuelles ont été créées dans Azure pendant le processus de provisioning.

Avec le provisioning à la demande d’Azure, les VM sont créées uniquement lorsque Citrix Virtual Apps and Desktops initie une action d’alimentation, une fois que le provisioning est terminé. Une VM est visible dans le portail Azure uniquement lorsqu’elle est exécutée. (Dans Studio, les VM sont visibles, qu’elles soient exécutées ou non.)

Lorsque vous créez un catalogue MCS, le portail Azure affiche les groupes de ressources, le groupe de sécurité réseau, les comptes de stockage, les interfaces réseau, les images de base et les disques d’identité. Le portail Azure n’affiche pas la VM tant que Citrix Virtual Apps and Desktops n’a pas initié une action d’alimentation pour celle-ci. Ensuite, l’état de la VM dans Studio devient Activé.

  • Pour une machine regroupée, le disque du système d’exploitation et le cache en écriture différée existent uniquement lorsque la VM existe. L’utilisation de machines regroupées peut entraîner des économies de stockage significatives si vous arrêtez régulièrement les machines (par exemple, en dehors des heures de travail).
  • Pour une machine dédiée, le disque du système d’exploitation est créé la première fois que la VM est démarrée. Il reste dans le stockage jusqu’à ce que la machine soit supprimée.

Si vous lancez une action de mise hors tension pour une machine virtuelle, Azure la supprime. La VM n’apparaît plus dans le portail Azure. Dans Studio, l’état de la VM devient Désactivé.

Catalogues créés avant le provisioning à la demande

Si vous disposez de catalogues de machines qui ont été créés avant que Citrix Virtual Apps and Desktops ne prenne en charge le provisioning à la demande d’Azure (mi-2017), les VM dans ces catalogues sont visibles dans le portail Azure qu’elles soient exécutées ou non. Vous ne pouvez pas convertir ces VM en machines à la demande.

Pour bénéficier des améliorations apportées aux performances et des avantages liés aux coûts de stockage du provisioning à la demande, créez des catalogues à l’aide de MCS.

Azure Managed Disks

Azure Managed Disks est un système de stockage sur disque élastique que vous pouvez utiliser avec les catalogues de machines créés avec MCS, comme alternative à l’utilisation de comptes de stockage conventionnels.

La fonctionnalité des disques gérés masque la complexité de la création et de la gestion des comptes de stockage. Elle fournit une solution simple et hautement disponible pour la création et la gestion des disques. Vous pouvez utiliser des disques gérés en tant qu’images principales, en plus des machines virtuelles. L’utilisation de disques gérés peut améliorer la création de catalogues de machines et la durée de mise à jour. Pour plus d’informations, consultez la section En savoir plus sur les disques gérés.

Par défaut, un catalogue de machines utilise des disques gérés. Vous pouvez remplacer ce comportement par défaut lorsque vous créez le catalogue.

Utiliser des disques gérés

Lorsque vous créez un catalogue de machines dans Studio, la page Image principale de l’assistant de création de catalogue répertorie les disques gérés, ainsi que les VM et les disques durs virtuels. Les régions Azure ne prennent pas toutes en charge la fonctionnalité Managed Disks. Les disques gérés apparaissent dans la liste pour toute région visible par la connexion hôte du catalogue.

Le temps de création du catalogue est optimisé lorsque l’image et le catalogue se trouvent dans la même région.

La fonctionnalité Managed Disks ne prend actuellement pas en charge la copie de disques entre les régions Azure. Si vous sélectionnez une image dans une région autre que celle où MCS provisionne le catalogue, l’image est copiée sur un disque dur virtuel dans un compte de stockage conventionnel. L’image apparaît dans la région du catalogue, puis elle est convertie en disque géré.

Dans la page Types de stockage et de licence de l’assistant de création de catalogue, vous pouvez cocher une case pour utiliser des comptes de stockage conventionnels au lieu de disques gérés. Vous ne pouvez pas sélectionner la case à cocher lorsque vous effectuez le provisioning dans une région Azure qui ne prend pas en charge les disques gérés.

Créer une connexion à Azure Resource Manager

L’article Connexions et ressources contient des informations sur les assistants de création d’une connexion. Les informations suivantes traitent d’informations spécifiques aux connexions de Azure Resource Manager.

Notions importantes :

  • Le rôle de contributeur pour l’abonnement doit avoir été accordé aux principaux de service.
  • Lorsque vous créez la première connexion, Azure vous invite à leur accorder les autorisations nécessaires. Vous devrez toujours vous authentifier pour les futures connexions, mais Azure mémorise votre accord préalable et n’affiche plus l’invite.
  • Les comptes utilisés pour l’authentification doivent être des co-administrateurs de l’abonnement.
  • Le compte utilisé pour l’authentification doit être un membre du répertoire de l’abonnement. Il existe deux types de comptes : « Professionnel ou école » et « compte Microsoft personnel ». Consultez l’article CTX219211 pour plus de détails.
  • Vous pouvez utiliser un compte Microsoft existant en l’ajoutant en tant que membre du répertoire de l’abonnement. Cependant, il peut y avoir des complications si l’utilisateur a précédemment obtenu l’accès invité à l’une des ressources du répertoire. Dans ce cas, le répertoire contient une entrée fictive qui ne lui accorde pas les autorisations nécessaires, et une erreur est renvoyée.

    Pour résoudre le problème d’accès, supprimez les ressources du répertoire et ajoutez-les explicitement. Soyez toutefois prudent, car cela a des effets indésirables sur d’autres ressources auxquelles ce compte peut accéder.

  • Il existe un problème connu dans lequel certains comptes sont détectés en tant qu’invités du répertoire alors qu’ils en sont membres. Les comptes détectés comme invités se rencontrent généralement avec d’anciens comptes de répertoire établis. Solution : ajoutez un compte au répertoire, qui prend la valeur d’appartenance appropriée.
  • Les groupes de ressources sont des conteneurs de ressources qui contiennent des ressources provenant de régions autres que leur propre région. Les groupes de ressources peuvent être source de confusion si vous attendez des ressources affichées dans la région d’un groupe de ressources.
  • Assurez-vous que votre réseau et sous-réseau sont suffisamment grands pour héberger le nombre de machines dont vous avez besoin. La taille du réseau nécessite une démarche prospective, mais Microsoft vous permet de spécifier les valeurs correctes, en fournissant des conseils sur la capacité de l’espace d’adressage.

Il existe deux méthodes permettant d’établir une connexion hôte avec Azure Resource Manager :

  • S’authentifier auprès d’Azure Resource Manager pour créer un principal de service
  • Utiliser les détails d’un principal de service créé précédemment pour se connecter à Azure Resource Manager

S’authentifier auprès d’Azure Resource Manager pour créer un principal de service

Avant de commencer, assurez-vous que :

  • Vous disposez d’un compte utilisateur dans le locataire Azure Active Directory de votre abonnement.
  • Le compte d’utilisateur Azure AD est également un co-administrateur pour l’abonnement Azure que vous utiliserez pour les ressources de provisioning.

Dans l’assistant Création d’un site ou Ajouter une connexion et des ressources :

  1. Sur la page Connexion, sélectionnez le type de connexion Microsoft Azure. Sélectionnez ensuite votre environnement Azure Cloud.
  2. Sur la page Détails de la connexion, entrez votre ID d’abonnement Azure et un nom pour la connexion. Le nom de la connexion peut contenir entre 1 et 64 caractères, et ne peut pas contenir uniquement des espaces ou des caractères non alphanumériques. Lorsque vous entrez l’ID d’abonnement et le nom de connexion, le bouton Créer nouveau est activé.
  3. Entrez le nom d’utilisateur et le mot de passe du compte Azure Active Directory.
  4. Cliquez sur Connexion.
  5. Cliquez sur Accepter pour donner à Citrix Virtual Apps and Desktops les autorisations répertoriées. Citrix Virtual Apps and Desktops crée un principal de service qui lui permet de gérer les ressources Azure Resource Manager pour le compte d’utilisateur spécifié.
  6. Lorsque vous cliquez sur Accepter, vous revenez à la page Connexion dans Studio. Lorsque vous vous êtes authentifié auprès d’Azure, les boutons Créer nouveau et Utiliser existant sont remplacés par Connecté, et une coche verte indique la réussite de la connexion à votre abonnement Azure.
  7. Indiquez les outils à utiliser pour créer les machines virtuelles, puis cliquez sur Suivant. (vous ne pouvez pas progresser au-delà de cette page de l’assistant tant que vous n’avez pas réussi à vous authentifier auprès d’Azure et accepté d’accorder les autorisations nécessaires).
  8. Les ressources comprennent la région et le réseau.

    • Sur la page Région, sélectionnez une région.
    • Sur la page Réseau, tapez un nom de ressource comportant entre 1 et 64 caractères pour vous aider à identifier la combinaison région/réseau dans Studio. Un nom de ressource ne peut pas contenir uniquement des espaces, et ne peut pas contenir de caractères non alphanumériques.
    • Sélectionnez une paire réseau virtuel et groupe de ressources Il est possible de disposer de plusieurs réseaux virtuels portant le même nom ; par conséquent, le couplage du nom du réseau avec le groupe de ressources fournit des combinaisons uniques La sélection d’une région sur la page précédente qui ne dispose pas de réseaux virtuels vous renvoie à cette page. Sélectionnez une région dotée de réseaux virtuels.
  9. Suivez les instructions de l’assistant.

Utiliser les détails d’un principal de service créé précédemment pour se connecter à Azure Resource Manager

Pour créer un principal de service manuellement, connectez-vous à votre abonnement Azure Resource Manager et utilisez les applets de commande PowerShell fournies dans la section suivante.

Pré-requis :

  • $SubscriptionId : SubscriptionID Azure Resource Manager pour l’abonnement sur lequel vous souhaitez provisionner les VDA.
  • $AADUser : compte utilisateur Azure AD pour le locataire AD de votre abonnement. Définissez $AADUser comme co-administrateur pour votre abonnement.
  • $ApplicationName : nom de l’application à créer dans Azure AD.
  • $ApplicationPassword : mot de passe de l’application. Vous utilisez ce mot de passe comme secret d’application lors de la création de la connexion hôte.

Pour créer un principal de service :

  1. Connectez-vous à votre abonnement Azure Resource Manager.

    Login-AzureRmAccount

  2. Sélectionnez l’abonnement Azure Resource Manager sur lequel vous souhaitez créer le principal de service.

    Select-AzureRmSubscription -SubscriptionID $SubscriptionId

  3. Créez l’application dans votre locataire AD.

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

  4. Créez un principal de service.

    New-AzureRmADServicePrincipal -ApplicationId $AzureADApplication.ApplicationId

  5. Attribuez un rôle au principal de service.

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

  6. Dans la sortie de la fenêtre de la console PowerShell, notez la valeur ApplicationId. Vous fournissez cet ID lors de la création de la connexion hôte.

Dans l’assistant Création d’un site ou Ajouter une connexion et des ressources :

  1. Sur la page Connexion, sélectionnez le type de connexion Microsoft Azure et votre environnement Azure.
  2. Sur la page Détails de la connexion, entrez votre ID d’abonnement Azure et un nom pour la connexion. (Le nom de la connexion peut contenir entre 1 et 64 caractères, et ne peut pas contenir uniquement des espaces ou des caractères non alphanumériques.
  3. Cliquez sur Utiliser existant. Entrez l’ID d’abonnement, le nom de l’abonnement, l’URL d’authentification, l’URL de gestion, le suffixe de stockage, l’ID Active Directory ou l’ID du locataire, l’ID de l’application et le secret de l’application du principal de service existant. Une fois que vous avez saisi les détails, le bouton OK est activé. Cliquez sur OK.
  4. Indiquez les outils à utiliser pour créer les machines virtuelles, puis cliquez sur Suivant. Les informations que vous avez fournies sur le principal de service sont utilisées pour la connexion à votre abonnement Azure. (Vous ne pouvez pas progresser au-delà de cette page de l’assistant tant que vous n’avez pas fourni d’informations sur l’option Utiliser existant.)
  5. Les ressources comprennent la région et le réseau.

    • Sur la page Région, sélectionnez une région.
    • Sur la page Réseau, tapez un nom de ressource comportant entre 1 et 64 caractères pour vous aider à identifier la combinaison région/réseau dans Studio. Un nom de ressource ne peut pas contenir uniquement des espaces, et ne peut pas contenir de caractères non alphanumériques.
    • Sélectionnez une paire réseau virtuel et groupe de ressources (étant donné que vous pouvez posséder plusieurs réseaux virtuels avec le même nom, le couplage du nom du réseau avec le groupe de ressources fournit des combinaisons uniques). Si, sur la page précédente, vous avez sélectionné une région qui ne dispose pas de réseaux virtuels, vous devez retourner à cette page et sélectionner une région contenant des réseaux virtuels.
  6. Suivez les instructions de l’assistant.

Créer un catalogue de machines à l’aide d’une image principale Azure Resource Manager

Ces informations étayent les instructions disponibles dans la section Créer des catalogues de machines.

Une image principale est le modèle qui est utilisé pour créer les machines virtuelles dans un catalogue de machines. Avant de créer le catalogue de machines, créez une image principale dans Azure Resource Manager. Pour de plus amples informations sur les images principales en général, consultez l’article Créer des catalogues de machines.

Lorsque vous créez un catalogue de machines dans Studio :

  • Les pages Système d’exploitation et Gestion des machines ne contiennent aucune information spécifique à Azure. Suivez les instructions de la section Créer des catalogues de machines.
  • Dans la page Image principale, sélectionnez un groupe de ressources. Naviguez dans les conteneurs pour accéder au disque dur virtuel Azure que vous voulez utiliser en tant qu’image principale. Un VDA Citrix doit être installé sur le disque. Si le disque dur virtuel est connecté à une VM, la VM doit être arrêtée.
  • La page Types de stockage et de licence s’affiche uniquement lors de l’utilisation de l’image principale Azure Resource Manager.

    Sélectionnez un type de stockage : premium ou standard. Le type de stockage affecte les tailles de machine qui sont disponibles sur la page Machines virtuelles. Les deux types de stockage créent de multiples copies synchrones de vos données dans un seul data center. Pour de plus amples informations sur les types de stockage et la réplication de stockage Azure, consultez les rubriques suivantes :

    Indiquez si vous souhaitez utiliser des licences Windows Server locales existantes. Si c’est le cas et que vous utilisez les images Windows Server locales existantes, Azure Hybrid Use Benefits (HUB) est utilisé. Plus de détails sont disponibles sur https://azure.microsoft.com/pricing/hybrid-use-benefit/.

    HUB peut réduire le coût d’exécution des VM dans Azure au taux de calcul de base. Il annule prix des licences Windows Server supplémentaires de la galerie Azure. Incluez vos images Windows Server locales à Azure pour utiliser HUB. Les images de la galerie Azure ne sont pas prises en charge. Les licences Windows Client locales ne sont pas prises en charge.

    Vérifiez si les machines virtuelles provisionnées utilisent HUB avec succès. Exécutez la commande PowerShell Get-AzureRmVM -ResourceGroup MyResourceGroup -Name MyVM et vérifiez que le type de licence est Windows_Server. Des instructions supplémentaires sont disponibles sur https://docs.microsoft.com/en-us/azure/virtual-machines/windows/hybrid-use-benefit-licensing/.

  • Sur la page Machines virtuelles, indiquez le nombre de machines virtuelles à créer ; vous devez spécifier au moins une. Sélectionnez une taille de machine. Une fois que vous avez créé un catalogue de machines, vous ne pouvez pas modifier la taille de machine. Si vous souhaitez changer de taille, supprimez le catalogue, puis créez un catalogue qui utilise la même image principale et spécifie la taille de machine souhaitée.

    Les noms de machine virtuelle ne peuvent pas contenir de caractères non ASCII ou spéciaux.

  • (Lors de l’utilisation de MCS) Sur la page Groupes de ressources, choisissez si vous souhaitez créer des groupes de ressources ou utiliser des groupes existants.

    Si vous choisissez de créer des groupes de ressources, cliquez sur Suivant.

    Si vous choisissez d’utiliser des groupes de ressources existants, sélectionnez les groupes dans la liste Groupes de ressources de provisioning disponibles. Sélectionnez un nombre suffisant de groupes pour prendre en charge les machines que vous créez dans le catalogue. Studio affiche un message indiquant si vous en choisissez trop peu. Vous pouvez sélectionner un nombre supérieur au minimum requis si vous envisagez d’ajouter d’autres VM au catalogue ultérieurement. Vous ne pouvez pas ajouter d’autres groupes de ressources à un catalogue après que le catalogue a été créé.

    Pour plus d’informations, consultez la section sur les groupes de ressources Azure (#azure-resource-groups).

  • Les pages Cartes réseau, Comptes d’ordinateurs et Résumé ne contiennent aucune information spécifique à Azure. Suivez les instructions de la section Créer des catalogues de machines.

Suivez les instructions de l’assistant.

Supprimer des catalogues de machines

La suppression d’un catalogue de machines Azure Resource Manager entraîne la suppression des machines et groupes de ressources associés, même si vous indiquez qu’ils doivent être conservés.

Groupes de ressources Azure

Les groupes de ressources de provisioning d’Azure permettent de provisionner les VM qui fournissent des applications et bureaux aux utilisateurs. Ajoutez des groupes de ressources Azure vides existants lorsque vous créez un catalogue de machines MCS dans Studio, ou créez-en de nouveaux.

Pour plus d’informations sur les groupes de ressources Azure, consultez la documentation Microsoft.

Exigences

  • Chaque groupe de ressources peut contenir jusqu’à 240 VM. La région dans laquelle vous créez le catalogue doit contenir suffisamment de groupes de ressources vides disponibles. Si vous souhaitez utiliser des groupes de ressources existants lors de la création d’un catalogue de machines, sélectionnez un nombre suffisant de groupes disponibles pour prendre en charge le nombre de machines qui ont été créées dans le catalogue. Par exemple, si vous spécifiez 500 machines dans l’assistant de création de catalogues, sélectionnez au moins trois groupes de ressources de provisioning disponibles.

    Vous ne pouvez pas ajouter de groupes de ressources à un catalogue de machines après que le catalogue a été créé. Par conséquent, pensez à ajouter suffisamment de groupes de ressources pour prendre en charge les machines que vous pourriez ajouter au catalogue ultérieurement.

  • Créez des groupes de ressources vides dans la même région que votre connexion hôte.
  • Si vous souhaitez créer des groupes de ressources pour chaque catalogue MCS, configurez le principal de service Azure associé à la connexion hôte. Cette entité doit être autorisée à créer et supprimer des groupes de ressources. Si vous souhaitez utiliser des groupes de ressources vides existants, le principal de service Azure associé à la connexion hôte doit avoir l’autorisation Contributeur sur ces groupes de ressources vides.
  • Lorsque vous créez une connexion hôte dans Studio à l’aide de l’option Créer nouveau, le principal de service créé dispose d’autorisations de contribution à l’étendue de l’abonnement. Vous pouvez également utiliser l’option Utiliser existant pour créer la connexion et fournir les détails d’un principal de service d’étendue de l’abonnement existant. Utilisez l’option Créer nouveau pour créer un principal de service dans Studio. Le principal dispose des autorisations nécessaires pour créer et supprimer de nouveaux groupes de ressources ou provisionner dans des groupes de ressources vides existants.
  • Des principaux de service à étendue limitée doivent être créés à l’aide de PowerShell. En outre, lorsque vous utilisez un principal de service à étendue limitée, vous devez utiliser PowerShell ou le portail Azure pour créer des groupes de ressources vides pour chaque catalogue sur lequel MCS provisionne des machines virtuelles.

    Si vous utilisez un principal de service à étendue limitée pour la connexion hôte et que vous ne voyez pas votre groupe de ressources d’image principale sur la page Image principale de l’assistant de création de catalogues, cela est probablement dû au fait que le principal de service à étendue limitée que vous utilisez ne dispose pas de l’autorisation Microsoft.Resources/subscriptions/resourceGroups/read requise pour afficher le groupe de ressources de l’image principale. Fermez l’assistant, mettez à jour le principal de service avec les autorisations nécessaires (consultez le post de blog pour obtenir des instructions) et redémarrez l’assistant. La mise à jour dans Azure peut prendre jusqu’à 10 minutes à s’afficher dans Studio.

À propos des principaux de service Azure

Pour provisionner des machines dans Azure Resource Manager, un plug-in doit avoir accès à votre abonnement Azure. Ces autorisations sont accordées via un principal de service auquel des autorisations ont été attribuées pour les ressources Azure concernées. Un principal de service a la même utilité de base qu’un compte d’utilisateur. Il fournit au plug-in une identité Azure Active Directory qui fournit des informations d’identification pour l’authentification et les autorisations sur les ressources Azure. Tout comme les comptes d’utilisateurs, les principaux de service sont configurés à l’aide du contrôle d’accès basé sur le rôle (RBAC).

En fonction de la façon dont les autorisations sont définies, nous classons les principaux de service comme suit :

  • les principaux de service à étendue d’abonnement ; ou

  • les principaux de service à étendue restreinte

Principaux de service à étendue d’abonnement

Les principaux de service à étendue d’abonnement disposent d’autorisations de contributeur sur toutes les ressources de l’abonnement, ce qui facilite leur création et leur gestion. Citrix Studio automatise le processus de création des principaux de service à étendue d’abonnement ou ils peuvent être créés manuellement dans PowerShell. Ces principaux permettent au plug-in Azure Resource Manager de créer des groupes de ressources Azure et d’automatiser complètement la gestion des ressources. L’inconvénient est que le plug-in dispose d’autorisations sur des ressources de l’abonnement qui ne sont pas liées aux ressources que le plug-in est chargé de gérer.

L’utilisation du rôle de contributeur permet au plug-in de créer, supprimer, lire et écrire toutes les ressources de l’abonnement. Les autorisations ne s’étendent pas aux objets dans Azure Active Directory et les principaux de service à étendue d’abonnement ne sont pas autorisés à accorder à d’autres utilisateurs ou principaux de service l’accès aux ressources.

Principaux de service à étendue restreinte

Les principaux de service à étendue restreinte permettent au plug-in Azure Resource Manager d’accéder à un ensemble limité de ressources que vous avez défini. Azure nécessite des autorisations d’étendue d’abonnement pour créer des groupes de ressources. Le plug-in ne peut pas créer de groupes de ressources lors de l’utilisation de principaux de service à étendue restreinte. Outre les principaux de service, vous devez fournir un pool de groupes de ressources pour chaque catalogue dans lequel les machines doivent être provisionnées.

Citrix Studio ne prend pas en charge la création de catalogues ou de principaux de service à étendue restreinte. Ces deux tâches doivent être effectuées à l’aide de PowerShell. Cependant, une fois qu’un catalogue a été créé, il peut être géré comme n’importe quel autre catalogue de Studio, y compris l’ajout et la suppression de machines. Si, à un moment donné, vous souhaitez utiliser un principal de service à étendue restreinte existant avec un nouveau pool de groupes de ressources, vous devez explicitement ajouter des autorisations au principal de service à l’aide de PowerShell.

Définition des conditions d’accès à votre abonnement Azure

Les techniques et les exemples présentés dans les sections suivantes illustrent des exigences courantes et nécessiteront des changements en fonction de votre situation particulière.

Envisagez d’utiliser un principal de service à étendue d’abonnement si :

  • vous souhaitez bénéficier de l’expérience de gestion la plus simple ;

  • vous préférez éviter d’utiliser PowerShell et tout gérer dans Citrix Studio ;

  • votre abonnement Azure est dédié à un seul service Citrix Virtual Apps and Desktops ;

  • vous effectuez une installation de Citrix Virtual Apps and Desktops dans le cadre d’une preuve de concept ;

  • vos administrateurs Citrix Virtual Apps and Desktops disposent d’un accès contributeur à l’étendue d’abonnement Azure.

Envisagez d’utiliser un principal de service à étendue restreinte si :

  • votre abonnement Azure héberge plusieurs services indépendants ;

  • vos administrateurs Azure disposent d’autorisations d’abonnement différentes en fonction de leur rôle ;

  • votre entreprise a des normes de sécurité qui exigent un contrôle d’accès à un niveau précis ;

  • vous disposez déjà d’un processus pour créer des principaux de service à étendue restreinte.

Conseil :

Vous pouvez créer des abonnements enfants qui sont facturés dans le cadre de votre abonnement principal et faire référence à Azure Active Directory par défaut dans votre abonnement principal. Cette configuration fournit un autre mécanisme pour contrôler l’accès aux ressources non liées.

Planification d’un catalogue de principal de service à étendue restreinte

Avant de créer un catalogue de principal de service à étendue restreinte, décidez du nombre de groupes de ressources requis pour héberger le nombre initial et futur de machines virtuelles. En raison d’une limitation dans Machine Creation Services, il n’est pas possible d’ajouter des groupes de ressources une fois qu’un catalogue a été créé.

Provisionner un catalogue par groupe de ressources

Le plug-in Azure Resource Manager crée l’infrastructure nécessaire dans chaque groupe de ressources. Le groupe de ressources se compose de comptes de stockage, de groupes de sécurité, d’interfaces réseau, de machines virtuelles, etc. Les comptes de stockage sont créés à la demande lorsque et si des machines sont ajoutées au catalogue. Cela signifie que la taille d’un catalogue peut atteindre une limite supérieure définie par la taille du pool de groupes de ressources et des quotas d’abonnement Azure. Une fois qu’un compte de stockage a été créé, il n’est pas supprimé tant que le catalogue n’est pas supprimé. Comme toute machine virtuelle peut être supprimée, il est possible de se retrouver avec des comptes de stockage vides. Cette situation est rare car les machines virtuelles ont tendance à être réparties aléatoirement sur les comptes de stockage disponibles. Les machines doivent être choisies fastidieusement en inspectant le contenu des comptes de stockage pour vider délibérément un compte de stockage.

Azure limite le nombre de machines virtuelles dans un groupe de ressources à 800, mais le plug-in Azure Resource Manager utilise une mesure différente. Un disque Azure standard a une limite de 500 opérations d’E/S par seconde (IOPS) et un compte de stockage standard a une limite d’E/S par seconde de 20 000. Pour cette raison, le plug-in ne provisionnera pas plus de 40 machines sur un compte de stockage. Cette limite s’applique à la fois au stockage standard et au stockage Premium. En outre, le plug-in ne crée pas plus de 19 comptes de stockage dans un groupe de ressources.

La formule de base pour calculer le nombre de groupes de ressources en fonction du nombre maximal de machines est donc la suivante :

Nombre de groupes de ressources = plafond (Nombre maximal de machines/(40 * 19))

Le plug-in Azure Resource Manager suppose qu’il utilise exclusivement le pool de groupes de ressources. Il n’y a aucune ressource créée par l’utilisateur dans aucun des groupes de ressources spécifiés.

Principes de base du contrôle d’accès basé sur le rôle Azure (RBAC).

L’accès aux ressources Azure est accordé en affectant un rôle RBAC à un principal de service dans une certaine étendue. L’étendue peut être un abonnement, un groupe de ressources ou une ressource spécifique. Les ressources sont organisées dans une hiérarchie de contenance et les autorisations définies par le rôle s’appliquent à toutes les ressources situées sous l’étendue où elles sont appliquées. Un rôle appliqué à un abonnement est appliqué à toutes les ressources de l’abonnement. Un rôle appliqué à un groupe de ressources est appliqué à toutes les ressources contenues dans le groupe de ressources.

La hiérarchie des ressources Azure implique que seuls les principaux de service disposant d’autorisations d’étendue d’abonnement sont autorisés à créer des groupes de ressources. Ce n’est pas idéal car cela empêche des applications comme le plug-in de créer des groupes de ressources à la demande dans un groupe logique et de gérer les ressources, sauf s’ils ont des autorisations sur l’abonnement complet.

Azure dispose d’un grand choix de rôles intégrés et prend également en charge la définition de rôles personnalisés. Reportez-vous à la section Rôles personnalisés pour les ressources Azure pour plus d’informations sur les rôles personnalisés dans Azure RBAC.

Création d’un principal de service à étendue d’abonnement

Cet exemple montre comment créer un principal de service à étendue d’abonnement. Les détails peuvent être utilisés pour créer une connexion Azure dans Citrix Studio. Sélectionnez cette option pour utiliser un principal de service existant ou une connexion Azure peut être créée manuellement dans 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-->

Création d’un principal de service à étendue restreinte de base

Cette section décrit le processus de création du principal de service à étendue restreinte le plus simple possible où des autorisations sont attribuées à l’étendue du groupe de ressources.

Le plug-in Azure Resource Manager doit être autorisé sur les ressources suivantes :

  1. Le VHD d’image principale

  2. Le réseau virtuel des machines

  3. Les groupes de ressources dans lesquels les machines doivent être provisionnées

Pour simplifier le script, nous supposons que l’accès contributeur peut être accordé à l’étendue du groupe de ressources. Le plug-in Azure Resource Manager dispose d’autorisations de contributeur sur le groupe de ressources dans lequel le VHD de l’image est stocké, le groupe de ressources qui contient le réseau virtuel et le pool de groupes de ressources dans lequel les machines sont provisionnées.

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

Création d’un principal de service à étendue restreinte utilisant des rôles personnalisés

Azure est livré avec un grand ensemble de rôles RBAC intégrés. Citrix utilise le rôle contributeur de la section précédente. Comme indiqué, ce rôle donne au plug-in Azure Resource Manager des autorisations légèrement plus larges que celles strictement requises. Cette section définit un rôle personnalisé et resserre encore l’accès. Si vous le souhaitez, l’accès peut être verrouillé en utilisant davantage de rôles personnalisés et en appliquant des rôles directement à l’image et aux ressources réseau.

Remarque :

Les autorisations requises sont sujettes à modification.

Utilisez les autorisations suivantes pour définir un rôle personnalisé permettant d’accorder l’accès au réseau virtuel et à l’image principale dans l’étendue du groupe de ressources.

Le VHD d’image principale.

Pour la création de catalogue :

  • Microsoft.Storage/storageAccounts/read

  • Microsoft.Storage/storageAccounts/listKeys/action

Pour la prise en charge future de Citrix Studio :

  • Microsoft.Resources/subscriptions/resourceGroups/read

Le réseau virtuel des machines :

  • Microsoft.Network/virtualNetworks/read

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

Groupes de ressources pour les machines provisionnées.

Nous pouvons créer un autre rôle personnalisé avec les autorisations suivantes, mais pour simplifier l’exemple, nous continuons à utiliser le rôle contributeur pour les groupes de ressources de machine. Ces groupes de ressources ne contiennent pas de ressources non créées par le plug-in Azure Resource Manager. Avec le rôle contributeur, il est moins probable que les modifications apportées au plug-in nécessitent des modifications pour le principal de service :

  • 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

Rôles d’accès personnalisés Citrix Virtual Apps and Desktops.

Créez un rôle personnalisé en le définissant d’abord dans 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-->

Créez le rôle en référençant la définition JSON :

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

Utilisez le nouveau rôle personnalisé lors de la création d’un principal de service :

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

Création de connexions Azure Citrix Virtual Apps and Desktops.

Il est raisonnable de créer une connexion Azure Citrix Virtual Apps and Desktops dans Citrix Studio à l’aide d’un principal de service existant. Il est également raisonnable de créer la connexion dans PowerShell.

Voici un exemple de création d’une connexion dans 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-->

À ce stade, ajoutez des ressources à la connexion, en utilisant Studio ou PowerShell.

Créer des catalogues Citrix Virtual Apps and Desktops.

L’exemple suivant utilise les composants logiciels enfichables Citrix PowerShell pour créer un catalogue Citrix Virtual Apps and Desktops.

Étant donné que les principaux de service à étendue restreinte n’autorisent pas le plug-in Azure Resource Manager à créer des groupes de ressources, vous devez :

  1. Créez un pool de groupes de ressources.

  2. Affectez les autorisations du principal de service sur tous les groupes de ressources du pool de groupes de ressources.

  3. Répertoriez chaque groupe de ressources du groupe de ressources dans une propriété personnalisée lors de la création du schéma de provisioning.

La propriété personnalisée est nommée ResourceGroups et la valeur est une liste séparée par des virgules de noms de groupes de ressources. Un exemple de définition de cette propriété personnalisée est illustré dans l’exemple suivant.

Remarque :

Seuls les groupes de ressources destinés aux machines sont répertoriés dans la propriété personnalisée. Un ou plusieurs groupes de ressources où se trouve l’image ou le réseau virtuel ne sont pas inclus. S’ils sont spécifiés, le plug-in Azure Resource Manager tente de provisionner des machines dans ces groupes de ressources, ce qui peut provoquer un comportement involontaire.

Dans cet exemple, les machines sont provisionnées dans deux groupes de ressources nommés xd-sales-1 et 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-->

À ce stade, vous pouvez actualiser la page de catalogue dans Citrix Studio, ajouter des machines et gérer des machines comme avec tout autre catalogue.

Configurer des groupes de ressources pour un catalogue de machines dans Studio

La page Groupes de ressources dans l’assistant de création de catalogues vous permet de choisir si vous souhaitez créer des groupes de ressources ou utiliser des groupes existants. Consultez la section Créer un catalogue de machines à l’aide d’une image principale Azure Resource Manager.

Qu’advient-il des groupes de ressources lorsque vous supprimez un catalogue de machines ?

  • Si vous laissez Citrix Virtual Apps and Desktops créer des groupes de ressources lorsque vous créez le catalogue de machines et que vous supprimez le catalogue ultérieurement, ces groupes de ressources et toutes les ressources qu’ils contiennent sont également supprimés.

  • Si vous utilisez des groupes de ressources existants lorsque vous créez le catalogue de machines et que vous supprimez le catalogue ultérieurement, toutes les ressources qu’ils contiennent sont supprimées, mais pas les groupes de ressources.

Considérations, limitations et résolution des problèmes

Lorsque vous utilisez des groupes de ressources existants, la liste des groupes de ressources disponibles sur la page Groupes de ressources dans l’assistant de création de catalogues ne s’actualise pas automatiquement. Par conséquent, si cette page de l’assistant est ouverte et que vous créez ou ajoutez des autorisations à des groupes de ressources dans Azure, les modifications ne sont pas reflétées dans la liste de l’assistant. Pour voir les dernières modifications, revenez sur la page Gestion des machines de l’assistant et resélectionnez les ressources associées à la connexion hôte, ou fermez et redémarrez l’assistant. Les modifications apportées dans Azure peuvent prendre jusqu’à 10 minutes à s’afficher dans Studio.

Un groupe de ressources doit être utilisé dans un seul catalogue de machines. Toutefois, cette exigence n’est pas appliquée. Par exemple, vous sélectionnez 10 groupes de ressources lors de la création d’un catalogue, mais ne créez qu’une seule machine dans le catalogue. Neuf des groupes de ressources sélectionnés restent vides après que le catalogue est créé. Vous pourriez vouloir les utiliser pour étendre votre capacité dans le futur, c’est pourquoi ils restent associés à ce catalogue. Vous ne pouvez pas ajouter de groupes de ressources à un catalogue après sa création, il est donc judicieux de planifier vos futurs besoins en capacité. Toutefois, si un autre catalogue est créé, ces neuf groupes de ressources apparaissent dans la liste. Citrix Virtual Apps and Desktops ne peut pas déterminer à quels catalogues de machines les groupes de ressources sont attribués. Cette tâche vous incombe.

Si votre connexion utilise un principal de service qui peut accéder à des groupes de ressources vides dans différentes régions, ils apparaissent tous dans la liste. Veillez à choisir des groupes de ressources dans la même région que celle où vous créez le catalogue de machines.

Résolution des problèmes :

  • Les groupes de ressources n’apparaissent pas dans la liste de la page Groupes de ressources de l’assistant de création de catalogues.

    Le principal de service doit disposer des autorisations appropriées appliquées aux groupes de ressources que vous voulez inclure dans la liste. Consultez la section Exigences ci-dessus.

  • Lorsque vous ajoutez des machines à un catalogue de machines créé précédemment, les machines ne sont pas toutes provisionnées.

    Après la création d’un catalogue et plus tard l’ajout de machines supplémentaires au catalogue, ne dépassez pas la capacité de machines des groupes de ressources initialement sélectionnés pour le catalogue (240 par groupe). Vous ne pouvez pas ajouter de groupes de ressources après que le catalogue a été créé. Si vous essayez d’ajouter plus de machines que les groupes de ressources existants ne peuvent accueillir, le provisioning échoue.

    Par exemple, vous créez un catalogue de machines avec 300 VM et 2 groupes de ressources. Les groupes de ressources peuvent accueillir jusqu’à 480 VM (240 x 2). Si vous essayez d’ajouter 200 VM au catalogue, cela dépasse la capacité des groupes de ressources (300 VM + 200 nouvelles VM = 500, alors que les groupes de ressources peuvent en contenir uniquement 480).

Informations supplémentaires

Environnements de virtualisation Microsoft Azure Resource Manager