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
- Citrix Virtual Apps and Desktops™-Administratoren initiieren den Prozess, indem sie VDAs mithilfe des Machine Creation Service (MCS) bereitstellen.
- 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.
- 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, ü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 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 Brokerdienst 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 die AD-Domäne 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
-