在现代混合办公环境中,如何让员工能够从任何地方安全访问公司内部资源成为了企业的重要挑战。传统的VPN解决方案虽然可以满足需求,但有时配置复杂,并可能涉及公网IP的问题。为了解决这个问题,Microsoft Entra(原Azure AD)Application Proxy与Remote Desktop Service (RDS) 联合提供了一种更加简洁且安全的解决方案,帮助用户在没有公网IP的情况下从外网访问内部的计算机设备。
Microsoft Entra Application Proxy 简介
Microsoft Entra Application Proxy 是 Azure Active Directory(Azure AD)中的一项功能,它允许用户通过互联网安全地访问本地应用程序,而无需在外网暴露服务器或使用 VPN。其核心功能包括:
无需公网IP:无需在企业的防火墙上暴露应用的IP。
强大的身份验证和访问控制:通过Azure AD的条件访问策略和多重身份验证(MFA)来保护资源。
反向代理架构:外部用户通过Application Proxy访问资源,代理位于网络边界以防止直接访问内部网络。
Remote Desktop Service 简介
Remote Desktop Services(RDS)是Windows服务器提供的远程桌面功能,允许用户通过远程桌面协议(RDP)连接到运行Windows操作系统的计算机。RDS常用于:
- 远程工作,访问公司内的资源和应用程序。
- 通过集中管理减少客户端设备配置需求。
通过将Microsoft Entra Application Proxy与RDS结合使用,用户可以从互联网安全地访问公司内部的设备,而不需要将RDS服务器暴露在公网中。
解决方案原理与架构
在这套方案中,Microsoft Entra Application Proxy充当了RDS的反向代理。流程如下:
- 外部用户请求:用户在外网通过浏览器或RDP客户端访问远程桌面(或其他应用)。
- 身份验证:请求首先通过Application Proxy发送到Azure AD,Azure AD要求用户进行身份验证(如用户名密码或多因素认证)。
- 反向代理:验证通过后,Application Proxy将用户的请求安全地代理至内部网络中的RDS服务器。
- 远程桌面连接:用户通过RDS连接到指定的内部计算机,进行远程操作。
架构图示
部署步骤
步骤 1:准备工作
- 确保企业内部已经部署了RDS服务器,并且用户能够在内网正常访问RDS。
- 安装并配置Microsoft Entra Application Proxy连接器(在内网服务器上运行,负责代理外部请求)。
步骤 2:配置Microsoft Entra Application Proxy
- 登录Microsoft Entra管理中心(原Azure AD)。
- 在导航栏中选择“企业应用程序”,然后选择“Application Proxy”。
- 选择“添加”,并填写远程桌面服务器的应用信息。
- 内部URL:填写RDS服务器的内网地址。
- 外部URL:这是用户在外网访问时使用的URL,通常是通过Azure的安全域名生成。
- 配置用户访问权限。通过Azure AD,可以为此远程桌面应用程序设置访问权限,配置条件访问策略,要求用户使用多重身份验证(MFA)等。
步骤 3:发布 RD 主机终结点
- 使用以下值发布新的应用程序代理应用程序。
- 内部 URL:https://<rdhost>.com/,其中,<rdhost> 是 RD Web 和 RD 网关共享的共用根。
- 外部 URL:系统会根据应用程序的名称自动填充此字段,但可以修改它。 用户在访问 RDS 时会转到此 URL。
- 预身份验证方法:Microsoft Entra ID。
- 转换 URL 标头:否。
- 使用仅限 HTTP 的 Cookie:否。
- 将用户分配到已发布的 RD 应用程序。 确保这些用户也都有权访问 RDS。
- 将应用程序的单一登录方法保留为“已禁用 Microsoft Entra 单一登录”。
- 浏览到“标识”>“应用程序”>“应用注册”。 从列表中选择应用。
- 在“管理”下,选择“品牌打造” 。
- 更新“主页 URL”字段以指向你的 RD Web 终结点(如 https://<rdhost>.com/RDWeb)。
步骤 4:将 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"
- 若要验证对自定义 RDP 属性的修改并查看从此集合的 RDWeb 下载的 RDP 文件内容,请运行以下命令。
(get-wmiobject -Namespace root\cimv2\terminalservices -Class Win32_RDCentralPublishedRemoteDesktop).RDPFileContents
配置远程桌面后,Microsoft Entra 应用程序代理会充当 RDS 的面向 Internet 的组件。 请在 RD Web 和 RD 网关计算机上删除其他面向 Internet 的公共终结点。
步骤 5:启用 RD Web 客户端
如果希望用户使用 RD Web 客户端,请按照为用户设置远程桌面 Web 客户端中的步骤操作。
远程桌面 Web 客户端提供对组织的远程桌面基础结构的访问。 需要与 HTML5 兼容的 Web 浏览器,例如 Microsoft Edge、Google Chrome、Safari 或 Mozilla Firefox(v55.0 及更高版本)。
总结
通过将Microsoft Entra Application Proxy与Remote Desktop Service集成,企业无需公网IP即可提供一个安全的远程访问解决方案。这个架构不仅简化了网络配置,还利用了Azure AD的强大安全功能,有效降低了外网暴露风险,同时提升了用户体验。企业在部署后,可以灵活应用Azure的条件访问策略,进一步增强远程访问的安全性。
参考资料
https://learn.microsoft.com/zh-cn/entra/identity/app-proxy/application-proxy-integrate-with-remote-desktop-services