自定义 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。

  • 网关针对当前 SSL 证书设置(包括 DNS 主机名列表)验证 的源主机源端口 。 这指示 UI 代码是从预期的 DNS 名称站点和端口加载的。

RDP 增强功能

在 RDP TCP 连接上,网关仅允许使用端口 3389(RDP)和端口 2179(VM 连接),因此 TCP 转发功能不能用于任何其他目的。

可能的副作用

如果用户按 IP 地址或 SSL 证书上未描述的内容使用 Windows Admin Center,则用户无法访问 WebSocket,因为它不可信任。 如果需要支持,请修改 HKLM\Software\Microsoft\ServerManagementGateway\WebSocketValidationOverride 注册表值以设置 IP 地址,或仅指定“”*以忽略验证。