Citrix Virtual Apps and Desktops

VDAとデリバリーコントローラー™間のウェブソケット通信

この記事では、WCF通信を使用する代わりに、VDAとDelivery Controller間の通信にWebSocket接続を設定する方法について説明します。これにより、VDAからDelivery Controllerへの通信にTLSポート443のみを使用するという利点が得られます。

仕組み

以下のセクションでは、Delivery ControllerとVDA間のWebSocket接続のワークフローについて説明します。

通常のブローカー操作中

  1. シトリックス バーチャル アプリケーションズ アンド デスクトップ™管理者は、マシン クリエーション サービス (MCS)を使用してVDAをプロビジョニングすることで、プロセスを開始します。
  2. MCSプロビジョニングプロセス中に、MCSは各VDAの公開鍵と秘密鍵のペアを生成し、Delivery Controller上のFMA信頼サービスに公開鍵を登録します。MCSは、公開鍵と秘密鍵のペアをVDAのIDディスク下のファイルとして保存します。
  3. VDAマシンが起動すると、VDAマシンにインストールされているMCSエージェントは、IDディスクからキーペアを読み取り、この情報をVDAレジストリの場所に書き込みます。
  4. VDAにインストールされているブローカーエージェントは、レジストリからキーペアを読み取り、秘密鍵で署名されたサービスキーを使用して、SSL対応のWebSocketリクエストをDelivery Controllerに生成します。
  5. Delivery Controllerは、FMA信頼サービスからの公開鍵を使用して、署名されたサービスキー認証ヘッダーを検証します。
  6. 検証が完了すると、システムはVDAとDelivery Controller間のWebSocket接続を確立します。

LHCモードがアクティブになったとき

LHCのWebSocketサポートを有効にすると、LHCモード中にVDAが高可用性サービスとのWebSocket接続を確立しようとしたときに、高可用性サービスはローカルデータベースからの公開鍵を使用して、署名されたサービスキー認証ヘッダーを検証します。これによりWebSocket接続が認証され、LHCモードでもVDAとDelivery Controller間のWebSocket接続が成功します。

ウェブソケット対応

始める前に

  1. サイトを構成します。詳細については、「サイトの作成」を参照してください。
  2. Delivery Controller に TLS 証明書をインストールします。詳細については、「Controller に TLS サーバー証明書をインストールする」を参照してください。
  3. Delivery Controller を信頼するように、VDA にルート CA と中間 CA をインストールします。

実施手順

WebSocket 接続をセットアップするには、次の手順に従います。

  1. Delivery Controller で WebSocket 接続を有効にします。サイトに存在する各 Delivery Controller で次のコマンドを実行します。

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

  2. WebSocket を有効にした後、Broker Service を再起動してください。
  3. LHC モードの WebSocket サポートを有効にします。サイトに存在する各 Delivery Controller で次のコマンドを実行します。

    New-ItemProperty "HKLM:\SOFTWARE\Citrix\DesktopServer\LHC" -Name "WebSocketEnabledLhc" -PropertyType "DWord" -Value 1 -Force
    <!--NeedCopy-->
    
  4. MCS プロビジョニングを使用して、AD 参加済み VDA のマシンカタログを作成します。詳細については、「マシンカタログの作成」を参照してください。
  5. デリバリーグループを作成し、VDA を追加します。詳細については、「デリバリーグループの作成」を参照してください。
  6. VDA で WebSocket 接続を有効にします。VDA で次の PowerShell コマンドを実行します。

    New-ItemProperty "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CitrixBrokerAgent\WebSocket" -Name "Enabled" -PropertyType "DWord" -Value 1 -Force
    <!--NeedCopy-->
    
    • WebSocket が有効になっているかどうかを確認するには、次のレジストリキーの値をチェックします。Enabled の値は 1 である必要があります。

      キー:

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

      名前: 有効

      タイプ: レグ_ディーワード

      値: 1

VDAとデリバリーコントローラー™間のウェブソケット通信

この記事の概要