禁用自动加速登录

主领域发现 (HRD) 策略为管理员提供多种方式来控制对其用户进行身份验证的方式和位置。 HRD 策略的 domainHintPolicy 部分用于帮助将联合用户迁移到云托管凭据(如 FIDO),方法是确保它们始终访问 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 帐户。 如果还没有帐户,可以免费创建一个帐户
  • 以下角色之一:云应用程序管理员、应用程序管理员或服务主体的所有者。

租户内的建议用途

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

  1. 选择最初要向其推出此更改的域。 这将是你的测试域,因此,请选择一个可能更易接受 UX 中更改的域(例如查看其他登录页)。 这将忽略使用此域名的所有应用程序的所有域提示。 在租户的默认 HRD 策略中设置此策略:
PATCH /policies/homeRealmDiscoveryPolicies/{id}

"DomainHintPolicy": { 
    "IgnoreDomainHintForDomains": [ "testDomain.com" ], 
    "RespectDomainHintForDomains": [], 
    "IgnoreDomainHintForApps": [], 
    "RespectDomainHintForApps": [] 
} 
New-AzureADPolicy 
    -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"DomainHintPolicy`": { `"IgnoreDomainHintForDomains`": [ `"testDomain.com`" ], `"RespectDomainHintForDomains`": [], `"IgnoreDomainHintForApps`": [], `"RespectDomainHintForApps`": [] } } }") 
    -DisplayName BasicBlockAccelerationPolicy 
    -Type HomeRealmDiscoveryPolicy
  1. 收集来自测试域用户的反馈。 收集由于此更改而中断的应用程序的详细信息 - 它们依赖于域提示使用情况,并且应进行更新。 现在,请将它们添加到 RespectDomainHintForApps 部分:
PATCH /policies/homeRealmDiscoveryPolicies/{id}

"DomainHintPolicy": { 
    "IgnoreDomainHintForDomains": [ "testDomain.com" ], 
    "RespectDomainHintForDomains": [], 
    "IgnoreDomainHintForApps": [], 
    "RespectDomainHintForApps": ["app1-clientID-Guid", "app2-clientID-Guid] 
} 
New-AzureADPolicy 
    -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"DomainHintPolicy`": { `"IgnoreDomainHintForDomains`": [ `"testDomain.com`" ], `"RespectDomainHintForDomains`": [], `"IgnoreDomainHintForApps`": [], `"RespectDomainHintForApps`": ["app1-clientID-Guid", "app2-clientID-Guid"] } } }") 
    -DisplayName BasicBlockAccelerationPolicy 
    -Type HomeRealmDiscoveryPolicy
  1. 继续将策略的推出扩展到新域,并收集更多反馈。
PATCH /policies/homeRealmDiscoveryPolicies/{id}

"DomainHintPolicy": { 
    "IgnoreDomainHintForDomains": [ "testDomain.com", "otherDomain.com", "anotherDomain.com"], 
    "RespectDomainHintForDomains": [], 
    "IgnoreDomainHintForApps": [], 
    "RespectDomainHintForApps": ["app1-clientID-Guid", "app2-clientID-Guid] 
} 
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. 完成面向所有域的推出,豁免那些应该继续加速的域:
PATCH /policies/homeRealmDiscoveryPolicies/{id}

"DomainHintPolicy": { 
    "IgnoreDomainHintForDomains": [ "*" ], 
    "RespectDomainHintForDomains": ["guestHandlingDomain.com"], 
    "IgnoreDomainHintForApps": [], 
    "RespectDomainHintForApps": ["app1-clientID-Guid", "app2-clientID-Guid] 
} 
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 的自动加速也是如此。 这种情况的例外是,如果请求登录的应用是已免除的应用之一,(对于这些应用)则仍将接受所有域提示。

通过 Graph 浏览器配置策略

使用 Microsoft Graph 管理主领域发现策略

  1. 请使用先决条件部分中列出的角色之一登录到 Microsoft Graph 浏览器。

  2. 授予Policy.ReadWrite.ApplicationConfiguration权限。

  3. 使用主领域发现策略创建新策略。

  4. POST 新政策,或 PATCH 更新现有政策。

    PATCH /policies/homeRealmDiscoveryPolicies/{id}
    {
        "displayName":"Home Realm Discovery Domain Hint Exclusion Policy",
        "definition":[
            "{\"HomeRealmDiscoveryPolicy\" : {\"DomainHintPolicy\": { \"IgnoreDomainHintForDomains\": [\"Contoso.com\"], \"RespectDomainHintForDomains\": [], \"IgnoreDomainHintForApps\": [\"sample-guid-483c-9dea-7de4b5d0a54a\"], \"RespectDomainHintForApps\": [] } } }"
        ],
        "isOrganizationDefault":true
    }
    

使用 Graph 时,请务必使用斜杠来转义 Definition JSON 部分。

isOrganizationDefault 必须为 true,但 displayName 和定义可以更改。

后续步骤