分享方式:


針對 Windows Admin Center 閘道客製化 WebSocket 驗證

為了保護 WebSocket 存取,WebSocket 連線現在會驗證瀏覽器的原始狀態,因此並非任何外部應用程式都可以存取閘道上定義的 WebSocket API。

驗證的客製化

驗證可以調整成客製化各種條件。

使用者可以在 Windows Admin Center 註冊值配置 WebSocket 覆寫設定,HKLM\Software\Microsoft\ServerManagementGateway\WebSocketValidationOverride以便具體指明例外原始主機名稱和原始連接埠。 這包括萬用字元名稱如 "*.mydomain.mycompany.net" 或只是 "*" 接受全部。 萬用字元必須被具體指明像 "*." 的單一形態,且無法結合複雜的字串比對條件,像是 "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 證書設定驗證原始主機原始連接埠。 這告知 UI 程式碼從預期的 DNS 名稱網站和連接埠載入。

RDP 增強功能

閘道在 RDP TCP 連線上只允許使用連接埠 3389 (RDP) 和 2179 (VM 連線),因此 TCP 轉送功能無法用於任何其他用途。

可能的副作用

如果使用者按 IP 位址或 SSL 證書未描述的內容使用 Windows Admin Center,使用者無法存取 WebSocket,因為它不受信任。 如果需要支援,請修改HKLM\Software\Microsoft\ServerManagementGateway\WebSocketValidationOverride註冊值設定 IP 位址或只具體指明 "*" 忽略驗證。