跨新环境移动 Azure AD B2C 自定义用户属性

Moving Azure AD B2C custom user attributes across new environments

我在我的开发 AD B2C 租户中创建了一个 'customerId' 用户属性。当通过图表 API 查询这些时,我现在得到以下信息;

"extension_b0ba955412524ac8be63e24fa7eb0c23_customerId": "2"

完美!我使用 JSON.Net 将其转换为强类型对象,因此我的 POCO 具有以下 属性.

public string extension_b0ba955412524ac8be63e24fa7eb0c23_customerId { get; set; }

不太好,但我可以忍受。我担心的是,当我在暂存和生产环境中创建这些属性时,属性名称会发生​​变化,我将不得不重写大量代码。我如何将这些用户属性迁移到我们的其他环境,确保 属性 名称不变?

Azure AD B2C 中的自定义用户属性在名称中始终有一个 guid,每个 Azure AD B2C 租户都是唯一的。

此 guid 是 'b2c-extensions-app' 的应用程序 ID,对于一个租户内的所有自定义属性都是相同的,但在不同租户之间是不同的。

鉴于此行为,您可以使处理自定义用户属性的代码动态化,以便使用以下模式派生全名*

extension_<appId>_<attributeName>

并通过Graph获取appID:

https://graph.windows.net/yourtenant.onmicrosoft.com/applications?$filter=displayName eq 'b2c-extensions-app'

当然,您可以随时提供反馈,要求在 Azure AD B2C feedback forum 中简化此操作。