Communication WebSocket entre le VDA et le Delivery Controller™

Cet article décrit comment configurer une connexion WebSocket pour la communication entre les VDA et les Delivery Controllers, en tant qu’alternative à l’utilisation de la communication WCF. Cela 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 flux de travail pour la connexion WebSocket entre un Delivery Controller et un VDA :

Pendant le fonctionnement normal du courtage

  1. Les administrateurs de Citrix Virtual Apps and Desktops™ lancent le processus en provisionnant des VDA à l’aide du service de création de machines (MCS).
  2. Pendant le processus de provisionnement 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 service de confiance FMA sur le Delivery Controller. MCS enregistre la paire de clés publique-privée sous forme de fichier sur le disque d’identité des VDA.
  3. Lorsque la machine VDA démarre, l’agent MCS installé sur la machine VDA lit la paire de clés depuis le disque d’identité et écrit ces informations à l’emplacement du registre VDA.
  4. L’agent de courtage installé sur le VDA lit les paires de clés depuis le registre et génère une requête WebSocket compatible SSL vers le 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 la clé de service signée avec la clé publique du service de confiance 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 devient actif

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

Prise en charge de WebSocket

Avant de commencer

  1. Configurez votre site. Pour plus d’informations, consultez Créer un site.
  2. Installez les certificats TLS sur les Delivery Controller. Pour plus d’informations, consultez Installer les certificats de serveur TLS sur les contrôleurs.
  3. Installez l’autorité de certification racine et l’autorité de certification intermédiaire sur le VDA pour faire confiance au Delivery Controller.

Procédure

Suivez les instructions pour configurer une connexion WebSocket :

  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é le 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 provisionnement MCS. Pour plus d’informations, consultez Créer un catalogue de machines.
  5. Créez un groupe de mise à disposition et ajoutez-y votre VDA. Pour plus d’informations, consultez 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 clé de registre suivante. La valeur de Enabled doit être 1.

      Clé :

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

      Nom : Enabled

      Type : REG_DWORD

      Valeur : 1

Communication WebSocket entre le VDA et le Delivery Controller™