在Microsoft Graph API中查询extensionAttributes

时间:2019-02-08 01:08:40

标签: microsoft-graph

我有一些使用Azure AD Connect从本地同步到Azure AD的extensionAttributes(1-4),我想使用Microsoft Graph API查询这些,但是返回的数据为空

如下所示,Azure AD Connect工具将extensionAttribute1同步为extension_guid_extensionAttribute1等。

在此示例中,我随机更改了GUID

Get-AzureADUser -ObjectId test.user@mydomain.com | Select -ExpandProperty ExtensionProperty

Key                                                            Value
---                                                            -----
odata.metadata                                                 https://graph.windows.net/ec28dcc...
odata.type                                                     Microsoft.DirectoryServices.User
createdDateTime
employeeId
onPremisesDistinguishedName                                    CN=Test User,OU=Users - Active,DC=internal,DC=...
thumbnailPhoto@odata.mediaContentType                          image/Jpeg
userIdentities                                                 []
extension_034abf7ea2ee45317869abe74870bf20_extensionAttribute4 7119
extension_034abf7ea2ee45317869abe74870bf20_extensionAttribute3 0834717194
extension_034abf7ea2ee45317869abe74870bf20_extensionAttribute1 \\fileserver\scan\folder\Test.User

我可以在文档中找到的是,通过API查询时,这些属性应称为onPremisesExtensionAttributes,但它们全为空:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(displayName,onPremisesExtensionAttributes)/$entity",
    "displayName": "Test User",
    "onPremisesExtensionAttributes": {
        "extensionAttribute1": null,
        "extensionAttribute2": null,
        "extensionAttribute3": null,
        "extensionAttribute4": null,
        "extensionAttribute5": null,
        "extensionAttribute6": null,
        "extensionAttribute7": null,
        "extensionAttribute8": null,
        "extensionAttribute9": null,
        "extensionAttribute10": null,
        "extensionAttribute11": null,
        "extensionAttribute12": null,
        "extensionAttribute13": null,
        "extensionAttribute14": null,
        "extensionAttribute15": null
    }
}

同样,如果我直接查询属性名称:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(displayName,extension_034abf7ea2ee45317869abe74870bf20_extensionAttribute1)/$entity",
    "displayName": "Test User"
}

我希望能够通过Microsoft Graph API获取这些扩展属性的值,但它们为空。我知道数据在里面,因为我可以通过PowerShell get-AzureADUser cmdlet看到它,所以我一定缺少一些东西。

这都是通过Graph Explorer完成的,我还没有编写任何代码来尝试在Graph Explorer之外进行查询。

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

要查看除您之外的用户的所有属性,必须被授予g.V(1).where(neq(outE().values('prop1'), outE().values('prop2'))).count() 权限。

在Graph Explorer中,单击登录按钮下方的“修改权限”以添加权限(您可能需要管理员才能为您授予权限)。

权限参考:https://docs.microsoft.com/en-us/graph/permissions-reference

答案 1 :(得分:0)

结果证明这只是图形浏览器中的一个问题。使用API​​很好。花了很多时间强调这一点,应该在真实环境中对其进行测试!