使用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)
感谢您的回答...我试过查询extensions属性(并扩展它),但是返回的所有内容都是空列表。我的User对象上的扩展名不是用Graph创建的,而是用openExtensions创建的。它们是使用Azure AD Graph API作为扩展属性创建的。我不确定这两件事是否相同。 –
有“开放式”和“架构”扩展。这听起来像是一个模式扩展?您可以使用'https:// graph.microsoft.com/v1.0/schemaExtensions'查找扩展列表。然后,您可以使用'$ select = id,name,{schemaExtension-id}'中的'id'属性将其包含在结果中。 –
我在模式扩展中看不到我的扩展。这可能是因为它们是用AAD API创建的,它们不会显示出来吗?我在这里发现了一个非常类似的未答复的问题:https://*.com/questions/40218848/access-azue-active-directory-extension-from-microsoft-graph。使用这个我可以得到我的扩展。 –