Active Directory 联合身份验证服务 prompt=login 参数支持

以下文档介绍了 AD FS 中提供的对 prompt=login 参数的原生支持。

什么是 prompt=login?

当应用程序需要从 Microsoft Entra ID 请求新的身份验证时,这意味着即使用户已经过身份验证,也需要 Microsoft Entra ID 对用户重新进行身份验证,它们可以将 prompt=login 参数作为身份验证请求的一部分发送到 Microsoft Entra ID。

如果此请求是针对联合用户,则 Microsoft Entra ID 需要通知 IdP(如 AD FS)该请求用于新的身份验证。

默认情况下,将这种类型的身份验证请求发送到联合 IdP 时,Microsoft Entra ID 会将 prompt=login 转换为 wfresh=0wauth=https://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password

这些参数意味着:

  • wfresh=0:执行新的身份验证
  • wauth=https://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password:对新的身份验证请求使用用户名/密码

这可能会导致那些需要用户名和密码(通过 wauth 参数请求)以外的身份验证类型的企业 Intranet 和多重身份验证场景出现问题。

具有 2016 年 7 月更新汇总的 Windows Server 2012 R2 中的 AD FS 引入了对 prompt=login 参数的原生支持。 这意味着,现在 Microsoft Entra ID 可以按原样将此参数作为 Microsoft Entra ID 和 Office 365 身份验证请求的一部分发送到 AD FS 服务。

支持 prompt=login 的 AD FS 版本

下面是支持 prompt=login 参数的 AD FS 版本列表。

  • 具有 2016 年 7 月更新汇总的 Windows Server 2012 R2 中的 AD FS
  • Windows Server 2016 或更高版本中的 AD FS

如何配置联合域以将 prompt=login 发送到 AD FS

使用 Microsoft Graph PowerShell 模块配置设置。

  1. 首先,通过运行以下 PowerShell 命令获取联合域的 FederatedIdpMfaBehaviorPreferredAuthenticationProtocolPromptLoginBehavior 的当前值:

    Get-MgDomainFederationConfiguration -DomainId <your_domain_name> | Format-List *
    

    注意

    默认情况下,Get-MgDomainFederationConfiguration 的输出不会在控制台中显示某些属性。 若要查看所有属性,应将其输出通过管道 (|) 传输到 Format-List *,以强制输出对象的所有属性。

    如果属性 PromptLoginBehavior 的值为空 ($null),则使用 TranslateToFreshPasswordAuth 的行为。

  2. 通过运行以下命令配置所需的 PromptLoginBehavior 值:

    New-MgDomainFederationConfiguration -DomainId <your_domain_name> `
       -FederatedIdpMfaBehavior <current_value_from_step1> `
       -PreferredAuthenticationProtocol <current_value_from_step1> `
       -PromptLoginBehavior <TranslateToFreshPasswordAuth|NativeSupport|Disabled>
    

以下是 PromptLoginBehavior 参数的可能值及其含义:

  • TranslateToFreshPasswordAuth:表示将 prompt=login 转换为 wauth=https://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/passwordwfresh=0 的默认 Microsoft Entra 行为。
  • NativeSupport:表示 prompt=login 参数将按原样发送到 AD FS。 如果 AD FS 在具有 2016 年 7 月更新汇总或更高版本的 Windows Server 2012 R2 中,则建议使用此值。
  • Disabled:表示仅将 wfresh=0 发送到 AD FS。