使用 Microsoft Entra 应用程序代理为远程用户发布本地应用

Microsoft Entra 应用程序代理提供对本地 Web 应用程序的安全远程访问。 单一登录 Microsoft Entra ID 后,用户可以通过外部 URL 或内部应用程序门户访问云和本地应用程序。 例如,应用程序代理可以提供远程桌面、SharePoint、Teams、Tableau、Qlik 和业务线(LOB)应用程序的远程访问和单一登录。

Microsoft Entra 应用程序代理为:

  • 易于使用。 用户可以访问本地应用程序的方式与访问 Microsoft 365 和其他与 Microsoft Entra ID 集成的 SaaS 应用的方式相同。 无需更改或更新应用程序以使用应用程序代理。

  • 安全。 本地应用程序可以使用 Azure 的授权控制和安全分析。 例如,本地应用程序可以使用条件访问和双重验证。 应用程序代理不需要通过防火墙打开入站连接。

  • 经济高效。 本地解决方案通常需要设置和维护非军事区域(外围网络)、边缘服务器或其他复杂基础结构。 应用程序代理在云中运行,使它易于使用。 若要使用应用程序代理,无需更改网络基础结构或在本地环境中安装更多设备。

小窍门

如果已有Microsoft Entra ID,则可以将其用作一个控制平面,以便无缝安全地访问本地应用程序。

虽然并不全面,但该列表演示了在混合共存方案中使用应用程序代理的示例:

  • 无需使用 DMZ,简化地将内部 Web 应用发布到外部
  • 支持跨云和本地的设备、资源和应用的单一登录(SSO)
  • 为云和本地中的应用支持多重身份验证
  • 快速将云功能与 Microsoft 云的安全性配合使用
  • 集中用户帐户管理
  • 集中控制身份和安全性
  • 根据组成员身份自动添加或删除对应用程序的用户访问

本文介绍如何Microsoft Entra ID 和应用程序代理为远程用户提供单一登录(SSO)体验。 用户无需 VPN 或双宿主服务器和防火墙规则即可安全地连接到本地应用。 本文可帮助你了解应用程序代理如何将云的功能和安全优势引入本地 Web 应用程序。 它还介绍了可能的体系结构和拓扑。

小窍门

应用程序代理包括应用程序代理服务,该服务在云中运行,以及在本地服务器上运行的专用网络连接器。 Microsoft Entra ID、应用程序代理服务和专用网络连接器协同工作,将用户登录令牌从 Microsoft Entra ID 安全地传递到 Web 应用程序。

应用程序代理适用于:

应用程序代理支持单一登录。 有关支持的方法的详细信息,请参阅 选择单一登录方法

远程访问的历史

以前,用于保护内部资源的控制平面免受攻击者的攻击,同时方便远程用户访问的部分都位于 DMZ 或者外围网络。 但是,外部客户端用来访问企业资源的 DMZ 中部署的 VPN 和反向代理解决方案不适合云世界。 它们通常具有以下缺点:

  • 增加硬件成本
  • 维护安全性(修补、监视端口等)
  • 在边缘对用户进行身份验证
  • 在外围网络中对用户进行身份验证
  • 使用 VPN 客户端软件的分发和配置为远程用户维护 VPN 访问。 此外,在 DMZ 区域中维护已加入域的服务器,这容易受到外部攻击。

在当今的云优先世界中,Microsoft Entra ID 最适合控制谁和哪些内容进入你的网络。 Microsoft Entra 应用程序代理与新式身份验证和基于云的技术(如 SaaS 应用程序和标识提供者)集成。 通过此集成,用户可以从任意位置访问应用。 应用程序代理不仅更适合当今的数字工作场所,而且比 VPN 和反向代理解决方案更安全,而且更易于实现。 远程用户可以像访问与 Microsoft Entra ID 集成的Microsoft和其他 SaaS 应用一样访问本地应用程序。 无需更改或更新应用程序以使用应用程序代理。 此外,应用程序代理不需要通过防火墙打开入站连接。 使用应用程序代理,只需设置它并忘记它。

远程访问的未来

在当今的数字工作场所中,用户使用多个设备从任意位置访问应用和工作。 常量因子是用户标识。 使用 Microsoft Entra 标识管理 作为安全控制平面,开始保护网络。 此基于标识的模型包含以下组件:

  • 用于跟踪用户和用户相关信息的标识提供者。
  • 用于维护有权访问公司资源的设备的设备目录。 此目录包括相应的设备信息(例如设备类型、完整性等)。
  • 策略评估服务会检查用户和设备是否满足管理员设置的安全策略。
  • 授予或拒绝对组织资源的访问权限的能力。 Microsoft Entra ID 跟踪访问本地和云中发布的 Web 应用的用户。 它提供了一个管理这些应用的中心点。 若要增强安全性,请启用 Microsoft Entra 条件访问。 此功能通过设置身份验证和访问条件,确保只有适当的人员才能访问应用程序。

注释

Microsoft Entra 应用程序代理用于替代远程用户访问内部资源时的 VPN 或反向代理。 它不是针对企业网络上的内部用户设计的。 当内部用户不必要地使用应用程序代理时,可能会导致意外的性能问题。

Microsoft Entra ID 和你的所有应用

应用程序代理工作原理概述

此图显示了 Microsoft Entra ID 和应用程序代理如何协同工作,以提供对本地应用程序的单一登录。

Microsoft Entra 应用代理的图示。

  1. 通过终结点访问应用程序后,用户将定向到 Microsoft Entra 登录页。
  2. Microsoft Entra ID 在成功登录后将令牌发送到用户的客户端设备。
  3. 客户端将令牌发送到应用程序代理服务。 该服务从令牌中检索用户主体名称(UPN)和安全主体名称(SPN)。 然后,应用程序代理将请求发送到连接器。
  4. 连接器代表用户执行所需的单一登录(SSO)身份验证。
  5. 连接器将请求发送到本地应用程序。
  6. 响应通过连接器和应用程序代理服务发送给用户。

注释

与大多数Microsoft Entra 混合代理一样,专用网络连接器不需要通过防火墙打开入站连接。 步骤 3 中的用户流量在应用程序代理服务处终止。 驻留在专用网络中的专用网络连接器负责通信的其余部分。

组件 Description
端点 终结点是 URL 或 最终用户门户。 用户可以通过访问外部 URL 访问网络外部的应用程序。 网络中的用户可以通过 URL 或最终用户门户访问应用程序。 当用户转到其中一个终结点时,他们在 Microsoft Entra ID 中进行身份验证,然后通过连接器路由到本地应用程序。
Microsoft Entra ID Microsoft Entra ID 使用存储在云中的租户目录执行身份验证。
应用程序代理服务 此应用程序代理服务作为 Microsoft Entra ID 的一部分在云中运行。 它将登录令牌从用户传递到专用网络连接器。 应用程序代理将请求上的任何可访问标头转发,并按照其协议将标头设置为客户端 IP 地址。 如果传入代理的请求已经包含该标头,则客户端 IP 地址将被添加到作为标头值的逗号分隔列表的末尾。
专用网络连接器 连接器是在网络内的 Windows Server 上运行的轻型代理。 连接器管理云中的应用程序代理服务与本地应用程序之间的通信。 连接器仅使用出站连接,因此无需在面向 Internet 的网络中打开入站端口。 连接器是无状态的,并根据需要从云拉取信息。
Active Directory (AD) Active Directory 在本地运行,对域帐户执行身份验证。 配置单一登录后,连接器将与 AD 通信,以执行所需的任何额外身份验证。
本地应用程序 最后,用户能够访问本地应用程序。

你可以在 Microsoft Entra 管理中心配置应用程序代理,它是 Microsoft Entra 的一项服务。 它使你能够在 Azure 云中发布外部公共 HTTP/HTTPS URL 终结点,该终结点连接到组织中的内部应用程序服务器 URL。 这些本地 Web 应用可与 Microsoft Entra ID 集成,以支持单一登录。 然后,用户可以以访问 Microsoft 365 和其他 SaaS 应用的方式访问本地 Web 应用。

应用程序代理服务在云中运行,专用网络连接器在本地服务器上作为轻型代理运行,Microsoft Entra ID 充当标识提供者。 这些组件使用户能够使用无缝单一登录体验访问本地 Web 应用程序。

用户进行身份验证后,外部用户可以使用其桌面或 iOS/MAC 设备中的显示 URL 或 “我的应用” 来访问本地 Web 应用程序。 例如,应用程序代理可以提供远程桌面、SharePoint 网站、Tableau、Qlik、Outlook 网页版和业务线(LOB)应用程序的远程访问和单一登录。

Microsoft Entra 应用程序代理体系结构

Authentication

有多种方法可以配置应用程序进行单一登录,你选择的方法取决于应用程序使用的身份验证。 应用程序代理支持以下类型的应用程序:

  • 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 对外连接到云中的应用程序代理服务。 如果没有入站连接,就无需为外围网络中的传入连接或组件打开防火墙端口。 所有连接都是出站的,通过安全通道。

  • 远程访问即服务。 无需担心维护和修补本地服务器以启用远程访问。 应用代理是 Microsoft 拥有的互联网规模化服务,因此您始终可以获得最新的安全修补程序和升级。 未修补的软件仍会造成大量攻击。 根据国土安全部的数据,多达 85%的目标袭击是可以预防的。 使用此服务模型,无需再承担管理边缘服务器的沉重负担,并争先恐后地修补它们。

  • Intune 集成。 通过 Intune,公司流量与个人流量分开路由。 应用程序代理可确保对公司流量进行身份验证。 应用程序代理和 Intune Managed Browser 功能还可以一起使用,使远程用户能够安全地从 iOS 和 Android 设备访问内部网站。

云路线图

实现应用程序代理的另一个主要好处是将 Microsoft Entra ID 扩展到本地环境。 事实上,实现应用程序代理是将组织和应用迁移到云的关键步骤。 通过迁移到云和远离本地身份验证,可以减少本地占用空间,并将 Microsoft Entra 标识管理功能用作控制平面。 只需对现有应用程序进行最少更新或无更新,即可访问云功能,例如单一登录、多重身份验证和集中管理。 将必要的组件安装到应用程序代理是建立远程访问框架的简单过程。 通过迁移到云,可以访问最新的Microsoft Entra 功能、更新和功能,例如高可用性和灾难恢复。

若要详细了解如何将应用迁移到 Microsoft Entra ID,请参阅将 应用程序迁移到 Microsoft Entra ID

Architecture

此图一般说明了 Microsoft Entra 身份验证服务和应用程序代理如何协同工作,为用户提供本地应用程序的单一登录。

Microsoft Entra 应用程序代理身份验证流

  1. 用户通过终结点访问应用程序,并重定向到 Microsoft Entra 登录页。 条件访问策略检查特定条件,以确保符合组织的安全要求。
  2. Microsoft Entra ID 将令牌发送到用户的客户端设备。
  3. 客户端将令牌发送到应用程序代理服务,该服务从令牌中提取用户主体名称(UPN)和安全主体名称(SPN)。
  4. 应用程序代理将请求转发到专用网络连接器。
  5. 连接器处理基于身份验证方法可能需要的额外身份验证,检索应用程序服务器的内部终结点,并将请求发送到本地应用程序。
  6. 应用程序服务器响应,连接器将响应发送回应用程序代理服务。
  7. 应用程序代理服务向用户传递响应。

Microsoft Entra 应用程序代理由云端应用程序代理服务和本地连接器组成。 连接器侦听来自应用程序代理服务的请求,并处理与内部应用程序的连接。 请务必注意,所有通信都通过传输层安全性(TLS)发生,并且始终源自应用程序代理服务的连接器。 也就是说,通信仅限于出站。 连接器使用客户端证书对所有调用的应用程序代理服务进行身份验证。 连接安全性的唯一例外是建立客户端证书的初始设置步骤。 有关详细信息,请参阅应用程序代理内部机制。

Microsoft Entra 专用网络连接器

应用程序代理使用 Microsoft Entra 专用网络连接器。 Microsoft Entra Private Access 使用相同的连接器。

其他用例

到目前为止,我们专注于使用应用程序代理在外部发布本地应用,并为所有云和本地应用启用单一登录。 但是,应用程序代理还支持其他用例,包括:

  • 安全地发布 REST API。 使用应用程序代理为本地或云托管 API 创建公共终结点。 控制身份验证和授权,而无需打开入站端口。 在 启用本机客户端应用程序与代理应用程序交互使用 OAuth 2.0、Microsoft Entra ID 与 API 管理来保护 API的详细信息。
  • 远程桌面服务(RDS)。 标准远程桌面服务 (RDS) 部署需要打开的入站连接。 但是,使用应用程序代理的 RDS 部署具有从运行连接器服务的服务器上的永久出站连接。 这样,可以通过远程桌面服务发布本地应用程序,为用户提供更多应用程序。 还可以通过应用于 RDS 的有限的一组双重验证和条件访问控制来减少部署的攻击面。
  • 发布使用 WebSocket 进行连接的应用程序。 对 Qlik Sense 的支持为公共预览版,将来将扩展到其他应用。
  • 使本机客户端应用程序能够与代理应用程序交互。 可以使用 Microsoft Entra 应用程序代理发布 Web 应用,但也可用于发布配置有Microsoft身份验证库(MSAL)的 本机客户端应用程序 。 客户端应用程序不同于 Web 应用,因为它们安装在设备上,而 Web 应用是通过浏览器访问的。

结论

组织适应工作和工具的快速变化。 员工使用自己的设备,并依赖于软件即服务(SaaS)应用程序。 因此,管理和保护数据变得更加复杂。 数据现在跨本地和云环境移动,远远超出了传统边界。 这种转变可提高工作效率和协作,同时使保护敏感数据更加困难。

Microsoft Entra 应用程序代理通过提供远程访问即服务来减少本地占用情况。 无论是使用 Microsoft Entra ID 来管理混合设置中的用户,还是计划启动云旅程,应用程序代理都简化了远程访问并提高安全性。

组织应立即开始利用应用程序代理,以利用以下优势:

  • 在外部发布本地应用,无需与维护传统 VPN 或其他本地 Web 发布解决方案和 DMZ 方法相关的开销
  • 单一登录到所有应用程序,可以是Microsoft 365 或其他 SaaS 应用,包括本地应用程序
  • 在云规模的安全性中,Microsoft Entra 使用 Microsoft 365 来防止未经授权的访问。
  • Intune 集成以确保对公司流量进行身份验证
  • 集中化用户帐户管理
  • 自动更新以确保你拥有最新的安全修补程序
  • 新功能会在发布时提供,最近的功能包括支持 SAML 单点登录 和更加精细的应用程序 Cookie 管理。

后续步骤