You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Microsoft Graph获取对象的所有应用扩展?

获取Microsoft Graph对象的所有应用扩展

嘿,这个问题我刚好研究过!之前也纠结过怎么不用逐个写属性名就能拿到所有应用扩展,给你分享两种实用的方法,分场景来说:

1. 获取单个对象(如用户)的所有目标应用扩展

如果你只需要获取特定应用注册下的所有扩展属性,不用逐个指定扩展名称,可以在$select参数里使用通配符*来匹配该应用的所有扩展:

GET https://graph.microsoft.com/v1.0/users/{{OBJECT_ID}}?$select=extension_{{APP_ID_WITHOUT_GUIDS}}_*

关键注意点:

  • {{APP_ID_WITHOUT_GUIDS}}是去掉所有连字符的应用ID,比如原ID是a1b2c3d4-5678-90ef-ghij-klmnopqrstuv,要改成a1b2c3d4567890efghijklmnopqrstuv
  • 这个请求会返回该用户属于目标应用的所有扩展属性,不用手动列每个扩展名称,非常方便

如果你需要获取所有应用的扩展属性(不限于某个应用),可以用$select=*获取对象的全部属性,然后在客户端过滤出所有以extension_开头的属性:

GET https://graph.microsoft.com/v1.0/users/{{OBJECT_ID}}?$select=*

不过这种方式会返回大量默认属性,效率稍低,建议只在必要时使用。

2. 获取组成员的所有目标应用扩展

针对你提到的获取用户所属组成员的扩展属性场景,同样可以用通配符简化请求:

GET https://graph.microsoft.com/v1.0/users/{{OBJECT_ID}}/memberOf?$select=extension_{{APP_ID_WITHOUT_GUIDS}}_*

这个请求会返回该用户所有所属组的、属于目标应用的全部扩展属性,省去了逐个指定扩展名称的麻烦。

额外提示

  • 确保你的应用已被授予对应的权限,比如访问用户需要User.Read.All,访问组需要Group.Read.All等,具体权限取决于你操作的对象类型
  • 如果你用的是开放扩展(Open Extensions)而非目录扩展(Directory Extensions),则需要使用$expand=extensions来获取所有开放扩展,但这和你问题里提到的应用扩展不是同一类型哦

内容的提问来源于stack exchange,提问作者Justin Dearing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:29:56