針對 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 位址或只具體指明 "*
" 忽略驗證。