You need to enable JavaScript to run this app. Azure Graph如何通过PrincipalId(ObjectId)查询对应主体类型
优惠活动
大模型
产品
解决方案
定价
更多

Azure Graph如何通过PrincipalId(ObjectId)查询对应主体类型

Azure Graph 按ObjectId查询主体类型的解决方案

有两种成熟的实现方式可以直接通过ObjectId匹配对应的主体类型,无需预先判断调用端点:

1. 单ID查询方案

调用微软Graph的directoryObjects通用端点,直接传入目标ObjectId即可:

  • 请求地址:GET https://graph.microsoft.com/v1.0/directoryObjects/{你的ObjectId}
  • 返回结果中会携带@odata.type字段,可直接识别主体类型:
    • 值为#microsoft.graph.user对应普通用户
    • 值为#microsoft.graph.group对应安全组/Office 365组
    • 值为#microsoft.graph.application对应应用程序
  • 若仅需要获取类型无需其他信息,可以添加$select参数减少请求开销:
    GET https://graph.microsoft.com/v1.0/directoryObjects/{你的ObjectId}?$select=id,@odata.type

2. 批量ID查询方案

如果需要一次性查询多个ID的类型,可以调用getByIds方法,单次最多支持查询1000个ObjectId:

  • 请求地址:POST https://graph.microsoft.com/v1.0/directoryObjects/getByIds
  • 请求头需要指定Content-Type: application/json
  • 请求体示例:
{
  "ids": ["ObjectId1", "ObjectId2", "ObjectId3"],
  "types": []
}

其中types字段留空即可返回所有匹配的目录对象,返回结果的每个条目同样会携带@odata.type字段标识主体类型。


权限说明

调用上述接口需要至少持有Directory.Read.All应用权限或委托权限,否则会返回403无权限错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 09:15:04