使用Microsoft Graph在用户上获取扩展属性

问题描述:

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

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

我也尝试过使用$扩展查询singleValueExtendedProperty(和多值),但我告诉属性的用户对象上不存在。
https://graph.microsoft.com/beta/Users/{id}?$expand=singleValueExtendedProperty

我也玩过User对象上的'extensions'字段,但是它总是空。

只是好奇,如果Graph支持此操作,如果是这样,如何查询该字段。如果在查询用户组时不需要运行单独的查询,就可以获得此扩展的价值,这将是一项奖励。

扩展在微软图表显示了Extensions集合内,不都是*属性:

"@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": "[email protected]", 
"[email protected]": "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

+0

感谢您的回答...我试过查询extensions属性(并扩展它),但是返回的所有内容都是空列表。我的User对象上的扩展名不是用Graph创建的,而是用openExtensions创建的。它们是使用Azure AD Graph API作为扩展属性创建的。我不确定这两件事是否相同。 –

+0

有“开放式”和“架构”扩展。这听起来像是一个模式扩展?您可以使用'https:// graph.microsoft.com/v1.0/schemaExtensions'查找扩展列表。然后,您可以使用'$ select = id,name,{schemaExtension-id}'中的'id'属性将其包含在结果中。 –

+0

我在模式扩展中看不到我的扩展。这可能是因为它们是用AAD API创建的,它们不会显示出来吗?我在这里发现了一个非常类似的未答复的问题:https://*.com/questions/40218848/access-azue-active-directory-extension-from-microsoft-graph。使用这个我可以得到我的扩展。 –