繁体   English   中英

使用Graph API目录架构API创建时未显示B2C自定义属性

[英]B2C Custom Attributes not showing when created using Graph API directory schema API

使用此处记录的扩展API:

https://msdn.microsoft.com/en-us/library/azure/ad/graph/howto/azure-ad-graph-api-directory-schema-extensions

与B2C Graph Client示例结合使用:

https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-devquickstarts-graph-dotnet

我使用此API通过AD Graph API为目录架构扩展创建了一个自定义属性:

POST 
https://graph.windows.net/contoso.onmicrosoft.com/applications/<applicationObjectId>/extensionProperties?api-version=1.6
{
    name: "OrgRoleId",
    dataType: "String",
    targetObjects: [
        "User"
    ]
}

(注意我将API版本更改为1.6)。

API创建的自定义属性使用B2CGraphClient示例显示,并且具有与通过Azure门户为B2C注册的数据相同的数据。

但是,这些API创建的自定义属性不会出现在租户的Azure门户“用户属性”刀片中,而通过Azure门户为B2C租户创建的自定义属性也会出现。

请注意,我可以成功地为用户读取和写入这些扩展值(通过Graph API)。 我无法将它们置于声明中,因为它们不会出现在“用户属性”刀片中,也不会出现在Azure门户中的策略声明刀片中,因此它们不会作为声明添加到令牌中。

我错过了什么/做错了什么?

B2C.exe Get-extension-attribute <b2c-extensions-app objectId>输出B2C.exe Get-extension-attribute <b2c-extensions-app objectId> *_Test1出现(门户创建),而*_UserRoleId不出现(API创建):

{
  "odata.metadata": "https://graph.windows.net/<tenant_id>/$metadata#directoryObjects/Microsoft.DirectoryServices.ExtensionProperty",
  "value": [
    {
      "odata.type": "Microsoft.DirectoryServices.ExtensionProperty",
      "objectType": "ExtensionProperty",
      "objectId": "f58bc813-632c-486b-bff1-61695eeab691",
      "deletionTimestamp": null,
      "appDisplayName": "",
      "name": "extension_<object_id>_Test1",
      "dataType": "String",
      "isSyncedFromOnPremises": false,
      "targetObjects": [
        "User"
      ]
    },
    {
      "odata.type": "Microsoft.DirectoryServices.ExtensionProperty",
      "objectType": "ExtensionProperty",
      "objectId": "5e69b2d9-1ab0-463f-a231-5c188e92b4a1",
      "deletionTimestamp": null,
      "appDisplayName": "",
      "name": "extension_<object_id>_UserRoleId",
      "dataType": "String",
      "isSyncedFromOnPremises": false,
      "targetObjects": [
        "User"
      ]
    }
    ...

当您通过门户添加扩展属性时,它将在目录中创建并由b2c-extensions-app应用程序拥有, 并且还会添加到租户范围的策略中。 这就是允许您在创建应用程序策略时使用它们的原因。

使用Graph API创建扩展属性时,它不会添加到策略中,并且通常在b2c-extensions-app以外的应用程序上创建。 您可以直接在自定义策略中使用这些属性,但它们不会出现在门户中,也不能在通过门户创建的策略中使用。

最佳做法是通过门户创建扩展属性,以便它们可用于所有策略。 这允许客户将自定义策略与内置b2c用户流混合和匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM