使用Microsoft图形API检索特定属性

时间:2017-05-05 14:55:39

标签: rest azure-active-directory microsoft-graph azure-ad-graph-api

嗨(我是新手,所以你需要原谅我),

我尝试使用Microsoft Graph API从活动目录中检索一些用户属性。

我正在对Microsoft graph explorer进行一些测试,但我并不完全确定如何检索名为employeeID的特定属性(这是必需的)。我已经找到了如何使用以下内容检索我需要的其他一些基本信息:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
    "id": "6df92a63-2bef-477c-8c84-bf1113d5bd3e",
    "businessPhones": [],
    "displayName": "SmithB",
    "givenName": "bob",
    "jobTitle": null,
    "mail": "example@example.com",
    "mobilePhone": null,
    "officeLocation": null,
    "preferredLanguage": null,
    "surname": "smith",
    "userPrincipalName": "example@example.com"
}

返回:

$select

但是,我在这一点上感到茫然。文档似乎提到了使用x = lambda : 6 print(x()) # prints -> 6 的内容,但似乎更多的是用于优化查询而不是查找特定属性。

我确信有一个相当简单的解决方案,如果有人能指出我如何查询特定属性的正确方向,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果您查看documented properties exposed on a user,就会发现没有名为EmployeeId的媒体资源。

现在可能是该属性在用户对象上以Open Extension存在。

在这种情况下,您可以read here了解如何返回用户对象的扩展属性。

GET /users/{Id|userPrincipalName}/extensions/{extensionId}

或者您可以将Schema Extensions用于同一目的。

GET https://graph.microsoft.com/beta/schemaExtensions

无论哪种方式,如果您是目录中存在EmployeeId的证书,您应该知道它不是Microsoft Graph或AAD支持的默认属性。相反,它必须是使用上述两种扩展方法之一添加到目录中的扩展名。

我希望这会有所帮助。

答案 1 :(得分:1)

我猜这个线程已经过时了。 Official GraphAPI reference doc中记录了通过Microsoft Graph API公开的Azure AD中现在有一个标准属性,称为“ employeeId”。 它不会显示在默认响应中,但可以通过$select参数检索,例如: https://graph.microsoft.com/v1.0/users/{user_id}?$select=givenName,surname,employeeId,etc...