使用Microsoft Graph获取用户的扩展属性

时间:2017-08-28 18:09:29

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

我正在使用Microsoft Graph来管理Azure AD用户,并且在访问User对象上的扩展属性时遇到了一些问题。使用Azure AD Graph API创建用户时添加了该属性,如果使用Azure AD API查询用户,则会自动返回名为“extension_ {appId} _ {propertyName}”的扩展属性。我想使用Microsoft Graph访问此属性的值,但没有找到正确的调用。

我尝试使用$ select直接选择属性(按上面列出的全名)和较短的名称 https://graph.microsoft.com/beta/Users/{id}?$select=extension_{appId}_{propertyName}

我还尝试使用$ expand查询singleValueExtendedProperty(和multiValue)但是我告诉用户对象上不存在该属性。
https://graph.microsoft.com/beta/Users/{id}?$expand=singleValueExtendedProperty

我还使用了User对象上的'extensions'字段,但它始终只是null。

只是好奇Graph是否支持此操作,如果是,则如何查询该字段。如果我在查询用户组时可以获得此扩展的值而无需运行单独的查询,那将是一个额外的好处。

1 个答案:

答案 0 :(得分:3)

扩展程序在Extensions集合中的Microsoft Graph中显示,而不是顶级属性:

"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,mail,extensions)/$entity",
"id": "16f5a7b6-5a15-4568-aa5a-31bb117e9967",
"displayName": "Anne Weiler",
"mail": "annew@CIE493742.onmicrosoft.com",
"extensions@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('16f5a7b6-5a15-4568-aa5a-31bb117e9967')/extensions",
"extensions": [
    {
        "@odata.type": "#microsoft.graph.openTypeExtension",
        "theme": "dark",
        "color": "purple",
        "lang": "Japanese",
        "extensionName": "com.contoso.roamingSettings",
        "id": "com.contoso.roamingSettings"
    }
]

例如,您可以使用以下查询返回users的集合(包括任何扩展名):v1.0/users?$select=id,displayName,mail&$expand=extensions(请参阅Graph Explorer