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

J L*_*zon 9 azure-ad-graph-api microsoft-graph-api

我正在使用 Microsoft Graph 来管理 Azure AD 用户,但在访问用户对象上的扩展属性时遇到了一些问题。该属性是在使用 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 对象上的“扩展”字段,但它始终为空。

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

Mar*_*eur 7

扩展显示在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"
    }
]
Run Code Online (Sandbox Code Playgroud)

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