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

如何通过Microsoft Graph直接查询Azure AD中分配给用户的企业应用列表

获取Azure AD指定用户分配的企业应用列表解决方案

是否有直接调用的API

目前Microsoft Graph没有单步直接返回关联企业应用(application对象)的接口,但可以通过扩展参数优化请求流程,将原有的三次请求合并为单次调用,不需要分步查询。

原流程说明(你当前使用的步骤逻辑正确,可优化)

你当前的三步调用逻辑是符合Graph接口设计的:

  1. 调用/users/{userId}/appRoleAssignments接口获取用户分配的所有服务主体关联关系
  2. 调用/servicePrincipals?$filter=id eq {servicePrincipalId1} or id eq {servicePrincipalId2}接口获取服务主体的appId等属性
  3. 调用/applications?$filter=appId eq '{appId1}' or appId eq '{appId2}'接口获取最终的企业应用详情

该流程的问题在于请求次数多,当用户分配的应用数量较多时,filter参数拼接的id过多会触发URL长度限制,调用效率低。

优化后的调用方案

通过Graph的$expand导航属性扩展,可以直接在单次请求中拿到所有需要的企业应用信息:

GET https://graph.microsoft.com/v1.0/users/{userId}/appRoleAssignments?$expand=resource($expand=application;$select=id,appId,displayName)

返回结果说明

  • 外层appRoleAssignments为用户的所有应用分配记录
  • resource字段对应分配的服务主体对象,包含服务主体的id、appId、显示名
  • resource/application字段即为你需要的企业应用(application对象)详情,为空的记录对应的是微软内置服务主体,可直接过滤掉

权限要求

调用该接口需要持有以下任意一种Graph权限:

  • 委托权限:Application.Read.All、Directory.Read.All
  • 应用权限:Application.Read.All、Directory.Read.All

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:39:02