【问题标题】:Importing claims from a (multi tenant) AD tenant into B2C (and subsequently PowerApps Portal)将声明从(多租户)AD 租户导入 B2C(以及随后的 PowerApps 门户)
【发布时间】:2022-01-13 15:29:39
【问题描述】:

我已设置自定义 b2c 策略,以便特定 Azure AD 租户中的用户(我们的特定客户)无需先明确注册即可登录门户(他们可以使用白名单通过 b2c 登录门户AD 帐户)。

我想使用基本的用户流来实现这一点,但据我所知,AD 多租户只能通过自定义策略实现,但这完全是一个单独的问题。

我现在想要做的是获取用户在其 AD 客户端中设置的属性(电话号码等),并将这些属性添加到注册用户旅程中的索赔包中,以便它们在 b2c 租户中保留为好(然后将它们再次映射到门户中的客户联系人)。

我已经阅读了很多关于丰富令牌以及使用自定义属性的内容,但到目前为止,我还没有找到如何从用户的 AD 帐户中实际获取现有数据并将其传输到 b2c 帐户的方法它是在注册时创建的。

也许我需要使用 Graph API 来执行此操作,但我没有使用 API 从用户那里检索该数据的经验(当然也需要权利和同意),更重要的是,我不知道(然而)我将如何在用户旅程中实现/调用 API。

如果有人能指导我正确的方向,将不胜感激!

如果事实证明我可以授予特定的白名单 AD 用户(来自不同的 AD 租户)注册我的 b2c 租户并从这些用户的 AD 帐户导入(移动)电话号码等数据的权限,那当然是太棒了。

在代码方面:我正在使用本地和社交入门包中的 XML 文件(以及用户旅程),从扩展文件中删除社交登录选项,仅添加多租户 AD 声明提供程序(按照说明由 MS docs 提供),并且仅删除了自我断言的社交技术配置文件中的一些输出声明,以隐藏我在注册期间能够导入并保留给用户的数据(姓名、用户名和备用电子邮件(这也是userprincipalname 出于某种原因))。

【问题讨论】:

    标签: azure azure-ad-b2c multi-tenant azure-ad-b2c-custom-policy


    【解决方案1】:

    根据this,您可以配置要从 Azure AD 传递的可选声明。

    然后根据this,将这些声明映射到 B2C 等价物。

    例如

    <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
    <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
    <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
    

    在 Azure AD 端,您选择了“family_name”和“given_name”。

    在 B2C 端,映射的右侧是 Azure AD 名称。左侧是 B2C 名称。

    所以“family_name”映射到 B2C 中的“surName”,您现在可以在您的用户旅程中使用此声明。

    【讨论】:

    • 使用令牌配置设置中的可选声明的问题是它缺少很多属性,这些属性对于在用户的 AD 租户和他们的 b2c 帐户之间转移非常有帮助。如果在注册应用程序的令牌配置中无法选择这些声明(如电话号码),添加声明类型是否有任何作用?我可以将这些属性添加到令牌的声明包中,但如果 reg.应用程序不传输/导入它们,感觉没用。
    • 您可以添加额外声明 - docs.microsoft.com/en-us/azure/active-directory/develop/…。但是,如果该声明不在 B2C 架构中(例如链接中的员工 ID),则必须将其添加为扩展属性,即 extension_employeeID。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多