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 Verwendung der WCF-Kommunikation eingerichtet wird. Dies bietet den Vorteil, dass für die Kommunikation vom VDA zum Delivery Controller nur der TLS-Port 443 benötigt wird.
Funktionsweise
Die folgenden Abschnitte beschreiben den Workflow für die WebSocket-Verbindung zwischen einem Delivery Controller und einem VDA:
Während des normalen Broker-Betriebs
- Administratoren von Citrix Virtual Apps and Desktops™ leiten den Prozess ein, indem sie VDAs mithilfe des Machine Creation Service (MCS) bereitstellen.
- Während des MCS-Bereitstellungsprozesses generiert MCS Public-Private-Schlüsselpaare für jeden VDA und registriert die öffentlichen Schlüssel beim FMA-Vertrauensdienst auf dem Delivery Controller. MCS speichert das Public-Private-Schlüsselpaar als Datei auf der Identitätsdiskette der VDAs.
- 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.
- 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.
- Der Delivery Controller überprüft den signierten Dienstschlüssel-Autorisierungsheader mit dem öffentlichen Schlüssel des FMA-Vertrauensdienstes.
- 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, dann ü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
- Konfigurieren Sie Ihre Site. Weitere Informationen finden Sie unter Eine Site erstellen.
- Installieren Sie TLS-Zertifikate auf den Delivery Controllern. Weitere Informationen finden Sie unter Installieren von TLS-Serverzertifikaten auf Controllern.
- 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:
-
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 - Starten Sie den Broker Service neu, nachdem Sie WebSocket aktiviert haben.
-
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--> - Erstellen Sie einen Maschinenkatalog für in AD eingebundene VDAs mit MCS-Bereitstellung. Weitere Informationen finden Sie unter Maschinenkatalog erstellen.
- Erstellen Sie eine Bereitstellungsgruppe und fügen Sie Ihren VDA hinzu. Weitere Informationen finden Sie unter Bereitstellungsgruppen erstellen.
-
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
Enabledmuss 1 sein.Schlüssel:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CitrixBrokerAgent\WebSocket <!--NeedCopy-->Name: Enabled
Typ: REG_DWORD
Wert: 1
-