2017-08-14 24 views
0

我们现有的项目之一是使用传统的认证逻辑(在数据库中有一个用户表)运行。计划如何将社交IDP与身份转移到AzureB2C。但是仍然有一些地方需要现有用户表的参考。我需要找到一种方法将Azure B2C中的登录用户与数据库中的用户表映射。我可以从索赔中读取电子邮件地址并尝试绘制地图,但挑战在于用户可能会为他的社交帐户使用不同的电子邮件。我知道这实际上违背了登录后openId/oAuth在用户表中回顾的目的。但这是一个奇怪的情况遇到。任何想法如何可以做到最好?Azure AD B2C - 如何将从社交IDP登录的用户映射到本地用户表?

回答

0

复制响应来自:https://social.msdn.microsoft.com/Forums/en-US/221fce11-28ff-4236-a300-d6160ffc9379/azure-ad-b2c-how-to-map-the-user-logged-in-from-social-idp-to-a-local-user-table-?forum=WindowsAzureAD

一些事实是从你的问题错过了那么我将让你可以正确的假设。假设: 你今天不使用社交IDP。因此社交帐户和本地数据库帐户之间没有现有连接。 这一点至关重要,因为它通常是用户的特权(由于隐私)明确地建立此链接。 假设您将明确告诉用户您正在做什么作为转换的一部分。在用户 1.您的应用程序日志老式的方式(现有查找DB)然后 2.您的应用程序邀请用户注册(事实上重新:

要与B2C实现这个内置策略你可以。注册)使用b2c注册政策,为他们提供社交idp选择。 3.在b2c注册过程结束时,在b2c注册和对象ID(新创建)期间提供并校对的用户电子邮件被发送回应用程序 4.应用程序使用对象ID和图形来写入用户现有的id(旧数据库电子邮件或您今天使用的其他唯一用户标识)到Azure AD B2C中的新用户对象。 5.应用程序应该在旧数据库中注意到该用户已被迁移,因此将来该应用程序不会提供重新注册的选项。 6.该应用程序必须管理2种不同状态的用户。


另一种方法是使用自定义政策和帐户关联 在这里你可以 1.迁移所有用户到B2C使用旧密码。 (假设您可以使用Graph从旧数据库中清除它们)。 2.将您的应用指向b2c - 用户可以登录 3.为您的用户提供将他们的b2c帐户链接到社交帐户的选项。这需要定制策略和一个不公开的政策路径,但它是我们可以提供的一个简单示例。

相关问题