应用程序的主领域发现

主领域发现 (HRD) 使 Microsoft Entra ID 能够标识在登录期间进行用户身份验证的相应标识提供者 (IDP)。 登录 Microsoft Entra 租户访问资源或公共登录页时,用户需输入用户名 (UPN)。 Microsoft Entra ID 使用此信息以确定正确的登录位置。

用户将被引导至以下标识提供者之一进行身份验证:

  • 用户的主租户(可能与资源租户相同)。
  • Microsoft 帐户,如果用户是使用使用者帐户的资源租户中的来宾。
  • 本地标识提供者,例如 Active Directory 联合身份验证服务 (ADFS)。
  • 与 Microsoft Entra 租户联合的其他标识提供者。

自动加速

组织在其 Microsoft Entra 租户中配置域,以便与其他 IdP(例如 ADFS)联合进行用户身份验证。 当用户登录到应用程序时,他们最初会看到一个 Microsoft Entra 登录页面。 如果它们属于联合域,则会重定向到该域的 IdP 登录页面。 管理员可能希望绕过特定应用程序的初始 Microsoft Entra ID 页面,此过程称为“登录自动加速”。

Microsoft 建议不要配置自动加速,因为它可能会阻碍 FIDO 和协作等更强大的身份验证方法。 要了解如何防止自动加速登录,请参阅禁用自动加速登录

自动加速可简化与另一个 IdP 联合的租户的登录。 可以为单个应用程序进行配置。 要了解如何使用 HRD 强制执行自动加速,请参阅配置自动加速

注意

为应用程序配置自动加速会阻止用户使用托管凭据(如 FIDO),阻止来宾用户登录。 将用户定向到联合 IdP 进行身份验证会绕过 Microsoft Entra 登录页面,从而阻止来宾用户访问其他租户或外部 IdP,例如 Microsoft 帐户。

有三种方法可以控制自动加速到联合 IdP:

域确认对话框

从 2023 年 4 月开始,使用自动加速或智能链接的组织可能会遇到登录 UI 中的新屏幕,名为“域确认对话框”。 此屏幕是 Microsoft 安全强化工作的一部分,需要用户确认所登录租户的域。

需要执行的操作

看到“域确认对话框”时:

  • 检查域:验证屏幕上的域名是否与要登录的组织匹配,如 contoso.com
    • 如果识别域,请选择“确认”以继续。
    • 如果无法识别该域,请取消登录过程并与 IT 管理员联系以获取帮助。

域确认对话框的组件

以下屏幕截图是可能会看到的域确认对话框的示例:

域确认对话框的屏幕截图,其中列出了租户域为“contoso.com”的登录标识符“<kelly@contoso.com>”。

对话框顶部的标识符 kelly@contoso.com 表示用于登录的标识符。 对话框标头和子标题中列出的租户域显示帐户的主租户的域。

对于自动加速或智能链接的每个实例,可能不会显示本对话框。 如果组织由于浏览器策略而清除 Cookie,则可能会更频繁地看到“域确认”对话框。 域确认对话框不应导致应用程序中断,因为 Microsoft Entra ID 会管理自动加速登录流。

域提示

域提示是来自应用程序的身份验证请求中的指令,这些请求可加速用户进入其联合 IdP 登录页面。 多租户应用程序可以使用它们直接将用户引导至租户的品牌 Microsoft Entra 登录页。

例如,"largeapp.com" 可能允许通过自定义 URL "contoso.largeapp.com" 进行访问,并在身份验证请求中包含 contoso.com 的域提示。

域提示语法因协议而异:

  • WS 联合身份验证whr 查询字符串参数,例如 whr=contoso.com
  • SAML:带有域提示或 whr=contoso.com 的 SAML 身份验证请求。
  • OpenID Connectdomain_hint 查询字符串参数,例如 domain_hint=contoso.com

如果同时满足以下两个条件,则 Microsoft Entra 会将登录重定向到为域配置的 IDP:

  • 域提示包含在身份验证请求中。
  • 租户与相应域联合。

如果域提示不引用已验证的联合域,则可以忽略它。

注意

身份验证请求中的域提示会替代针对 HRD 策略中的应用程序设置的自动加速。

自动加速的 HRD 策略

某些应用程序不允许配置身份验证请求。 在此类情况下,域提示不能用来控制自动加速。 使用主领域发现策略来配置自动加速。

阻止自动加速的 HRD 策略

一些 Microsoft 和 SaaS 应用程序自动包含 domain_hint,这可能会中断 FIDO 等托管凭据的推出。 在推出托管凭据期间,可以使用主领域发现策略忽略来自特定应用或域的域提示

为旧的应用程序启用对联合用户进行直接 ROPC 身份验证

最佳做法是让应用程序使用 Microsoft Entra 库和交互式登录进行用户身份验证。 使用资源所有者密码凭据 (ROPC) 授予的旧版应用程序可能会直接将凭据提交到 Microsoft Entra ID,而无需了解联合身份验证。 它们不会执行 HRD,也不会与正确的联合终结点交互。 可使用主领域发现策略使特定的旧版应用程序能直接使用 Microsoft Entra ID 进行身份验证。 仅当启用密码哈希同步时,才可以做到这一点。

重要

仅当密码哈希同步处于活动状态,可接受对此应用程序进行身份验证,且没有内部部署 IdP 策略时,才能启用直接身份验证。 如果禁用了密码哈希同步或与 AD Connect 的目录同步,则删除此策略,以防止使用过时的密码哈希进行直接身份验证。

设置 HRD 策略

要在应用程序中设置 HRD 策略,以启用联合登录自动加速或基于云的直接应用程序:

  • 创建 HRD 策略
  • 找到要将策略附加到的服务主体。
  • 将策略附加到服务主体。

在将策略附加到服务主体后,策略才会对特定的应用程序生效。 服务主体中每次只有一个 HRD 策略处于活动状态。 使用 Microsoft Graph PowerShell cmdlet 来创建和管理 HRD 策略。

示例 HRD 策略定义:

{  
  "HomeRealmDiscoveryPolicy": {  
    "AccelerateToFederatedDomain": true,  
    "PreferredDomain": "federated.example.edu",  
    "AllowCloudPasswordValidation": false  
  }  
}  
  • AccelerateToFederatedDomain:可选。 如果为 false,策略不会影响自动加速。 如果为真,并且存在一个已验证的联合域,则用户将定向到联合 IdP。 如果存在多个域,则指定 PreferredDomain
  • PreferredDomain:可选。 指示用于加速的域。 如果只有一个联合域存在,则省略。 如果省略多个域,则策略不起作用。
  • AllowCloudPasswordValidation:可选。 如果为真,则允许通过用户名/密码凭据直接对 Microsoft Entra 令牌终结点进行联合用户身份验证,需要密码哈希同步。

其他租户级 HRD 选项:

  • AlternateIdLogin:可选。 在 Microsoft entra 登录页面中为电子邮件登录启用 AlternateLoginID,而不是 UPN。 依赖于未自动加速到联合 IDP 的用户。
  • DomainHintPolicy:是可选的复杂对象,它阻止域提示将用户自动加速到联合域。 确保发送域提示的应用程序不会阻止云管理凭据登录。

HRD 策略的优先级和评估

HRD 策略可分配给组织和服务主体,允许将多个策略应用于应用程序。 Microsoft Entra ID 使用以下规则确定优先级:

  • 如果存在域提示,租户的 HRD 策略会检查是否应忽略域提示。 如果允许,则使用域提示行为。
  • 如果将某个策略显式分配到服务主体,将强制实施该策略。
  • 如果不存在域提示或服务主体策略,会强制实施分配给父组织的策略。
  • 如果未分配域提示或策略,则应用默认的 HRD 行为。

后续步骤