Citrix Virtual Apps and Desktops

WebSocket-Kommunikation zwischen VDA und Delivery Controller™

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

Funktionsweise

In den folgenden Abschnitten wird der Workflow für die WebSocket-Verbindung zwischen einem Delivery Controller und einem VDA beschrieben:

Während des normalen Brokerbetriebs

  1. Administratoren von Citrix Virtual Apps and Desktops™ initiieren den Prozess, indem sie VDAs mithilfe des Machine Creation Service (MCS) bereitstellen.
  2. Während des MCS-Bereitstellungsprozesses generiert MCS öffentlich-private Schlüsselpaare für jeden VDA und registriert die öffentlichen Schlüssel beim FMA-Vertrauensdienst auf dem Delivery Controller. MCS speichert das öffentlich-private Schlüsselpaar als Datei unter dem Identitätsdatenträger auf den VDAs.
  3. Wenn die VDA-Maschine gestartet wird, liest der auf der VDA-Maschine installierte MCS-Agent das Schlüsselpaar vom Identitätsdatenträger und schreibt diese Informationen in den Speicherort der VDA-Registrierung.
  4. Der auf dem VDA installierte Broker Agent liest die Schlüsselpaare aus der Registrierung und generiert eine SSL-fähige WebSocket-Anforderung an den Delivery Controller, wobei der Dienstschlüssel durch den privaten Schlüssel signiert ist.
  5. Der Delivery Controller verifiziert den signierten Service Key Authorization Header mit dem öffentlichen Schlüssel des FMA Trust Service.
  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 und ein VDA im LHC-Modus versucht, eine Websocket-Verbindung mit dem Hochverfügbarkeitsdienst herzustellen, überprüft der Hochverfügbarkeitsdienst den signierten Autorisierungsheader des Dienstschlüssels mit dem öffentlichen Schlüssel aus der lokalen Datenbank. Dadurch wird die WebSocket-Verbindung authentifiziert und die WebSocket-Verbindung zwischen VDA und Delivery Controller ist auch im LHC-Modus erfolgreich.

WebSocket-Unterstützung

Voraussetzungen

  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 TLS-Serverzertifikaten auf Controllern installieren.
  3. Installieren Sie die Stammzertifizierungsstelle und die Zwischenzertifizierungsstelle auf dem VDA, um dem Delivery Controller zu vertrauen.

Verfahren

Folgen Sie den Anweisungen, um eine WebSocket-Verbindung einzurichten:

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

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

  2. Starten Sie den Broker-Dienst neu, nachdem Sie den 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 auf 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 AD-verknüpfte VDAs mit MCS-Bereitstellung. Weitere Informationen finden Sie unter Erstellen des Maschinenkatalogs.
  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 Aktiviert 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™