Compartilhar via

Microsoft Entra应用程序代理

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

Microsoft Entra应用程序代理为:

  • 易于使用。 用户可以像访问与Microsoft Entra ID集成的Microsoft 365和其他软件即服务(SaaS)应用一样访问本地应用程序。 无需更改或更新应用程序以使用应用程序代理。

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

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

小窍门

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

下面是在混合共存方案中使用应用程序代理的一些示例:

  • 在没有外围网络的情况下,以简化的方式在外部发布本地 Web 应用。
  • 支持跨云和本地的设备、资源和应用进行 SSO。
  • 支持云和本地应用多重身份验证。
  • 快速将云功能与 Microsoft 云的安全性配合使用。
  • 集中用户帐户管理。
  • 集中控制身份和安全性。
  • 根据组成员身份自动添加或删除对应用程序的访问权限。

本文介绍如何Microsoft Entra ID和应用程序代理为远程用户提供 SSO 体验。 用户在不使用虚拟专用网 (VPN) 或双重宿主服务器和防火墙规则的情况下安全连接到本地应用。 本文可帮助你了解应用程序代理如何将云的功能和安全优势引入本地 Web 应用程序。 它还介绍了可能的体系结构和拓扑。

过去与现在的远程访问

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

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

在当今的数字工作场所中,用户使用多个设备从任意位置访问应用和工作。 常量因子是用户标识。

可以使用Microsoft Entra ID来控制谁以及哪些内容进入你的网络。 Microsoft Entra应用程序代理与新式身份验证和基于云的技术(如 SaaS 应用程序和标识提供者)集成。 通过此集成,用户可以从任意位置访问应用。

图示展示连接到 Microsoft Entra ID 的应用程序。

应用程序代理不仅更适合当今的数字工作场所,而且比 VPN 和反向代理解决方案更安全。 实现起来也更容易。 远程用户可以访问本地应用程序的方式与访问Microsoft和其他与Microsoft Entra ID集成的 SaaS 应用的方式相同。 无需更改或更新应用程序以使用应用程序代理。 应用程序代理也不需要通过防火墙打开入站连接。

可以使用 Microsoft Entra 标识管理作为安全控制平面来保护网络。 此基于标识的模型包含以下组件:

  • 用于跟踪用户和用户相关信息的标识提供者。

  • 用于维护有权访问公司资源的设备的设备目录。 此目录包括相应的设备信息(例如设备类型和完整性)。

  • 策略评估服务,用于检查用户和设备是否满足管理员设置的安全策略。

  • 授予或拒绝对组织资源的访问权限的能力。 Microsoft Entra ID跟踪访问本地和云中发布的 Web 应用的用户。 它提供了一个管理这些应用的中心点。

    若要增强安全性,请启用Microsoft Entra条件访问。 此功能通过设置身份验证和访问条件,确保只有适当的人员才能访问应用程序。

注释

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

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

应用程序代理包括应用程序代理服务和专用网络连接器。 应用程序代理服务在云中运行,专用网络连接器在本地服务器上作为轻型代理运行。 Microsoft Entra ID充当标识提供者。

下图显示了如何Microsoft Entra ID、应用程序代理服务和专用网络连接器协同工作,使用户能够使用无缝 SSO 体验访问本地 Web 应用程序。

图表展示了在 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 的网络中打开入站端口。 Microsoft Entra Private Access使用相同的连接器。

连接器是无状态的,并根据需要从云拉取信息。
Active Directory Active Directory在本地运行,以对域帐户执行身份验证。 配置 SSO 后,连接器将与Active Directory通信,以执行所需的任何额外身份验证。
本地应用程序 最后,用户可以访问本地应用程序。

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

身份验证后,外部用户可以通过其桌面或 iOS 设备使用显示 URL 或 My Apps 访问本地 Web 应用。 例如,应用程序代理可以提供对 Remote Desktop、SharePoint 站点、Tableau、Qlik、web 上的Outlook和 LOB 应用程序的远程访问和 SSO。

Microsoft Entra应用程序代理体系结构的示意图。

Authentication

可通过多种方式为 SSO 配置应用程序。 选择的方法取决于应用程序使用的身份验证。 应用程序代理支持以下类型的应用程序:

  • 使用 Integrated Windows 身份验证(IWA)作为本机身份验证协议的 Web 应用程序。 对于 IWA,专用网络连接器使用 Kerberos 约束委派(KCD)对 Kerberos 应用程序的用户进行身份验证。
  • Web 应用程序使用基于表单或基于标头的访问方法。 基于标头的身份验证使用 PingAccess(非Microsoft合作伙伴服务)来处理依赖于标头的应用程序的身份验证。
  • 要向各种设备上的功能丰富的应用程序公开的 Web API。
  • 托管在 Remote Desktop Gateway 后面的应用程序。
  • 与Microsoft Authentication Library(MSAL)集成的丰富客户端应用。

应用程序代理还支持特定配置方案中非Microsoft合作伙伴的身份验证协议:

  • 基于密码的身份验证。 使用此身份验证方法,用户在首次访问应用程序时使用用户名和密码登录到应用程序。 首次登录后,Microsoft Entra ID向应用程序提供用户名和密码。 在此方案中,Microsoft Entra ID处理身份验证。
  • 安全断言标记语言 (SAML) 身份验证。 使用 SAML 2.0 或 WS-Federation 协议的应用程序支持基于 SAML 的 SSO。 使用 SAML SSO,Microsoft Entra使用用户的Microsoft Entra帐户向应用程序进行身份验证。

有关支持的方法的详细信息,请参阅 单一登录选项

安全优势

应用程序代理和Microsoft Entra提供的远程访问解决方案支持多种安全优势:

  • 经过身份验证的访问。 应用程序代理使用 预身份验证 来帮助确保只有经过身份验证的连接才能到达网络。 它阻止所有流量,而无需为配置预身份验证的应用程序提供有效的令牌。 此方法通过仅允许经过验证的标识访问后端应用程序来显著减少目标攻击。

  • 条件访问。 在建立与网络的连接之前,可以应用更丰富的策略控制。 使用条件访问,可以定义允许访问后端应用程序的流量的限制。 创建基于位置、身份验证强度和用户风险配置文件限制登录的策略。

    为了获得更多安全性,条件访问还与Microsoft Defender for Cloud Apps集成。 通过此集成,可以配置本地应用程序,以便基于条件访问策略 进行实时监视

  • 流量终止。 与后端服务器重新建立会话时,发往后端应用程序的所有流量在云中的应用程序代理服务处终止。 此连接策略意味着后端服务器不会暴露于直接的 HTTP 流量。 它们更好地防范目标拒绝服务 (DoS) 攻击,因为防火墙未受到攻击。

  • 仅出站访问。 专用网络连接器仅使用通过端口 80 和 443 与云中的应用程序代理服务的出站连接。 如果没有入站连接,就无需为外围网络中的传入连接或组件打开防火墙端口。 所有出站连接都通过安全通道进行。

  • 以服务的形式进行远程访问。 无需担心维护和修补本地服务器以启用远程访问。 应用程序代理是由 Microsoft 拥有的 Microsoft Entra 平台的互联网级别功能,因此您始终能获得最新的安全补丁和升级。

    未修补的软件仍会造成大量攻击。 根据国土安全部的数据,多达 85%的目标袭击是可以预防的。 使用此服务模型,无需再承担管理边缘服务器的负担,并根据需要争先恐后地修补它们。

云路线图

实现应用程序代理的另一个主要好处是将Microsoft Entra ID扩展到本地环境。 实现应用程序代理可能是将组织和应用迁移到云的关键步骤。 通过迁移到云和远离本地身份验证,可以减少本地占用空间,并将Microsoft Entra标识管理功能用作控制平面。

只需对现有应用程序进行最少更新或无更新,即可访问 SSO、多重身份验证和集中管理等云功能。 将必要的组件安装到应用程序代理是建立远程访问框架的简单过程。 通过迁移到云,可以访问最新的Microsoft Entra功能、更新和功能,例如高可用性和灾难恢复。

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

Architecture

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

用于说明 Microsoft Entra 应用程序代理身份验证流程的图示。

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

所有通信都通过传输层安全性(TLS)发生,它们始终源自应用程序代理服务的连接器。 连接器使用客户端证书对所有调用的应用程序代理服务进行身份验证。 连接安全性的唯一例外是建立客户端证书的初始设置步骤。

有关详细信息,请参阅 安全注意事项,了解如何使用 Microsoft Entra 应用程序代理远程访问应用

其他用例

本文重点介绍如何使用应用程序代理在外部发布本地应用,并为所有云和本地应用启用 SSO。 但是,应用程序代理还支持其他用例,包括:

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

结论

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

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

组织可以使用应用程序代理来利用以下优势:

  • 在外部发布本地应用,无需与维护传统 VPN 或其他本地 Web 发布解决方案和外围网络方法相关的开销
  • 所有应用程序的 SSO,包括Microsoft 365和其他 SaaS 应用,以及本地应用程序
  • 微软Entra利用微软365提供云级别的安全性以防止未经授权的访问
  • 集中化用户帐户管理
  • 自动更新以确保你拥有最新的安全修补程序
  • 发布新功能时,例如对 SAML SSO 的支持和应用程序 Cookie 的更精细的管理