为了保护 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。
- 网关针对当前 SSL 证书设置(包括 DNS 主机名列表)验证 的源主机 和 源端口 。 这指示 UI 代码是从预期的 DNS 名称站点和端口加载的。
RDP 增强功能
在 RDP TCP 连接上,网关仅允许使用端口 3389(RDP)和端口 2179(VM 连接),因此 TCP 转发功能不能用于任何其他目的。
可能的副作用
如果用户按 IP 地址或 SSL 证书上未描述的内容使用 Windows Admin Center,则用户无法访问 WebSocket,因为它不可信任。 如果需要支持,请修改 HKLM\Software\Microsoft\ServerManagementGateway\WebSocketValidationOverride
注册表值以设置 IP 地址,或仅指定“”*
以忽略验证。