能否用Microsoft Graph API筛选指定应用角色的用户组成员?
解决方案
错误原因
你之前的查询报错是因为members默认返回directoryObject类型集合,而appRoleAssignments是microsoft.graph.user独有的属性,直接在未指定类型的members上引用该属性会导致解析失败。
正确查询语句
要实现需求,需在扩展子组成员时明确指定只处理user类型,并通过any操作符筛选出已分配目标App Role的用户:
https://graph.microsoft.com/v1.0/groups/{GroupA-ID}/members/microsoft.graph.group?$expand=members/microsoft.graph.user($select=id,displayName;$filter=appRoleAssignments/any(a:a/appRoleId eq '{AppRoleB-ID}'))&$select=id,displayName
关键说明
- 将
{GroupA-ID}替换为Group A的实际ID - 将
{AppRoleB-ID}替换为App Role B的唯一标识ID - 使用
members/microsoft.graph.user明确限定子组成员类型为用户,确保能访问appRoleAssignments属性 - 通过
appRoleAssignments/any(a:a/appRoleId eq '{AppRoleB-ID}')筛选出拥有指定App Role分配的用户
权限要求
需要至少以下Graph API权限之一(应用权限或委托权限):
Group.Read.AllUser.Read.All
内容的提问来源于stack exchange,提问作者XamlZealot
相关产品推荐
相关产品推荐

