Citrix Virtual Apps and Desktops

Communication WebSocket entre VDA et Delivery Controller™

Cet article décrit comment configurer une connexion WebSocket pour la communication entre les VDA et les Delivery Controller comme alternative à l’utilisation de la communication WCF. Il offre l’avantage que seul le port TLS 443 est utilisé pour la communication du VDA vers le Delivery Controller.

Fonctionnement

Les sections suivantes décrivent le workflow pour la connexion WebSocket entre un Delivery Controller et un VDA :

Pendant les opérations de négociation normales

  1. Les administrateurs de Citrix Virtual Apps and Desktops™ lancent le processus en provisionnant des VDA à l’aide de Machine Creation Service (MCS).
  2. Au cours du processus de provisioning MCS, MCS génère des paires de clés publique-privée pour chaque VDA et enregistre les clés publiques auprès du Trust Service FMA sur le Delivery Controller. MCS enregistre la paire de clés publique-privée sous forme de fichier sous le disque d’identité sur les VDA.
  3. Lorsque la machine VDA démarre, l’agent MCS installé sur celle-ci lit la paire de clés depuis le disque d’identité et écrit ces informations dans l’emplacement de registre du VDA.
  4. L’agent broker installé sur le VDA lit les paires de clés du registre et génère une demande WebSocket compatible SSL auprès du Delivery Controller avec la clé de service signée par la clé privée.
  5. Le Delivery Controller vérifie l’en-tête d’autorisation de clé de service signé avec la clé publique du Trust Service FMA.
  6. Une fois la vérification terminée, le système établit la connexion WebSocket entre le VDA et le Delivery Controller.

Lorsque le mode LHC est activé

Si vous activez la prise en charge Websocket pour LHC, pendant le mode LHC, lorsqu’un VDA tente d’établir une connexion Websocket avec le service haute disponibilité, le service haute disponibilité vérifie l’en-tête d’autorisation de clé de service signé avec la clé publique de la base de données locale. Cela authentifie la connexion WebSocket. La connexion WebSocket entre le VDA et le Delivery Controller réussit alors, même en mode LHC.

Prise en charge de WebSocket

Avant de commencer

  1. Configurez votre site. Pour plus d’informations, consultez la section Créer un site.
  2. Installez des certificats TLS sur les Delivery Controller. Pour plus d’informations, consultez Installer les certificats de serveur TLS sur des Controller.
  3. Installez l’autorité de certification racine et l’autorité de certification intermédiaire sur le VDA pour approuver le Delivery Controller.

Procédure

Pour configurer une connexion WebSocket, procédez comme suit :

  1. Activez la connexion WebSocket sur le Delivery Controller. Exécutez la commande suivante sur chaque Delivery Controller présent sur votre site :

    New-ItemProperty "HKLM:\SOFTWARE\Citrix\DesktopServer\WorkerProxy" -Name "WebSocket_Enabled" -PropertyType "DWord" -Value 1 -Force

  2. Redémarrez le service Broker après avoir activé WebSocket.
  3. Activez la prise en charge de WebSocket pour le mode LHC. Exécutez la commande suivante sur chaque Delivery Controller présent sur votre site :

      New-ItemProperty "HKLM:\SOFTWARE\Citrix\DesktopServer\LHC" -Name "WebSocketEnabledLhc" -PropertyType "DWord" -Value 1 -Force
    <!--NeedCopy-->
    
  4. Créez un catalogue de machines pour les VDA joints à AD avec le provisioning MCS. Pour de plus amples informations, consultez l’article Créer un catalogue de machines.
  5. Créez un groupe de mise à disposition et ajoutez-y votre VDA. Pour plus d’informations, consultez la section Créer des groupes de mise à disposition.
  6. Activez la connexion WebSocket sur le VDA. Exécutez la commande PowerShell suivante sur le VDA :

      New-ItemProperty "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CitrixBrokerAgent\WebSocket" -Name "Enabled" -PropertyType "DWord" -Value 1 -Force
    <!--NeedCopy-->
    
    • Pour vérifier si WebSocket est activé, vérifiez la valeur de la clé de registre suivante. La valeur de Activé doit être 1.

      Clé :

         HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CitrixBrokerAgent\WebSocket
       <!--NeedCopy-->
      

      Nom : Enabled

      Type : REG_DWORD

      Valeur : 1

Communication WebSocket entre VDA et Delivery Controller™