远程桌面服务和Microsoft Entra 应用程序代理协同工作,以提高远离公司网络的员工的工作效率。
本文的目标受众为:
- 希望通过远程桌面服务发布本地应用程序来向最终用户提供更多应用程序的当前应用程序代理客户。
- 希望通过使用 Microsoft Entra 应用程序代理减少部署的攻击面的当前远程桌面服务客户。 此方案为 RDS 提供一组双重验证和条件访问控制。
应用程序代理如何适应标准 RDS 部署
标准 RDS 部署包括 Windows Server 上运行的各种远程桌面角色服务。 远程桌面服务体系结构中存在多个部署选项。 与其他 RDS 部署选项不同, 具有 Microsoft Entra 应用程序代理的 RDS 部署 (如下图所示)具有从运行连接器服务的服务器的永久出站连接。 其他部署通过负载均衡器保持入站连接的开放状态。
在 RDS 部署中,远程桌面(RD)Web 角色和 RD 网关角色在面向 Internet 的计算机上运行。 出于以下原因,这些终结点公开:
- RD Web 为用户提供一个公共终结点,用于登录和查看他们可以访问的各种本地应用程序和桌面。 选择资源时,将使用 OS 上的本机应用创建远程桌面协议(RDP)连接。
- 用户启动 RDP 连接后,RD 网关将进入图片。 RD 网关处理来自 Internet 的加密 RDP 流量,并将其转换为用户连接到的本地服务器。 在此方案中,RD 网关接收的流量来自 Microsoft Entra 应用程序代理。
小窍门
有关详细信息,请参阅 如何使用 Azure 资源管理器和 Azure 市场无缝部署 RDS。
要求
- RD Web 终结点和 RD 网关终结点必须位于同一台计算机上,并且具有通用根。 RD Web 和 RD 网关作为具有应用程序代理的单一应用程序发布,以便可以在两个应用程序之间获得单一登录体验。
- 部署 RDS 并 启用应用程序代理。 启用应用程序代理并打开所需的端口和 URL,并在服务器上启用传输层安全性 (TLS) 1.2。 若要了解需要打开哪些端口和其他详细信息,请参阅 教程:在 Microsoft entra ID 中通过应用程序代理添加用于远程访问的本地应用程序。
- 最终用户必须使用兼容的浏览器连接到 RD Web 或 RD Web 客户端。 有关详细信息,请参阅 对客户端配置的支持。
- 发布 RD Web 时,尽可能使用相同的内部和外部完全限定域名(FQDN)。 如果内部和外部完全限定的域名(FQDN)不同,请禁用请求标头转换以避免客户端收到无效的链接。
- 如果使用 RD Web 客户端, 则必须 使用相同的内部和外部 FQDN。 如果内部和外部 FQDN 不同,则通过 RD Web 客户端建立 RemoteApp 连接时遇到 websocket 错误。
- 如果在 Internet Explorer 上使用 RD Web,则需要启用 RDS ActiveX 加载项。
- 如果使用 RD Web 客户端,则需要使用应用程序代理连接器版本 1.5.1975 或更高版本。
- 对于 Microsoft Entra 预身份验证流,用户只能连接到 RemoteApp 和桌面 窗格中发布给他们的资源。 用户无法使用 “连接到远程电脑 ”窗格连接到桌面。
- 如果使用的是 Windows Server 2019,则需要禁用 HTTP2 协议。 有关详细信息,请参阅 教程:在 Microsoft Entra ID 中添加通过应用程序代理进行远程访问的本地应用程序。
部署联合 RDS 和应用程序代理方案
为环境设置 RDS 和 Microsoft Entra 应用程序代理后,请按照步骤合并这两个解决方案。 这些步骤将两个面向 Web 的 RDS 终结点(RD Web 和 RD 网关)发布为应用程序,然后将 RDS 上的流量定向到应用程序代理。
发布 RD 主机终结点
-
- 内部 URL:
https://<rdhost>.com/,其中<rdhost>是 RD Web 和 RD 网关共享的公共根。 - 外部 URL:此字段根据应用程序的名称自动填充,但可以对其进行修改。 用户访问 RDS 时转到此 URL。
- 预身份验证方法:Microsoft Entra ID。
- 翻译 URL 标头:否。
- 使用 HTTP-Only Cookie:否。
- 内部 URL:
将用户分配到已发布的 RD 应用程序。 请确保它们也有权访问 RDS。
将应用程序的单一登录方法保留为 禁用Microsoft Entra 单一登录。
注释
用户需要分别通过 Microsoft Entra ID 和 RD Web 进行一次身份验证,但他们可以在 RD 网关上实现单点登录。
访问 Entra ID>应用注册。 从列表中选择你的应用。
在“ 管理”下,选择“ 品牌”。
更新 主页 URL 字段以指向 RD Web 终结点(例如
https://<rdhost>.com/RDWeb)。
将 RDS 流量定向到应用程序代理
以管理员身份连接到 RDS 部署,并更改部署的 RD 网关服务器名称。 此配置可确保连接通过 Microsoft Entra 应用程序代理服务。
连接到运行 RD 连接代理角色的 RDS 服务器。
启动 服务器管理器。
从左侧窗格中选择 远程桌面服务 。
选择 “概述”。
在“部署概述”部分中,选择下拉菜单,然后选择 “编辑部署属性”。
在“RD 网关”选项卡中,将 “服务器名称 ”字段更改为在应用程序代理中为 RD 主机终结点设置的外部 URL。
将 “登录方法 ”字段更改为 “密码身份验证”。
为每个集合运行此命令。 将 <yourcollectionname> 和 <proxyfrontendurl> 替换为你自己的信息。 此命令在 RD Web 和 RD 网关之间启用单一登录,并优化性能。
Set-RDSessionCollectionConfiguration -CollectionName "<yourcollectionname>" -CustomRdpProperty "pre-authentication server address:s:<proxyfrontendurl>`nrequire pre-authentication:i:1"例如:
Set-RDSessionCollectionConfiguration -CollectionName "QuickSessionCollection" -CustomRdpProperty "pre-authentication server address:s:https://remotedesktoptest-aadapdemo.msappproxy.net/`nrequire pre-authentication:i:1"注释
该命令在``nrequire`中使用反引号。
若要验证自定义 RDP 属性的修改,并查看从此集合的 RDWeb 下载的 RDP 文件内容,请运行以下命令。
(get-wmiobject -Namespace root\cimv2\terminalservices -Class Win32_RDCentralPublishedRemoteDesktop).RDPFileContents
配置远程桌面后,Microsoft Entra 应用程序代理接管为面向 Internet 的 RDS 组件。 删除 RD Web 和 RD 网关计算机上的其他面向 Internet 的公共终结点。
启用 RD Web 客户端
如果希望用户使用 RD Web 客户端,请按照为 用户设置远程桌面 Web 客户端中的步骤作。
远程桌面 Web 客户端为组织的远程桌面基础结构提供访问权限。 需要与 HTML5 兼容的 Web 浏览器,例如 Microsoft Edge、Google Chrome、Safari 或 Mozilla Firefox(v55.0 及更高版本)。
测试方案
在 Windows 7 或 10 计算机上使用 Internet Explorer 测试方案。
- 转到设置的外部 URL,或在 MyApps 面板中查找应用程序。
- 对 Microsoft Entra ID 进行身份验证。 使用分配给应用程序的帐户。
- 对 RD Web 进行身份验证。
- RDS 身份验证成功后,可以选择所需的桌面或应用程序,并开始工作。
支持其他客户端配置
本文中所述的配置用于通过 RD Web 或 RD Web 客户端访问 RDS。 如果需要的话,你也可以支持其他操作系统或浏览器。 区别在于使用的身份验证方法。
| 身份验证方法 | 支持的客户端配置 |
|---|---|
| 预身份验证 | 在 Windows 7/10/11 上使用 Microsoft Edge Chromium IE mode + RDS ActiveX 插件的 RD Web |
| 预身份验证 | RD Web 客户端 - 与 HTML5 兼容的 Web 浏览器,如 Microsoft Edge、Internet Explorer 11、Google Chrome、Safari 或 Mozilla Firefox(v55.0 及更高版本) |
| 穿透 | 支持Microsoft远程桌面应用程序的任何其他作系统 |
注释
Microsoft Edge Chromium IE 使用“我的应用”门户访问远程桌面应用时,需要特定模式。
预身份验证流提供比直通流更多的安全优势。 使用预身份验证,可以为本地资源使用 Microsoft Entra 身份验证功能,例如单一登录、条件访问和双重验证。 此外,还确保只有经过身份验证的流量到达网络。
若要使用直通身份验证,只需对本文中列出的步骤进行两项修改:
- 在 “发布 RD 主机终结点 ”步骤 1 中,将预身份验证方法设置为 直通。
- 在 将 RDS 流量直接引导到应用程序代理中,完全跳过步骤 8。