Azure AD B2C - 如何将从社交IDP登录的用户映射到本地用户表?

时间:2017-08-14 12:47:04

标签: azure-ad-b2c

我们现有的一个项目正在运行传统的身份验证逻辑(在数据库中有一个用户表)。该计划如何通过集成社交IDP将身份移至AzureB2C。但仍有一些地方我们需要现有用户表的引用。我需要找到一种方法来将Azure B2C中的登录用户与数据库中的用户表进行映射。我可以从声明中读取电子邮件属性并尝试映射,但挑战是用户可能为其社交帐户添加了不同的电子邮件。我知道这实际上违背了openId / oAuth在登录后再次在用户表中回顾的目的。但这是一个奇怪的情况。有什么想法可以做到最好吗?

1 个答案:

答案 0 :(得分: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。因此社交帐户和本地数据库帐户之间没有现有连接。 这一点至关重要,因为通常是用户的特权(由于隐私)明确地建立此链接。 假设您将明确告诉用户您在转换过程中正在做什么。

要使用b2c内置策略实现此目的,您可以: 1.您的应用程序以旧式方式登录用户。(现有查找数据库) 2.然后,您的应用程序邀请用户使用b2c注册策略进行注册(实际上是重新注册),该策略为他们提供社交idp选项。 3.在b2c注册过程结束时,在b2c注册和对象ID(新创建)期间提供和校对的用户电子邮件将被发送回App 4.应用程序使用对象ID和图形将用户现有ID(您当前使用的旧DB电子邮件或其他唯一用户ID)写入Azure AD B2C中的新用户对象。 5.应用程序应在旧数据库上注明该用户已迁移,因此将来应用程序不会提供重新注册的选项。 6.该应用必须管理两个不同州的用户。

其他替代方法是使用自定义策略和帐户链接 在这里你可以 1.使用旧密码将所有用户迁移到b2c。 (假设您可以使用Graph从旧DB中获取它们)。 2.将您的应用指向b2c - 用户可以登录 3.为用户提供将其b2c帐户链接到社交帐户的选项。这需要自定义策略和不公开的策略路径,但它是我们可以提供的简单示例。