WebSocket-Kommunikation zwischen VDA und Delivery Controller™

Dieser Artikel beschreibt, wie eine WebSocket-Verbindung für die Kommunikation zwischen VDAs und Delivery Controllern als Alternative zur WCF-Kommunikation eingerichtet wird. Dies bietet den Vorteil, dass nur der TLS-Port 443 für die Kommunikation vom VDA zum Delivery Controller verwendet wird.

Funktionsweise

Die folgenden Abschnitte beschreiben den Workflow für die WebSocket-Verbindung zwischen einem Delivery Controller und einem VDA:

Während des normalen Brokering-Betriebs

  1. Citrix Virtual Apps and Desktops™-Administratoren initiieren den Prozess, indem sie VDAs mithilfe des Machine Creation Service (MCS) bereitstellen.
  2. Während des MCS-Bereitstellungsprozesses generiert MCS für jeden VDA öffentliche/private Schlüsselpaare und registriert die öffentlichen Schlüssel beim FMA-Vertrauensdienst auf dem Delivery Controller. MCS speichert das öffentliche/private Schlüsselpaar als Datei auf der Identitätsdiskette der VDAs.
  3. Wenn die VDA-Maschine hochfährt, liest der auf der VDA-Maschine installierte MCS-Agent das Schlüsselpaar von der Identitätsdiskette und schreibt diese Informationen in den VDA-Registrierungsspeicherort.
  4. Der auf dem VDA installierte Broker-Agent liest die Schlüsselpaare aus der Registrierung und generiert eine SSL-fähige WebSocket-Anfrage an den Delivery Controller mit dem vom privaten Schlüssel signierten Dienstschlüssel.
  5. Der Delivery Controller überprüft den signierten Dienstschlüssel-Autorisierungsheader mit dem öffentlichen Schlüssel des FMA-Vertrauensdienstes.
  6. Sobald die Überprüfung abgeschlossen ist, stellt das System die WebSocket-Verbindung zwischen dem VDA und dem Delivery Controller her.

Wenn der LHC-Modus aktiv wird

Wenn Sie die WebSocket-Unterstützung für LHC aktivieren, überprüft der High Availability Service im LHC-Modus, wenn ein VDA versucht, eine WebSocket-Verbindung mit dem High Availability Service herzustellen, den signierten Dienstschlüssel-Autorisierungsheader mit dem öffentlichen Schlüssel aus der lokalen Datenbank. Dies authentifiziert die WebSocket-Verbindung, und die WebSocket-Verbindung zwischen dem VDA und dem Delivery Controller ist auch im LHC-Modus erfolgreich.

WebSocket-Unterstützung

Bevor Sie beginnen

  1. Konfigurieren Sie Ihre Site. Weitere Informationen finden Sie unter Site erstellen.
  2. Installieren Sie TLS-Zertifikate auf den Delivery Controllern. Weitere Informationen finden Sie unter Installieren von TLS-Serverzertifikaten auf Controllern.
  3. Installieren Sie Stamm-CA und Zwischen-CA auf dem VDA, um dem Delivery Controller zu vertrauen.

Vorgehensweise

Befolgen Sie die Anweisungen zum Einrichten einer WebSocket-Verbindung:

  1. Aktivieren Sie die WebSocket-Verbindung auf dem Delivery Controller. Führen Sie den folgenden Befehl auf jedem Delivery Controller Ihrer Site aus:

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

  2. Starten Sie den Brokerdienst neu, nachdem Sie WebSocket aktiviert haben.
  3. Aktivieren Sie die WebSocket-Unterstützung für den LHC-Modus. Führen Sie den folgenden Befehl auf jedem Delivery Controller Ihrer Site aus:

    New-ItemProperty "HKLM:\SOFTWARE\Citrix\DesktopServer\LHC" -Name "WebSocketEnabledLhc" -PropertyType "DWord" -Value 1 -Force
    <!--NeedCopy-->
    
  4. Erstellen Sie einen Maschinenkatalog für in die AD-Domäne eingebundene VDAs mit MCS-Bereitstellung. Weitere Informationen finden Sie unter Maschinenkatalog erstellen.
  5. Erstellen Sie eine Bereitstellungsgruppe und fügen Sie Ihren VDA hinzu. Weitere Informationen finden Sie unter Bereitstellungsgruppen erstellen.
  6. Aktivieren Sie die WebSocket-Verbindung auf dem VDA. Führen Sie den folgenden PowerShell-Befehl auf dem VDA aus:

    New-ItemProperty "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CitrixBrokerAgent\WebSocket" -Name "Enabled" -PropertyType "DWord" -Value 1 -Force
    <!--NeedCopy-->
    
    • Um zu überprüfen, ob WebSocket aktiviert ist, überprüfen Sie den folgenden Registrierungsschlüsselwert. Der Wert von Enabled muss 1 sein.

      Schlüssel:

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

      Name: Enabled

      Typ: REG_DWORD

      Wert: 1

WebSocket-Kommunikation zwischen VDA und Delivery Controller™