使用 Microsoft Entra 应用程序代理发布远程桌面

结合使用远程桌面服务和 Microsoft Entra 应用程序代理可提高远程办公人员的工作效率。

本文的目标读者为:

  • 希望通过远程桌面服务发布本地应用程序来向最终用户提供更多应用程序的当前应用程序代理客户。
  • 想要使用 Microsoft Entra 应用程序代理减小其部署的受攻击面的当前远程桌面服务客户。 此访问在 RDS 中提供一组双重验证和条件访问控制机制。

应用程序代理如何适应标准 RDS 部署

标准 RDS 部署包括 Windows Server 上运行的各种远程桌面角色服务。 远程桌面服务体系结构中存在多个部署选项。 与其他 RDS 部署选项不同, 具有 Microsoft Entra 应用程序代理的 RDS 部署 (如下图所示)具有从运行连接器服务的服务器的永久出站连接。 其他部署通过负载均衡器保留打开的入站连接。

应用程序代理位于 RDS VM 和公共 Internet 之间

在 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 主机终结点

  1. 使用这些值发布新的应用代理

    • 内部 URL:https://<rdhost>.com/,其中,<rdhost> 是 RD Web 和 RD 网关共享的共用根。
    • 外部 URL:系统会根据应用程序的名称自动填充此字段,但可以修改它。 用户访问 RDS 时转到此 URL。
    • 预身份验证方法:Microsoft Entra ID。
    • 翻译 URL 标头:否。
    • 使用 HTTP-Only Cookie:否。
  2. 将用户分配到已发布的 RD 应用程序。 确保这些用户也都有权访问 RDS。

  3. 将应用程序的单一登录方法保留为“已禁用 Microsoft Entra 单一登录”。

    注释

    用户必须在 Microsoft Entra ID 和 RD Web 上各执行身份验证一次,但用户可以单一登录到 RD 网关。

  4. 浏览到 Entra ID>应用注册。 从列表中选择应用。

  5. 在“管理”下,选择“品牌打造” 。

  6. 更新“主页 URL”字段以指向你的 RD Web 终结点(如 )。

将 RDS 流量定向到应用程序代理

以管理员身份连接到 RDS 部署,并更改部署的 RD 网关服务器名称。 此配置可确保连接通过 Microsoft Entra 应用程序代理服务。

  1. 连接到运行 RD 连接代理角色的 RDS 服务器。

  2. 启动“服务器管理器”。

  3. 在左侧窗格中选择“远程桌面服务”。

  4. 选择 “概述”。

  5. 在“部署概述”部分中,选择下拉菜单并选择“编辑部署属性”。

  6. 在“RD 网关”选项卡中,将 “服务器名称 ”字段更改为在应用程序代理中为 RD 主机终结点设置的外部 URL。

  7. 将“登录方法”字段更改为“密码身份验证”。

    RDS 上的“部署属性”屏幕

  8. 为所有集合运行此命令。 用自己的信息替换 <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`中使用反引号。

  9. 若要验证自定义 RDP 属性的修改,并查看从此集合的 RDWeb 下载的 RDP 文件内容,请运行以下命令。

    (get-wmiobject -Namespace root\cimv2\terminalservices -Class Win32_RDCentralPublishedRemoteDesktop).RDPFileContents
    

配置远程桌面后,Microsoft Entra 应用程序代理将作为面向互联网的 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 测试该方案。

  1. 转到设置的外部 URL,或在 MyApps 面板中查找应用程序。
  2. 对 Microsoft Entra ID 进行身份验证。 请使用分配给应用程序的帐户。
  3. 对 RD Web 进行身份验证。
  4. RDS 身份验证成功后,可以选择所需的桌面或应用程序,并开始工作。

对其他客户端配置的支持

本文中所述的配置适用于通过 RD Web 或 RD Web 客户端访问 RDS。 但是,如果需要,也可以支持其他操作系统或浏览器。 区别在于你使用的身份验证方法会有不同。

身份验证方法 支持的客户端配置
预身份验证 RD Web - 使用 Microsoft Edge Chromium IE mode + RDS ActiveX 加载项的 Windows 7/10/11
预身份验证 RD Web 客户端 - 与 HTML5 兼容的 Web 浏览器(如 Microsoft Edge、Internet Explorer 11、Google Chrome、Safari 或 Mozilla Firefox(v55.0 和更高版本))
传递 支持 Microsoft 远程桌面应用程序的任何其他操作系统

注释

Microsoft Edge Chromium IE 模式是使用“我的应用”门户访问远程桌面应用时所必需的。

预身份验证流提供比直通流更多的安全优势。 使用预身份验证,可以为本地资源使用 Microsoft Entra 身份验证功能,例如单一登录、条件访问和双重验证。 此外,你还可以确保只有经过身份验证的流量才能访问你的网络。

若要使用传递身份验证,本文列出的步骤仅有下面两处修改:

  1. “发布 RD 主机终结点 ”步骤 1 中,将预身份验证方法设置为 直通
  2. 将 RDS 流量直接导向到应用程序代理中,完全跳过步骤 8。

后续步骤