我在开发 AD B2C 租户中创建了一个"customerId"用户属性。通过图形 API 查询这些内容时,我现在得到以下内容;
"extension_b0ba955412524ac8be63e24fa7eb0c23_customerId": "2"
完善!我使用 JSON.Net 将其转换为强类型对象,因此我的 POCO 具有以下属性。
public string extension_b0ba955412524ac8be63e24fa7eb0c23_customerId { get; set; }
不是很好,但我可以忍受。我担心的是,当我在过渡和生产环境中创建这些属性时,属性名称会更改,我将不得不重写大量代码。如何将这些用户属性迁移到我们的其他环境,确保属性名称不会更改?
中的自定义用户属性在名称中始终具有每个 Azure AD B2C 租户唯一的 GUID。
此 guid 是"b2c-extensions-app"的应用程序 ID,对于租户中的所有自定义属性都是相同的,但在租户之间是不同的。
鉴于此行为,您可以使处理自定义用户属性的代码动态化,以便使用以下模式派生全名*:
extension_<appId>_<attributeName>
并通过图形获取 appID:
https://graph.windows.net/yourtenant.onmicrosoft.com/applications?$filter=displayName eq 'b2c-extensions-app'
当然,你始终可以在 Azure AD B2C 反馈论坛中提供反馈,请求简化此操作。