无法从/ users / {oid} graph api中读取用户自定义属性

时间:2017-09-26 21:31:08

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

我无法通过GET / users / {oid} graph api阅读Azure AD B2C自定义用户属性。

curl https://graph.windows.net/VishOrganizationB2CTenant.onmicrosoft.com/users/4a70b88f-2aa9-456c-b8e3-680bbd1bbf9f?api-version=1.6 -H“授权:bearer eyJ0eXAiOiJKV1QiLCJhbGci ....”

以上cURL调用不会在响应中返回自定义用户属性,但我会在响应中获得内置用户属性。

我甚至尝试过这样:

curl https://graph.windows.net/VishOrganizationB2CTenant.onmicrosoft.com/users/4a70b88f-2aa9-456c-b8e3-680bbd1bbf9f/extension_box_appuser_id?api-version=1.6 -H“授权:bearer eyJ0eXAiOiJKV1QiLCJhbGci ......”

这将返回错误消息:

{“odata.error”:{“code”:“Request_ResourceNotFound”,“message”:{“lang”:“en”,“value”:“资源'extension_box_appuser_id'不存在或其查询引用之一 - 属性对象不存在。“}}}

'box_appuser_id'是我在Azure AD B2C租户中添加的自定义用户属性。

有人可以指导我在这里缺少什么吗?

谢谢, Vish

2 个答案:

答案 0 :(得分:1)

根据错误消息,扩展属性似乎不会退出或不正确。请检查扩展程序是否退出,您可以参考下面的REST列出组织中的所有扩展程序属性:

POST https://graph.windows.net/{tenant}/getAvailableExtensionProperties?api-version=1.6
authorization: bearer {access_token}
Content-Type: application/json

{
    "isSyncedFromOnPremises": false
}

答案 1 :(得分:0)

实现这一目标的一种非常简单的方法

使用标准策略创建自定义属性 在政策期间写信给它 进入图形并获取刚刚写入的对象 这将为您提供正确的格式 extension_guid_name

例如extension_123132131231233213_name。

在政策中创建这些声明时,声明ID应为

extension_name.

如果要返回这些内容,则需要使用B2C扩展应用程序(在Azure AD中找到)作为要在自定义策略中连接的身份应用程序。

在您的AD技术配置文件的元数据中,您的b2c_extension_app_guild必须

</Metadata>
   <Item Key="ApplicationObjectId">App Object ID</Item>
   <Item Key="ClientId">B2C_extension_app_guid </Item>
</Metadata>