我已经使用 SSO 和帐户迁移创建了自定义策略( you can view them on GitHub here ,注意:出于安全原因,我删除/编辑了值)。我希望用户能够首次使用社交提供商或本地帐户登录。然后,我会将他们的帐户从旧身份提供商迁移到 AAD B2C。但目前以下错误。
最大的问题是当帐户迁移并且用户可以登录时,然后在尝试链接社交帐户时,我收到以下错误。
AADB2C90051: No suitable claims providers were found.
Correlation ID: 4491cd4a-2f98-4a86-8d65-da3f7f26e890
Timestamp: 2022-11-20 10:38:05Z
奇怪的是,如果我首先使用 Google 或 Facebook 登录(然后迁移帐户),然后使用 Microsoft 或本地帐户登录,它就会起作用。但是,当首次使用 Microsoft 或本地帐户登录时,我收到错误消息。
我见过this和其他帖子,但找不到我所缺少的内容。我知道政策非常庞大,因此首先请在 CUSTOM_USERJOURNEY.xml 中查找 ProvisionOrSignInNewSocialAccount on GitHub .
最佳答案
默认情况下,现有本地 B2C 用户配置文件不存在 hasPassword
属性。它是通过链接自定义策略引入的。您需要手动(或通过脚本)为该属性添加值 true
,它将开始工作。
您可以使用 Graph API 来增加值(value),因此基本上可以对用户端点进行 PATCH:
PATCH /v1.0/users/12bda93c-f782-431c-b962-52c5304c0668 HTTP/1.1
Host: graph.microsoft.com
Content-Type: application/json
Authorization: Bearer eyJ0...
{
"extension_67a963aa6ce74511923b85511f0f8dad_hasPassword" : true
}
请参阅此处进行完整讨论:https://bytemeta.vip/repo/azure-ad-b2c/samples/issues/430
与这个问题略有相关,但场景不同:AAD-FindLocalAccountWithSocialEmail produces No suitable claims providers were found
关于azure-active-directory - Azure Active Directory B2C AADB2C90051 : No suitable claims providers were found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74507536/