Citrix Virtual Apps and Desktops

Comunicazione WebSocket tra VDA e Delivery Controller™

Questo articolo descrive come configurare una connessione WebSocket per la comunicazione tra VDA e Delivery Controller, in alternativa all’uso della comunicazione WCF. Offre il vantaggio di utilizzare solo la porta TLS 443 per la comunicazione dal VDA al Delivery Controller.

Come funziona

Le sezioni seguenti descrivono il flusso di lavoro per la connessione WebSocket tra un Delivery Controller e un VDA:

Durante il normale funzionamento del brokering

  1. Gli amministratori di Citrix Virtual Apps and Desktops™ avviano il processo eseguendo il provisioning dei VDA utilizzando Machine Creation Service (MCS).
  2. Durante il processo di provisioning MCS, MCS genera coppie di chiavi pubbliche-private per ogni VDA e registra le chiavi pubbliche con il servizio di fiducia FMA sul Delivery Controller. MCS salva la coppia di chiavi pubbliche-private come file nel disco di identità sui VDA.
  3. Quando la macchina VDA si avvia, l’agente MCS installato sulla macchina VDA legge la coppia di chiavi dal disco di identità e scrive queste informazioni nella posizione del registro VDA.
  4. L’agente broker installato sul VDA legge le coppie di chiavi dal registro e genera una richiesta WebSocket abilitata SSL al Delivery Controller con la chiave di servizio firmata dalla chiave privata.
  5. Il Delivery Controller verifica l’intestazione di autorizzazione della chiave di servizio firmata con la chiave pubblica del servizio di fiducia FMA.
  6. Una volta completata la verifica, il sistema stabilisce la connessione WebSocket tra il VDA e il Delivery Controller.

Quando la modalità LHC diventa attiva

Se si abilita il supporto WebSocket per LHC, durante la modalità LHC, quando un VDA tenta di stabilire una connessione WebSocket con il servizio High Availability, il servizio High Availability verifica l’intestazione di autorizzazione della chiave di servizio firmata con la chiave pubblica dal database locale. Questo autentica la connessione WebSocket e la connessione WebSocket tra il VDA e il Delivery Controller ha successo anche in modalità LHC.

Supporto WebSocket

Prima di iniziare

  1. Configurare il sito. Per maggiori informazioni, vedere Creare un sito.
  2. Installare i certificati TLS sui Delivery Controller. Per maggiori informazioni, vedere Installare i certificati server TLS sui Controller.
  3. Installare la CA radice e la CA intermedia sul VDA per considerare attendibile il Delivery Controller.

Procedura

Seguire le istruzioni per configurare una connessione WebSocket:

  1. Abilitare la connessione WebSocket sul Delivery Controller. Eseguire il seguente comando su ogni Delivery Controller presente nel sito:

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

  2. Riavviare il servizio Broker dopo aver abilitato il WebSocket.
  3. Abilitare il supporto WebSocket per la modalità LHC. Eseguire il seguente comando su ogni Delivery Controller presente nel sito:

    New-ItemProperty "HKLM:\SOFTWARE\Citrix\DesktopServer\LHC" -Name "WebSocketEnabledLhc" -PropertyType "DWord" -Value 1 -Force
    <!--NeedCopy-->
    
  4. Creare un catalogo macchine per VDA aggiunti ad AD con provisioning MCS. Per maggiori informazioni, vedere Creare un catalogo macchine.
  5. Creare un gruppo di consegna e aggiungervi il VDA. Per maggiori informazioni, vedere Creare gruppi di consegna.
  6. Abilitare la connessione WebSocket sul VDA. Eseguire il seguente comando PowerShell sul VDA:

    New-ItemProperty "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CitrixBrokerAgent\WebSocket" -Name "Enabled" -PropertyType "DWord" -Value 1 -Force
    <!--NeedCopy-->
    
    • Per verificare se WebSocket è abilitato, controllare il seguente valore della chiave di registro. Il valore di Enabled deve essere 1.

      Chiave:

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

      Nome: Enabled

      Tipo: REG_DWORD

      Valore: 1

Comunicazione WebSocket tra VDA e Delivery Controller™