禁用自动加速登录

主领域发现策略 (HRD) 为管理员提供多种方式来控制对用户进行身份验证的方式和位置。 HRD 策略的 domainHintPolicy 部分用于帮助将联合用户迁移到云托管凭据,方法是确保它们始终访问 Microsoft Entra 登录页,且不会因域提示而自动加速到联合 IDP。 若要详细了解 HRD 策略,请参阅主领域发现

在登录期间,如果管理员无法控制或更新域提示,则需要此策略。 例如,outlook.com/contoso.com将用户发送到追加了 &domain_hint=contoso.com 参数的登录页,以便将用户直接自动加速到 contoso.com 域的联合 IDP。 使用发送到联合 IDP 的托管凭据的用户无法使用其托管凭据登录,这降低了安全性,还会使拥有随机登录体验的用户感到沮丧。 推出托管凭据的管理员还应设置此策略,以确保用户始终可以使用其托管凭据。

DomainHintPolicy 详细信息

HRD 策略的 DomainHintPolicy 部分是一个 JSON 对象,它允许管理员从域提示使用情况中选择退出某些域和应用程序。 就功能而言,这会告知 Microsoft Entra 登录页面的行为表现与登录请求上的 domain_hint 参数不存在时的一样。

“遵循和忽略策略”部分

部分 含义
IgnoreDomainHintForDomains 如果此域提示是在请求中发送的,请忽略它。 域地址的数组(例如 contoso.com)。 它还支持 all_domains
RespectDomainHintForDomains 如果此域提示是在请求中发送的,则遵循它,即使 IgnoreDomainHintForApps 指示请求中的应用不应自动加速。 这用于减缓网络内的弃用域提示的推出,你可以指明某些域仍应加速。 域地址的数组(例如 contoso.com)。 它还支持 all_domains
IgnoreDomainHintForApps 如果来自此应用程序的请求附带了域提示,请忽略它。 应用程序 ID (GUID) 的数组。 它还支持 all_apps
RespectDomainHintForApps 如果来自此应用程序的请求附带了域提示,则遵循它,即使 IgnoreDomainHintForDomains 包含该域也是如此。 用于确保在发现某些应用没有域提示的情况下中断时继续工作。 应用程序 ID (GUID) 的数组。 它还支持 all_apps

策略评估

DomainHintPolicy 逻辑在包含域提示的每个传入请求上运行,并基于请求中的两个数据片段(域提示中的域以及客户端 ID (应用))进行加速。 简而言之,对于域或应用,“遵循”优先于“忽略”给定域或应用程序的域提示的指令。

  • 在没有任何域提示策略的情况下,或者如果 4 个部分都没有引用提及的应用或域提示,则将评估其余的 HRD 策略
  • 如果 RespectDomainHintForAppsRespectDomainHintForDomains 部分中的任何一个(或两个)在请求中包含应用或域提示,则用户将根据请求自动加速到联合 IDP。
  • 如果 IgnoreDomainHintsForAppsIgnoreDomainHintsForDomains 中的任何一个(或两个)在请求中引用应用或域提示,但未被“遵循”部分所引用,则请求不会自动加速,且用户将停留在 Microsoft Entra 登录页面以提供用户名。

用户在登录页上输入用户名后,他们可以使用其托管凭据。 如果他们选择不使用托管凭据,或他们都未注册,则系统将像往常一样将其转到联合 IDP 进行凭据输入。

先决条件

若要在 Microsoft Entra ID 中禁用应用程序的自动加速登录,需要:

  • 具有活动订阅的 Azure 帐户。 如果还没有帐户,请创建一个帐户

  • 以下角色之一:云应用程序管理员、应用程序管理员或服务主体的所有者。

  • Microsoft Graph PowerShell 模块。

租户内的建议用途

联合域的管理员应在包含四个阶段的计划中设置 HRD 策略的此部分。 此计划的目标是,最终让租户中的所有用户都使用其托管凭据(无需考虑域或应用程序),并保存那些对 domain_hint 使用情况有硬依赖关系的应用。 此计划可帮助管理员查找这些应用,将其从新策略中免除,并继续向租户的其余部分推出更改。

  1. 选择最初要向其推出此更改的域。 这将是你的测试域,因此,请选择一个可能更易接受 UX 中更改的域(例如查看其他登录页)。 这将忽略使用此域名的所有应用程序的所有域提示。 在租户的默认 HRD 策略中设置此策略:
New-AzureADPolicy 
    -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"DomainHintPolicy`": { `"IgnoreDomainHintForDomains`": [ `"testDomain.com`" ], `"RespectDomainHintForDomains`": [], `"IgnoreDomainHintForApps`": [], `"RespectDomainHintForApps`": [] } } }") 
    -DisplayName BasicBlockAccelerationPolicy 
    -Type HomeRealmDiscoveryPolicy
  1. 收集来自测试域用户的反馈。 收集由于此更改而中断的应用程序的详细信息 - 它们依赖于域提示使用情况,并且应进行更新。 现在,请将它们添加到 RespectDomainHintForApps 部分:
New-AzureADPolicy 
    -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"DomainHintPolicy`": { `"IgnoreDomainHintForDomains`": [ `"testDomain.com`" ], `"RespectDomainHintForDomains`": [], `"IgnoreDomainHintForApps`": [], `"RespectDomainHintForApps`": ["app1-clientID-Guid", "app2-clientID-Guid"] } } }") 
    -DisplayName BasicBlockAccelerationPolicy 
    -Type HomeRealmDiscoveryPolicy
  1. 继续将策略的推出扩展到新域,并收集更多反馈。
New-AzureADPolicy 
    -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"DomainHintPolicy`": { `"IgnoreDomainHintForDomains`": [ `"testDomain.com`", "otherDomain.com", "anotherDomain.com"], `"RespectDomainHintForDomains`": [], `"IgnoreDomainHintForApps`": [], `"RespectDomainHintForApps`": ["app1-clientID-Guid", "app2-clientID-Guid"] } } }") 
    -DisplayName BasicBlockAccelerationPolicy 
    -Type HomeRealmDiscoveryPolicy
  1. 完成面向所有域的推出,豁免那些应该继续加速的域:
New-AzureADPolicy 
    -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"DomainHintPolicy`": { `"IgnoreDomainHintForDomains`": [ `"*`" ], `"RespectDomainHintForDomains`": [guestHandlingDomain.com], `"IgnoreDomainHintForApps`": [], `"RespectDomainHintForApps`": ["app1-clientID-Guid", "app2-clientID-Guid"] } } }") 
    -DisplayName BasicBlockAccelerationPolicy 
    -Type HomeRealmDiscoveryPolicy

完成步骤 4 后,所有用户(除了 guestHandlingDomain.com 中的用户)都可以在 Microsoft Entra 登录页面登录,即使域提示将会导致对联合 IDP 的自动加速也是如此。 这种情况的例外是,如果请求登录的应用是已免除的应用之一,(对于这些应用)则仍将接受所有域提示。