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

关于Microsoft Graph API获取指定应用角色用户的技术咨询

解决方案

正确的API调用方法

你可以通过在appRoleAssignedTo接口中添加双重过滤条件,直接获取目标应用中分配了指定角色的用户,避免无关数据:

GET https://graph.microsoft.com/v1.0/servicePrincipals(appId='{ApplicationA的appId}')/appRoleAssignedTo?$filter=appRoleId eq '{目标角色的GUID}' and principalType eq 'User'

如果需要获取用户的完整属性(比如邮箱、姓名等),可以添加$expand=principal来关联用户详情:

GET https://graph.microsoft.com/v1.0/servicePrincipals(appId='{ApplicationA的appId}')/appRoleAssignedTo?$filter=appRoleId eq '{目标角色的GUID}' and principalType eq 'User'&$expand=principal

为什么之前的方法失效

  1. /users端点的过滤限制:Microsoft Graph不支持在/users接口中通过$expand=appRoleAssignments后,对appRoleAssignments的属性进行$filter,这是你收到Request_UnsupportedQuery错误的直接原因。
  2. 未正确使用appRoleAssignedTo的过滤:该接口本身支持OData过滤,你之前未添加appRoleId和principalType的过滤条件,才会返回大量无关条目。

权限要求

确保你的应用或账号拥有以下权限之一(根据身份验证类型选择):

  • 委派权限:Directory.Read.All、AppRoleAssignment.Read.All
  • 应用权限:Directory.Read.All、AppRoleAssignment.Read.All

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:42:54