Windows Admin Center ゲートウェイの WebSocket による検証をカスタマイズする

WebSocket アクセスを保護するために、WebSocket 接続によってブラウザーからの配信元の状態が検証されるようになったため、外部アプリケーションはゲートウェイで定義されている WebSocket API にアクセスできなくなります。

検証のカスタマイズ

検証は、さまざまな条件をカスタマイズするように調整できます。

ユーザーは、Windows Admin Center レジストリ値 HKLM\Software\Microsoft\ServerManagementGateway\WebSocketValidationOverride の WebSocket オーバーライド設定を構成して、例外的な配信元ホスト名と配信元ポートを指定できます。 これには、すべて受け入れるワイルドカード名 ("*.mydomain.mycompany.net" や "*" など) が含まれます。 ワイルドカードは、"*." のような 1 つの形式で指定する必要があり、"something*something" のような複合文字列の一致条件と組み合わせることはできません。

使用できる形式の例を次に示します。

  • 現在の TLS 証明書で定義されている配信元ホストは常に許可されます。 (サブジェクト名、代替 DNS 名)
  • Windows Admin Center に構成された配信元ポートを常に許可します
  • "*" - すべての配信元ホストと配信元ポートを受け入れます
  • "*:9876" - すべての配信元ホストと配信元ポート 9876 を受け入れます
  • ":9876" - 配信元ポート 9876 を受け入れます
  • "*.my.domain.com" - 配信元ホスト <any.any.any...>.my.domain.com を受け入れます
  • "*.my.domain.com:9876" - 配信元ホスト <any.any.any...>.my.domain.com および配信元ポート 9876 を受け入れます

防止ロジック

ゲートウェイによって、ユーザー ブラウザー用のセッション Cookie (WAC-SESSION) が追加されます。 ブラウザー セッションとユーザー名が常に関連付けられます。 これにより、異なるユーザーが同じブラウザー セッションを使用できなくなります。

  • UI が WebSocket 接続を開始すると、ブラウザーはセッション Cookie をゲートウェイに送り返します。
  • ゲートウェイによって、セッション Cookie と一致する認証済みユーザー名が常に検証されます。

ゲートウェイによって、元の Windows Admin Center サイトが読み込まれたエンドポイント URL である配信元ヘッダーが検索されます。

  • ゲートウェイは、DNS ホスト名の一覧を含む現在の SSL 証明書設定に対して配信元ホストと配信元ポートを検証しました。 これにより、予想される DNS 名サイトとポートから UI コードが読み込まれたことがわかります。

RDP 拡張機能

RDP TCP 接続では、ゲートウェイではポート 3389 (RDP) とポート 2179 (VM 接続) のみを使用できるため、TCP 転送機能を他の目的で使用することはできません。

考えられる副作用

ユーザーが IP アドレスで Windows Admin Center を使用している場合、または SSL 証明書に記載されていないものを使用している場合、WebSocket は信頼できないため、アクセスできません。 サポートする必要がある場合は、HKLM\Software\Microsoft\ServerManagementGateway\WebSocketValidationOverride レジストリ値を変更して IP アドレスを設定するか、検証を無視するように "*" を指定します。