Microsoft Entra 应用程序代理提供对本地 Web 应用程序的安全远程访问。 单一登录到 Microsoft Entra ID 后,用户可以通过外部 URL 或内部应用程序门户访问云端和本地的应用程序。 例如,应用程序代理可以为远程桌面、SharePoint、Teams、Tableau、Qlik 和业务线 (LOB) 应用程序提供远程访问和单一登录功能。
Microsoft Entra 应用程序代理是:
简单易用。 用户可像访问 Microsoft 365 以及其他与 Microsoft Entra ID 集成的 SaaS 应用一样访问你的本地应用程序。 无需更改或更新应用程序即可使用应用程序代理。
安全。 本地应用程序可以使用 Azure 的授权控制和安全分析功能。 例如,本地应用程序可使用条件访问和双重验证。 应用程序代理不要求通过防火墙打开入站连接。
经济高效。 本地解决方案通常需要设置和维护隔离区 (DMZ)、边缘服务器或其他复杂的基础结构。 应用程序代理在云中运行,易于使用。 若要使用应用程序代理,无需更改网络基础结构或在本地环境中安装其他设备。
提示
如果已有Microsoft Entra ID,则可以将其用作一个控制平面,以便无缝安全地访问本地应用程序。
虽然并不全面,但该列表演示了在混合共存方案中使用应用程序代理的示例:
- 在不使用 DMZ 的情况下,以简化方式对外发布内部部署 Web 应用程序。
- 支持在云中和本地跨设备、资源与应用进行单一登录 (SSO)
- 支持对云中和本地的应用执行多重身份验证
- 快速将云功能与 Microsoft 云的安全性配合使用
- 集中管理用户帐户
- 集中控制身份和安全性
- 基于组成员身份自动添加或删除用户对应用程序的访问权限
本文将会说明 Microsoft Entra ID 和应用程序代理如何为远程用户提供单一登录 (SSO) 体验。 用户在不使用 VPN 或双重宿主服务器和防火墙规则的情况下安全连接到本地应用。 本文可帮助你了解应用程序代理如何将云的功能和安全优势引入本地 Web 应用程序。 此外,还会介绍可行的体系结构和拓扑。
提示
应用程序代理包括在云中运行的应用程序代理服务和在本地服务器上运行的专用网络连接器。 Microsoft Entra ID、应用程序代理服务和专用网络连接器协同工作,将用户登录令牌从 Microsoft Entra ID 安全地传递到 Web 应用程序。
应用程序代理适用于:
- 使用集成 Windows 身份验证进行身份验证的 Web 应用程序
- 使用基于窗体或基于标头的访问的 Web 应用程序
- 想要公开给不同设备上丰富应用程序的 Web API
- 托管在远程桌面网关后面的应用程序
- 与 Microsoft 身份验证库 (MSAL) 集成的丰富客户端应用
应用程序代理支持单一登录。 有关支持的方法的详细信息,请参阅选择单一登录方法。
过去的远程访问方式
以前,用于防范攻击者访问内部资源,同时方便远程用户进行访问的控制平面完全位于 DMZ(外围网络)中。 但是,部署在外围网络中的、由外部客户端用来访问企业资源的 VPN 和反向代理解决方案并不适合云世界。 它们往往存在以下弱点:
- 增加硬件成本
- 维护安全性(修补、监视端口等)
- 在边缘对用户进行身份验证
- 在外围网络中对用户进行web服务器的身份验证
- 使用 VPN 客户端软件的分发和配置为远程用户维护 VPN 访问。 此外,需要在外围网络中维护已加入域的服务器,这很容易受到外部攻击。
在当今的云优先世界中,Microsoft Entra ID 最适合用于控制哪些人员和内容可以进入你的网络。 Microsoft Entra 应用程序代理与新式身份验证和基于云的技术(例如 SaaS 应用程序和标识提供者)集成。 用户可以借助这些集成从任意位置访问应用。 应用程序代理不仅更适合当今的数字工作区,而且比 VPN 和反向代理解决方案更安全,且更易于实施。 远程用户可像访问 Microsoft 以及其他与 Microsoft Entra ID 集成的 SaaS 应用一样访问你的本地应用程序。 无需更改或更新应用程序即可使用应用程序代理。 此外,应用程序代理不要求通过防火墙打开入站连接。 只需设置好应用程序代理,然后就可以忘记它。
远程访问的未来
在当今的数字工作场所中,用户使用多个设备从任意位置访问应用和工作。 常量因子是用户标识。 使用 Microsoft Entra 标识管理 作为安全控制平面,开始保护网络。 此基于标识的模型包含以下组件:
- 一个用于跟踪用户和用户相关信息的标识提供者。
- 设备目录,用于维护有权访问企业资源的设备列表。 此目录包含相应的设备信息(例如设备类型、完整性等)。
- 策略评估服务会检查用户和设备是否满足管理员设置的安全策略。
- 授予或拒绝组织资源访问权限的功能。 Microsoft Entra ID 跟踪访问本地和云中发布的 Web 应用的用户。 它提供了一个管理这些应用的中心点。 若要增强安全性,请启用 Microsoft Entra 条件访问。 此功能通过设置身份验证和访问条件,确保只有适当的人员才能访问应用程序。
注意
Microsoft Entra 应用程序代理可以替代远程用户访问内部资源时使用的 VPN 或反向代理。 它不是针对企业网络上的内部用户设计的。 当内部用户不必要地使用应用程序代理时,可能会导致意外的性能问题。
应用程序代理工作原理概述
下图显示了 Microsoft Entra ID 和应用程序代理如何共同向本地应用程序提供单一登录。
- 用户通过终结点访问应用程序后,将被定向到 Microsoft Entra 登录页。
- 成功登录后,Microsoft Entra ID 会向用户的客户端设备发送令牌。
- 客户端将令牌发送到应用程序代理服务。 该服务从令牌中检索用户主体名称 (UPN) 和安全主体名称 (SPN)。 然后,应用程序代理将请求发送到连接器。
- 连接器代表用户执行所需的单一登录 (SSO) 身份验证。
- 连接器将请求发送到本地应用程序。
- 通过连接器和应用程序代理服务将响应发送给用户。
注意
与大多数 Microsoft Entra 混合代理一样,专用网络连接器不要求你通过防火墙打开入站连接。 第 3 步中的用户流量在应用程序代理服务处终止。 专用网络连接器(驻留在专用网络中)负责其余的通信。
组件 | 说明 |
---|---|
终结点 | 终结点是 URL 或最终用户门户。 用户可通过访问外部 URL 访问位于你网络外部的应用程序。 网络内的用户可以通过 URL 或最终用户门户访问应用程序。 当用户转到其中一个终结点时,将在 Microsoft Entra ID 中进行身份验证,并通过连接器路由到本地应用程序。 |
Microsoft Entra 身份识别系统 | Microsoft Entra ID 使用存储在云端的租户目录执行身份验证。 |
应用程序代理服务 | 应用程序代理服务作为 Microsoft Entra ID 的一部分在云中运行。 它将登录令牌从用户传递到专用网络连接器。 应用程序代理在收到请求时转发所有可访问的标头,并根据其协议将标头设置为客户端 IP 地址。 如果传入代理的请求已经包含该标头,则将客户端 IP 地址添加到作为标头值的逗号分隔列表的末尾。 |
专用网络连接器 | 连接器是可在网络内的 Windows Server 上运行的轻型代理。 连接器管理云端应用程序代理服务与本地应用程序之间的通信。 连接器仅使用出站连接,因此无需在面向 Internet 的网络中打开入站端口。 连接器是无状态的,可根据需要从云中提取信息。 有关连接器的详细信息(例如,它们如何均衡负载和执行身份验证),请参阅了解 Microsoft Entra 专用网络连接器。 |
Active Directory (AD) | Active Directory 在本地运行,对域帐户执行身份验证。 配置单一登录后,连接器会与 AD 通信以执行所需的任何额外身份验证。 |
本地应用程序 | 最后,用户便可以访问本地应用程序。 |
应用程序代理是你在 Microsoft Entra 管理中心配置的 Microsoft Entra 服务。 它允许您在 Azure 云中发布与您组织内部应用程序服务器 URL 连接的外部公共 HTTP/HTTPS URL 终结点。 可将这些本地 Web 应用与 Microsoft Entra ID 集成,以支持单一登录。 然后,用户可以像访问 Microsoft 365 和其他 SaaS 应用一样,访问本地 Web 应用。
应用程序代理服务在云中运行,专用网络连接器在本地服务器上作为轻型代理运行,Microsoft Entra ID 充当标识提供者。 这些组件使用户能够使用无缝单一登录体验访问本地 Web 应用程序。
用户通过身份验证后,外部用户可在其桌面或 iOS/MAC 设备上使用一个显示 URL 或我的应用访问本地 Web 应用程序。 例如,应用程序代理可为远程桌面、SharePoint 站点、Tableau、Qlik、Outlook Web 版和业务线 (LOB) 应用程序提供远程访问和单一登录功能。
身份验证
可通过多种方法配置应用程序以便进行单一登录,所选的方法取决于应用程序使用的身份验证。 应用程序代理支持以下类型的应用程序:
- Web 应用程序
- 想要公开给不同设备上丰富应用程序的 Web API
- 托管在远程桌面网关之后的应用程序
- 与 Microsoft 身份验证库 (MSAL) 集成的丰富客户端应用
应用程序代理适用于使用以下本机身份验证协议的应用:
- 集成 Windows 身份验证 (IWA) 。 对于集成 Windows 身份验证(IWA),专用网络连接器使用 Kerberos 约束委派(KCD)对 Kerberos 应用程序的用户进行身份验证。
应用程序代理还支持特定配置方案中非Microsoft合作伙伴的身份验证协议:
- 基于标头的身份验证。 此方法使用 PingAccess(非Microsoft合作伙伴服务)来处理依赖于标头的应用程序的身份验证。
- 基于表单或密码的身份验证。 使用此身份验证方法时,用户在首次访问应用程序时使用用户名和密码登录。 首次登录后,Microsoft Entra ID 会为应用程序提供用户名和密码。 在此方案中,Microsoft Entra ID 处理身份验证。
- SAML 身份验证。 使用安全断言标记语言(SAML)2.0 或 WS-Federation 协议的应用程序支持基于 SAML 的单一登录。 使用 SAML 单一登录时,Microsoft Entra 会通过用户的 Microsoft Entra 帐户向应用程序进行身份验证。
有关支持的方法的详细信息,请参阅选择单一登录方法。
安全优势
应用程序代理和 Microsoft Entra 提供的远程访问解决方案支持客户可能利用的多项安全优势,包括:
经过身份验证的访问。 应用程序代理使用 预身份验证 来确保只有经过身份验证的连接才能到达网络。 对于配置了预身份验证的应用程序,它阻止所有没有有效令牌的流量。 此方法通过仅允许经过验证的标识访问后端应用程序来显著减少目标攻击。
条件访问。 在与网络建立连接之前,可以应用更丰富的控制策略。 使用条件访问可以针对允许哪些流量访问后端应用程序来定义限制。 您创建基于位置、身份验证强度和用户风险概况来限制登录的策略。 随着条件访问的发展,将添加更多的控件,以提供更多的安全性,例如与 Microsoft Defender for Cloud Apps 的集成。 Defender for Cloud Apps 集成使你能够配置本地 应用程序,以便 使用条件访问实时监视和控制基于条件访问策略的会话。
流量终止。 与后端服务器重建会话时,发往后端应用程序的所有流量将在云中的应用程序代理服务上终止。 此连接策略意味着后端服务器不会暴露给直接的 HTTP 流量。 它们更好地防范目标 DoS(拒绝服务)攻击,因为防火墙未受到攻击。
所有访问都是出站的。 专用网络连接器仅使用通过端口 80 和 443 与云中应用程序代理服务建立的出站连接。 由于没有入站连接,因此不需要为传入的连接或外围网络中的组件打开防火墙端口。 所有连接都是通过安全通道建立的出站连接。
基于安全分析和机器学习 (ML) 的智能。 由于它是 Microsoft Entra ID 的一部分,因此应用程序代理可以使用 Microsoft Entra ID 保护 (需要 高级 P2 许可)。 Microsoft Entra ID 标识保护将机器学习安全智能与来自 Microsoft 反数字犯罪部门和 Microsoft 安全响应中心的数据馈送结合起来,以主动识别遭到入侵的帐户。 “Microsoft Entra ID 保护”提供实时防护,专门针对高风险登录。它会考虑多种因素,例如:从受感染设备进行访问、通过匿名化网络进行访问,或者来自不常见或不太可能位置的访问,从而增加会话的风险评估。 此风险概况用于实时保护。 其中许多报表和事件已通过 API 提供,可与安全信息和事件管理 (SIEM) 系统集成。
以服务的形式进行远程访问。 无需担心要维护和修补本地服务器即可启用远程访问。 应用程序代理是 Microsoft 拥有的一项 Internet 级服务,因此,用户始终可以获得最新的安全修补程序和升级。 未修补的软件仍会遭受大量攻击。 根据美国国土安全局的信息,高达 85% 的有针对性攻击都是可预防的。 使用此服务模型就不再需要承受管理边缘服务器的繁重负担,也不需要费力对其进行修补。
Intune 集成。 使用 Intune 可将企业流量与个人流量分开路由。 应用程序代理确保企业流量经过身份验证。 还可将应用程序代理和 Intune Managed Browser功能结合使用,使远程用户能够在 iOS 和 Android 设备上安全访问内部网站。
云路线图
实施应用程序代理的另一项主要优势是可将 Microsoft Entra ID 扩展到本地环境。 事实上,实施应用程序代理是将组织和应用转移到云的关键一步。 迁移到云端并脱离本地身份验证,从而减少您对本地系统的依赖,并使用 Microsoft Entra 身份管理功能作为管理中枢。 只需对现有应用程序做出极少量的更新甚至无需更新,就能访问单一登录、多重身份验证和集中管理等云功能。 将必要的组件轻松安装到应用程序代理即可建立远程访问框架。 转移到云后,可以访问最新的 Microsoft Entra 功能和更新,并可以访问高可用性和灾难恢复等功能。
若要详细了解如何将应用迁移到 Microsoft Entra ID,请参阅将应用程序迁移到 Microsoft Entra ID。
体系结构
示意图概括性地演示了 Microsoft Entra 身份验证服务和应用程序代理如何共同为用户提供本地应用程序的单一登录。
- 用户通过终结点访问应用程序,并重定向到 Microsoft Entra 登录页。 条件访问策略检查特定条件,以确保符合组织的安全要求。
- Microsoft Entra ID 将令牌发送到用户的客户端设备。
- 客户端将令牌发送到应用程序代理服务,该服务从令牌中提取用户主体名称(UPN)和安全主体名称(SPN)。
- 应用程序代理将请求转发到 专用网络连接器。
- 连接器处理所需的任何额外身份验证(可根据身份验证方法选择),检索应用程序服务器的内部终结点,并将请求发送到本地部署的应用程序。
- 应用程序服务器响应,连接器将响应发送回应用程序代理服务。
- 应用程序代理服务向用户传递响应。
Microsoft Entra 应用程序代理包括基于云的应用程序代理服务和本地连接器。 该连接器侦听来自应用程序代理服务的请求并处理与内部应用程序的连接。 请务必注意,所有通信都通过传输层安全性(TLS)发生,并且始终源自应用程序代理服务的连接器。 也就是说,通信仅限出站。 连接器在执行所有调用时,都会使用客户端证书向应用程序代理服务进行身份验证。 在连接安全性方面,唯一的例外是执行初始设置步骤,因为客户端证书是在此步骤中建立的。 有关详细信息,请参阅应用程序代理的工作原理。
Microsoft Entra 专用网络连接器
应用程序代理使用 Microsoft Entra 专用网络连接器。 Microsoft Entra 专用访问使用相同的连接器。 若要详细了解连接器,请参阅 Microsoft Entra 专用网络连接器。
其他用例
到目前为止,我们专注于使用应用程序代理在外部发布本地应用,并为所有云和本地应用启用单一登录。 但是,应用程序代理还支持其他用例,包括:
- 安全发布 REST API。 使用应用程序代理为本地或云托管 API 创建公共终结点。 控制身份验证和授权,而无需打开入站端口。 了解更多信息,请参阅 启用本机客户端应用程序以与代理应用程序交互 和 使用 OAuth 2.0、Microsoft Entra ID 和 API 管理来保护 API。
- 远程桌面服务(RDS)。 标准远程桌面服务 (RDS) 部署需要打开的入站连接。 但是,使用应用程序代理的 RDS 部署会从运行连接器服务的服务器提供永久性的出站连接。 这样,你便可以通过远程桌面服务发布本地应用程序,为用户提供更多的应用程序。 此外,可以使用有限的一组双重验证方法和 RDS 的条件访问控制减小部署的受攻击面。
- 发布使用 WebSocket 进行连接的应用程序。 Qlik Sense 支持目前以公共预览版提供,今后将会扩展到其他应用。
- 让本机客户端应用程序与代理应用程序交互。 可使用 Microsoft Entra 应用程序代理来发布 Web 应用,它还可用于发布已使用 Microsoft 身份验证库 (MSAL) 配置的本机客户端应用程序。 客户端应用程序不同于 Web 应用,因为前者安装在设备上,而后者需通过浏览器访问。
结束语
组织适应工作和工具的快速变化。 员工使用自己的设备,并依赖于软件即服务(SaaS)应用程序。 因此,管理和保护数据变得更加复杂。 数据现在跨本地和云环境移动,远远超出了传统边界。 这种转变可提高工作效率和协作,同时使保护敏感数据更加困难。
Microsoft Entra 应用程序代理通过提供远程访问即服务来减少本地占用情况。 无论是使用 Microsoft Entra ID 来管理混合设置中的用户,还是计划启动云旅程,应用程序代理都简化了远程访问并提高安全性。
当今的组织应开始利用应用程序代理的以下优势:
- 在外部发布本地应用程序,无需维护传统 VPN、其他本地 Web 发布解决方案或 DMZ 方法的相关开销。
- 单一登录到所有应用程序,无论是 Microsoft 365 还是其他 SaaS 应用(包括本地应用程序)
- Microsoft Entra 利用 Microsoft 365 实现云级别的安全性,以防止未经授权的访问。
- Intune 集成可确保企业流量经过身份验证
- 集中管理用户帐户
- 自动更新可确保获得最新的安全修补程序
- 发布新功能时,最近增加了对SAML单一登录的支持以及更精细的应用程序Cookie管理。