다음을 통해 공유

Microsoft Entra 应用程序代理中的通配符应用程序

在 Microsoft Entra ID 中,配置大量本地应用程序可以快速变得不可管理,如果其中许多应用程序需要相同的设置,则可能会给配置错误带来不必要的风险。 使用 Microsoft Entra 应用代理,可以通过通配符发布功能同时发布和管理多个应用,来解决此问题。 该解决方案提供:

  • 简化管理开销
  • 减少潜在的配置错误数
  • 安全访问更多资源

本文提供了在您的环境中配置通配符应用程序发布所需的信息。

创建通配符应用程序

如果你有一组具有相同配置的应用程序,则可以创建通配符 (*) 应用程序。 通配符应用程序的潜在候选项是共享以下设置的应用程序:

  • 有权访问它们的用户组
  • 单一登录 (SSO) 方法
  • 访问协议 (http, https)

如果同时发布具有通配符的应用程序,则内部和外部 URL 的格式如下:

http(s)://*.<域名>

例如: http(s)://*.adventure-works.com

虽然内部和外部 URL 可以使用不同的域,但最佳做法是相同的。 发布应用程序时,如果其中一个 URL 没有通配符,则会看到错误。

创建通配符应用程序基于可用于所有其他应用程序的相同 应用程序发布流 。 唯一的区别是,在 URL 中以及可能在 SSO 配置中包括通配符。

先决条件

若要开始,请确保满足要求。

自定义域

虽然 自定义域 对于所有其他应用程序都是可选的,但它们是通配符应用程序的先决条件。 创建自定义域需要:

  1. 在 Azure 中创建已验证的域。
  2. 将个人信息交换(PFX)格式的传输层安全性(TLS)证书上传到应用程序代理。

应考虑使用通配符证书来匹配计划创建的应用程序。

出于安全原因,仅支持对外部 URL 使用自定义域的应用程序使用通配符。

域名系统 (DNS) 更新

使用自定义域时,需要创建一个 DNS 条目,其中包含外部 URL(例如, *.adventure-works.com指向应用程序代理终结点的外部 URL)的 CNAME 记录。 对于通配符应用程序,CNAME 记录需要指向相关的外部 URL:

<yourAADTenantId>.tenant.runtime.msappproxy.net

确认您已正确配置 CNAME,您可以在其中一个目标终结点上使用 nslookup 进行检查,例如,expenses.adventure-works.com。 响应应包含已提及的别名(<yourAADTenantId>.tenant.runtime.msappproxy.net)。

使用分配给应用程序代理云服务区域(非默认区域)的连接器组

如果连接器安装在不同于默认租户区域的区域中,最好更改连接器组针对哪些区域进行优化以提高访问这些应用程序的性能。 若要了解详细信息,请参阅 优化连接器组以使用最近的应用程序代理云服务

如果分配给通配符应用程序的连接器组使用 与默认区域不同的区域,则需要更新 CNAME 记录以指向区域特定的外部 URL。 使用下表确定相关 URL:

连接器分配的区域 外部链接
亚洲 <yourAADTenantId>.asia.tenant.runtime.msappproxy.net
澳大利亚 <yourAADTenantId>.aus.tenant.runtime.msappproxy.net
欧洲 <yourAADTenantId>.eur.tenant.runtime.msappproxy.net
北美 <yourAADTenantId>.nam.tenant.runtime.msappproxy.net

注意事项

这里有一些你应该考虑到的通配符应用的一些事项。

接受的格式

对于通配符应用程序, 内部 URL 必须格式化为 http(s)://*.<domain>

对于内部 URL,请使用 http(s)://*格式。<域>

配置 外部 URL 时,必须使用以下格式: https://*.<custom domain>

对于外部 URL,请使用 https:// 格式*。<自定义域>

不支持通配符的其他位置、多个通配符或其他正则表达式字符串,导致错误。

从通配符中排除应用程序

可以通过以下方法从通配符应用程序中排除应用程序

  • 将异常应用程序发布为常规应用程序
  • 仅通过 DNS 设置为特定应用程序启用通配符

将应用程序发布为常规应用程序是将应用程序从通配符中排除的首选方法。 应在通配符应用程序之前发布排除的应用程序,以确保例外从一开始就得到强制执行。 最具体的应用程序始终优先 - 发布的应用程序 budgets.finance.adventure-works.com 优先于应用程序 *.finance.adventure-works.com,而应用程序 *.finance.adventure-works.com 又优先于应用程序 *.adventure-works.com

还可以通过 DNS 管理将通配符限制为仅适用于特定应用程序。 最佳做法是,应创建包含通配符的 CNAME 条目,并匹配配置的外部 URL 的格式。 然而,您可以选择将特定的应用程序 URL 指向通配符。 例如,不是*.adventure-works.com,而是将hr.adventure-works.comexpenses.adventure-works.comtravel.adventure-works.com individually指向00001111-aaaa-2222-bbbb-3333cccc4444.tenant.runtime.msappproxy.net

如果使用此选项,则还需要另一个 CNAME 条目来获取该值 AppId.domain,例如, 00001111-aaaa-2222-bbbb-3333cccc4444.adventure-works.com也指向同一位置。 可以在通配符应用程序的应用程序属性页上找到 AppId

设置 MyApps 面板的主页 URL

通配符应用程序只用 MyApps 面板中的一个磁贴表示。 默认情况下,此磁贴处于隐藏状态。 若要显示磁贴并让用户登录到特定页面,请执行以下作:

  1. 遵循 设置主页 URL 的准则。
  2. 在应用程序属性页上将 “显示应用程序 ”设置为 true

Kerberos 约束委派

对于使用 kerberos 约束委派(KCD)作为 SSO 方法的应用程序,为 SSO 方法列出的服务主体名称(SPN)需要通配符。 例如,SPN 可以是: HTTP/*.adventure-works.com。 仍需要在后端服务器上配置单个 SPN(例如 HTTP/expenses.adventure-works.com and HTTP/travel.adventure-works.com)。

方案 1:常规通配符应用

在此方案中,你有三个不同的应用程序需要发布:

  • expenses.adventure-works.com
  • hr.adventure-works.com
  • travel.adventure-works.com

所有三个应用程序:

  • 所有用户都使用
  • 使用 集成 Windows 身份验证
  • 具有相同的属性

可以使用 Microsoft Entra 应用程序代理 中概述的步骤来发布通配符应用程序。 此方案假定:

  • 具有以下 ID 的租户: aaaabbbb-0000-cccc-1111-dddd2222eeee
  • 名为 adventure-works.com 的已验证域。
  • CNAME 条目指向 *.adventure-works.com00001111-aaaa-2222-bbbb-3333cccc4444.tenant.runtime.msappproxy.net

按照 记录的步骤,在租户中创建新的应用程序代理应用程序。 在此示例中,通配符位于以下字段中:

  • 内部 URL:

    示例:内部 URL 中的通配符

  • 外部 URL:

    示例:外部 URL 中的通配符

  • 内部应用程序 SPN:

    示例:SPN 配置中的通配符

通过发布通配符应用程序,现在您可以通过导航到您熟悉的 URL(例如,travel.adventure-works.com)来访问这三个应用程序。

该配置实现以下结构:

显示示例配置实现的结构

颜色 Description
Blue 在 Microsoft Entra 管理中心中专门发布和可见的应用程序。
灰色 可以通过父应用程序访问的应用程序。

方案 2:常规通配符使用(有例外)

除了这三个常规应用程序外,还有另一个应用程序, finance.adventure-works.com它只能由财务部门访问。 使用当前的应用程序结构,财务应用程序可以通过通配符应用程序访问,并且所有员工都可以使用。 若要进行更改,请将 Finance 配置为具有更严格的权限的独立应用程序,从而从通配符中排除应用程序。

确保存在 finance.adventure-works.com 指向应用程序特定终结点的 CNAME 记录,该终结点在应用程序的应用程序代理页上指定。 对于情境,finance.adventure-works.com 指向 https://finance-awcycles.msappproxy.net/

按照 文档中列出的步骤,情境需要以下设置:

  • “内部 URL”中,设置 财务 而不是通配符。

    示例:在内部 URL 中设置财务而不是通配符

  • 外部 URL 中,设置 财务 而不是通配符。

    示例:在外部 URL 中设置财务而不是通配符

  • 设置 财务 而不是通配符的内部应用程序 SPN。

    示例:在 SPN 配置中设置财务而不是通配符

此配置实现以下方案:

显示示例方案实现的配置

URL finance.adventure-works.com 是特定的。 URL *.adventure-works.com 不具体。 更具体的 URL 优先。 用户导航到 finance.adventure-works.com 时,将会获得 Finance Resources 应用程序中指定的体验。 只有财务员工才能访问 finance.adventure-works.com

如果您在财务领域发布了多个应用程序,并且有 finance.adventure-works.com 作为已验证的域,则可以发布另一个通配符应用程序 *.finance.adventure-works.com。 由于域比泛型 *.adventure-works.com更具体,因此当用户访问财务域中的应用程序时,该域优先。

后续步骤