嗨(我是新手,所以你需要原谅我),
我尝试使用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
的内容,但似乎更多的是用于优化查询而不是查找特定属性。
我确信有一个相当简单的解决方案,如果有人能指出我如何查询特定属性的正确方向,我将不胜感激。
答案 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...