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)请求用于新的身份验证。

默认情况下,Microsoft Entra ID 在将此类身份验证请求发送到联合 IdP 时,会将 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 参数请求。

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

支持 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 在 Windows Server 2012 R2 中使用 2016 年 7 月更新汇总或更高版本,则建议使用此值。
  • 已禁用:表示仅 wfresh=0 发送到 AD FS。