使用Azure AD Graph API在B2C中添加自定义属性(扩展名)不会显示在Azure Portal用户属性刀片中

时间:2018-06-29 17:18:36

标签: azure-active-directory azure-ad-b2c azure-ad-graph-api

有人问here,但仍未回答相同的问题。我可以添加一个自定义属性,如下所示:

{
    "name": "new_secure_claim",
    "dataType": "Boolean",
    "targetObjects": ["User"]
}

我将此数据发布到带有所需标头的 https://graph.windows.net/{tenant}.onmicrosoft.com/applications/{objectId of b2c-extensions-app}/extensionProperties?api-version=1.6到Azure AD Graph API端点。我收到刚创建的扩展程序的响应。当我查询图表以获取b2c-extensions-app的所有扩展名时,甚至可以看到扩展名(请注意下面的顶部):

{
"odata.metadata": "https://graph.windows.net/melangeauth.onmicrosoft.com/$metadata#directoryObjects/Microsoft.DirectoryServices.ExtensionProperty",
"value": [{
        "odata.type": "Microsoft.DirectoryServices.ExtensionProperty",
        "objectType": "ExtensionProperty",
        "objectId": "b7a36f93-8d7a-463f-8d3e-88f449243ea6",
        "deletionTimestamp": null,
        "appDisplayName": "",
        "name": "extension_8588c037999f4d058cc08e2e5f99de30_new_secure_claim",
        "dataType": "Boolean",
        "isSyncedFromOnPremises": false,
        "targetObjects": ["User"]
    }, {
        "odata.type": "Microsoft.DirectoryServices.ExtensionProperty",
        "objectType": "ExtensionProperty",
        "objectId": "b6c6d55f-21a8-4403-a68f-f858966077bf",
        "deletionTimestamp": null,
        "appDisplayName": "",
        "name": "extension_8588c037999f4d058cc08e2e5f99de30_manager_admin_authorization",
        "dataType": "Boolean",
        "isSyncedFromOnPremises": false,
        "targetObjects": ["User"]
    }, {
        "odata.type": "Microsoft.DirectoryServices.ExtensionProperty",
        "objectType": "ExtensionProperty",
        "objectId": "2642596f-5706-47fb-abdb-6d0d012a3006",
        "deletionTimestamp": null,
        "appDisplayName": "",
        "name": "extension_8588c037999f4d058cc08e2e5f99de30_manager_admin",
        "dataType": "Boolean",
        "isSyncedFromOnPremises": false,
        "targetObjects": ["User"]
    }, {
        "odata.type": "Microsoft.DirectoryServices.ExtensionProperty",
        "objectType": "ExtensionProperty",
        "objectId": "ee2c66e3-ced4-4bc8-90d5-e2b18690a56b",
        "deletionTimestamp": null,
        "appDisplayName": "",
        "name": "extension_8588c037999f4d058cc08e2e5f99de30_manager_ads_admin",
        "dataType": "Boolean",
        "isSyncedFromOnPremises": false,
        "targetObjects": ["User"]
    }
]
}

但是,当我转到Azure门户(https://portal.azure.com/#blade/Microsoft_AAD_B2CAdmin/TenantManagementMenuBlade/manageUserAttributes)的B2C目录中的“ Azure AD B2C /用户属性”刀片时,看不到该扩展名属性。当我添加要返回保单的索赔时,我也看不到它。

要向b2c-extensions-app应用程序添加自定义扩展名,以便让我查看是否在Azure门户用户属性刀片中,我需要做些什么?

1 个答案:

答案 0 :(得分:1)

嗯,嗯。

当人们以无证件的方式处理事情时,情况会变得复杂。为简单起见,我鼓励您继续使用门户网站定义扩展。如果您只是想这样做(似乎想要)。因为除了在Graph上注册扩展之外,还有很多。

要了解为什么会这样,您必须更深入地了解B2C是如何从内部进行滴答的。深入custom policies时,您会获得概述。但是,自定义策略仍然保留在文档中,适用于知道自己在做什么的身份专家。直截了当,claims schema是在所谓的基本策略中定义的。它不仅在图表中定义,而且在基本策略中定义backed。 XML模式规定了B2C必须做什么以及应该如何做。并且所有声明(和自定义属性)也在该模式中定义。因此,当您在门户网站中更改有关此架构的内容(添加新属性)时,它会在Graph API中进行注册,但也会在声明定义架构中进行更新,该声明定义架构将单独保存。

这就是为什么当您使用Graph手动注册扩展时,它只是不会显示在门户中的原因。

我不希望您跳入并开始学习自定义策略,因为对于您而言,您只是不需要它们。但我希望不必在门户中定义定制属性对您来说不是一个大问题。