首页 > 解决方案 > Azure AD B2C - 运行“自助密码重置”后,自定义策略“会话”处于不正确状态

问题描述

我们有一个基于SocialAndLocalAccounts启动包的自定义策略。

我们一直在添加Home Realm Discovery基于此示例HomeRealmDiscovery-Modern的支持,以将使用第三方提供商的用户重定向到正确的登录页面 (IdP)

我们还增加了对通过第三方身份提供商登录的用户Domain Hints完全跳过登录页面的支持。

该政策根据官方文档使用新发布的自助密码重置。

有什么问题?

当用户进行“自助密码重置”时,B2C 会话处于损坏状态。如果用户被重定向回 B2C,则不会获取会话。

我们怎么能这么说?用例是什么?

重现步骤:

1:用户转到将用户重定向到 B2C 登录页面的应用程序。

2:用户输入本地帐户电子邮件 (Gmail),然后在下一个屏幕上单击“忘记密码”链接,该链接使用自助密码重置实现。

3:用户正确完成密码重置流程,最终进入“MFA”因素(短信代码)。

4:用户正确地被重定向到带有 ID 令牌的应用程序,成功登录。

6:用户使用相同的自定义策略单击指向新/不同应用程序的链接。

7:新应用程序将用户重定向到 B2C(相同的自定义策略)

预期结果:用户应该有一个有效的 B2C 会话,并且不应提示再次登录,而是重定向到具有有效id-token.

实际结果:用户被发送回新应用程序,回调 URL 中有错误消息,并由于错误重定向回 B2C 重新登录。

错误信息:

AADB2C90051: No suitable claims providers were found. 
Correlation ID: c014004a-d2da-4000-83e5-6d648f9acccc 
Timestamp: 2021-06-16 07:17:16Z

重要提示:如果用户通过正常登录流程(无密码重置),一切正常。用户可以在不同的应用程序之间切换,并且 B2C 可以正确获取会话,而不会引发错误或提示新的登录。不同应用程序之间的 SSO 按预期工作。

这是TrustFrameworkExtention包含所有逻辑并从启动包的基本文件扩展而来的完整文件: TrustFrameworkExtention.xml

标签: azure-ad-b2cazure-ad-b2c-custom-policyaad-b2c

解决方案


尝试这个:

  1. CreateidentityProvidersCollectionLogic更改SM-NoopSM-DOMAIN.
  2. 补充SM-DOMAIN
<PersistedClaim ClaimTypeReferenceId="identityProviders" />

推荐阅读