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=0
和 wauth=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 模块配置设置。
首先,通过运行以下 PowerShell 命令获取联合域的
FederatedIdpMfaBehavior
、PreferredAuthenticationProtocol
和PromptLoginBehavior
的当前值:Get-MgDomainFederationConfiguration -DomainId <your_domain_name> | Format-List *
注意
默认情况下,
Get-MgDomainFederationConfiguration
的输出不会在控制台中显示某些属性。 若要查看所有属性,应将其输出通过管道 (|
) 传输到Format-List *
,以强制输出对象的所有属性。如果属性
PromptLoginBehavior
的值为空 ($null
),则使用TranslateToFreshPasswordAuth
的行为。通过运行以下命令配置所需的
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/password
和wfresh=0
的默认 Microsoft Entra 行为。 - NativeSupport:表示
prompt=login
参数将按原样发送到 AD FS。 如果 AD FS 在具有 2016 年 7 月更新汇总或更高版本的 Windows Server 2012 R2 中,则建议使用此值。 - Disabled:表示仅将
wfresh=0
发送到 AD FS。