Citrix Virtual Apps and Desktops

Comunicación WebSocket entre el VDA y el Delivery Controller™

En este artículo se describe cómo configurar una conexión WebSocket para la comunicación entre los VDA y los Delivery Controllers como alternativa al uso de la comunicación WCF. Ofrece la ventaja de que solo se usa el puerto TLS 443 para la comunicación del VDA al Delivery Controller.

Funcionamiento

En las siguientes secciones se describe el flujo de trabajo para la conexión WebSocket entre un Delivery Controller y un VDA:

Durante las operaciones normales de intermediación

  1. Los administradores de Citrix Virtual Apps and Desktops™ inician el proceso aprovisionando los VDA mediante Machine Creation Services (MCS).
  2. Durante el proceso de aprovisionamiento con MCS, MCS genera pares de claves públicas-privadas para cada VDA y registra las claves públicas en el servicio de confianza de FMA en el Delivery Controller. MCS guarda el par de claves pública-privada como un archivo en el disco de identidad de los VDA.
  3. Cuando se inicia la máquina VDA, el agente de MCS instalado en la máquina VDA lee el par de claves del disco de identidad y escribe esta información en la ubicación del Registro del VDA.
  4. El agente broker instalado en el VDA lee los pares de claves del registro y genera una solicitud WebSocket compatible con SSL dirigida al Delivery Controller con la clave de servicio firmada por la clave privada.
  5. El Delivery Controller verifica el encabezado de autorización de la clave de servicio firmada con la clave pública del servicio de confianza de FMA.
  6. Una vez finalizada la verificación, el sistema establece la conexión WebSocket entre el VDA y el Delivery Controller.

Al activarse el modo LHC

Si habilita la compatibilidad de Websocket con LHC, entonces, durante el modo LHC, cuando un VDA intenta establecer una conexión Websocket con el servicio de alta disponibilidad, este último verifica el encabezado de autorización de la clave de servicio firmada con la clave pública de la base de datos local. Esto autentica la conexión WebSocket, y la conexión WebSocket entre el VDA y el Delivery Controller funciona incluso en modo LHC.

Compatibilidad con WebSocket

Antes de comenzar

  1. Configure el sitio. Para obtener más información, consulte Crear un sitio.
  2. Instale los certificados TLS en los Delivery Controllers. Para obtener más información, consulte Instalar certificados de servidor TLS en los Controllers.
  3. Instale la CA raíz y la CA intermedia en el VDA para confiar en el Delivery Controller.

Procedimiento

Siga las instrucciones para configurar una conexión WebSocket:

  1. Habilite la conexión WebSocket en el Delivery Controller. Ejecute el siguiente comando en cada Delivery Controller presente en su sitio:

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

  2. Reinicie el servicio de broker después de habilitar WebSocket.
  3. Habilite la compatibilidad de websocket con el modo LHC. Ejecute el siguiente comando en cada Delivery Controller presente en su sitio:

      New-ItemProperty "HKLM:\SOFTWARE\Citrix\DesktopServer\LHC" -Name "WebSocketEnabledLhc" -PropertyType "DWord" -Value 1 -Force
    <!--NeedCopy-->
    
  4. Cree un catálogo de máquinas para los VDA unidos a AD con aprovisionamiento de MCS. Para obtener más información, consulte Crear un catálogo de máquinas.
  5. Cree un grupo de entrega y agréguele su VDA. Para obtener más información, consulte Crear grupos de entrega.
  6. Habilite la conexión de WebSocket en el VDA. Ejecute el siguiente comando de PowerShell en el VDA:

      New-ItemProperty "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CitrixBrokerAgent\WebSocket" -Name "Enabled" -PropertyType "DWord" -Value 1 -Force
    <!--NeedCopy-->
    
    • Para comprobar si WebSocket está habilitado, compruebe el siguiente valor de clave de Registro. El valor de Enabled debe ser 1.

      Clave:

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

      Nombre: Enabled

      Tipo: REG_DWORD

      Valor: 1

Comunicación WebSocket entre el VDA y el Delivery Controller™