使用 Azure AD B2C 在注册期间添加帐户 ID
Posted
技术标签:
【中文标题】使用 Azure AD B2C 在注册期间添加帐户 ID【英文标题】:Add account Id during registration using Azure AD B2C 【发布时间】:2017-10-23 03:15:31 【问题描述】:当一个新用户在我的 ASP.NET Core 应用程序中注册时,我需要为该用户创建一个新的“组织帐户”以及一个“用户帐户”。我希望 Azure AD B2C 处理用户帐户,但我想在我的后端处理组织帐户。
组织帐户允许多个用户共享一个帐户。该过程可以像向 Azure AD B2C 发送我将用于帐户的新 GUID
值一样简单。我希望将此帐户 ID 包含在 JWT
令牌声明中。
如何将此帐户 ID 传递给 Azure AD B2C?将帐户 ID 传递给 Azure AD B2C 很重要,因为我可以在处理将新用户添加到现有组织帐户时使用该方法。
那么,如何在用户注册期间将一些值从我的后端传递到 Azure AD B2C?
附:我想进一步阐明将新用户添加到现有组织帐户的过程。组织帐户管理员向其他用户发送邀请。此邀请将允许我提取现有帐户 ID 并将其传递给 Azure AD B2C,以便在 JWT
令牌中包含帐户 ID。最好添加组织帐户名称,例如AccountName: Acme, Inc.
和 AccountId: 7f6818d9-4167-4a57-99ee-2f313a230a7b
【问题讨论】:
【参考方案1】:您可以通过创建自己的 JWT 向 B2C 发送声明。不幸的是,没有关于这个过程的官方指南。而且还需要你使用Custom Policies
。
参考:Require Input Claims From JWT From RelyingParty in Azure AD B2C
【讨论】:
【参考方案2】:很遗憾,当您发送请求时,不支持向 Azure AD B2C 发送任何声明(例如帐户 ID)的方式。它肯定在积压中,但还没有关于何时可用的时间表。
虽然使用自定义策略,但仍有一些替代方案,不确定其中任何一个是否有用。
1) 使用邀请时设置的电子邮件地址在 Azure AD B2C 租户中创建用户帐户。届时,您可以在扩展属性中添加 AccountId 和 AccountName。
用户成功注册后(包括设置密码),AccountId和AccountName可以包含在token中。
2) 创建一个包含电子邮件 -> accountid/accountname 映射的外部存储。当用户在 Azure AD B2C 中注册时,您可以调用 Rest API 以获取帐户 ID 和帐户名称并发送令牌。
【讨论】:
也许另一种解决方案是通过 Graph API 手动处理整个过程,如下所述:docs.microsoft.com/en-us/azure/active-directory-b2c/… 这样我就可以完全控制注册和登录过程。以上是关于使用 Azure AD B2C 在注册期间添加帐户 ID的主要内容,如果未能解决你的问题,请参考以下文章
在 Azure AD B2C 中,我们如何在注册和登录时自动链接帐户?用户应该只有一个帐户
如何在 Azure AD B2C 中管理用户流之间的单个帐户/会话
Azure AD B2C 与企业 (Azure?) AD 帐户集成
Azure AD B2C - 我们可以使用电子邮件 ID 而不是 UPN 登录 - 仅限本地帐户自定义策略吗?