如何通过Microsoft Graph API查询应用AppRole的已分配应用列表?
获取已分配目标应用AppRole的所有应用列表(Microsoft Graph API实现)
核心思路
通过查询所有应用的requiredResourceAccess属性,筛选出同时满足以下条件的应用:
- 资源访问配置中包含你的目标应用(通过
resourceAppId匹配你的应用ID) - 该资源访问下的
resourceAccess列表包含任一你指定的AppRole ID
具体API调用
使用GET /v1.0/applications端点,配合$filter筛选条件实现:
GET https://graph.microsoft.com/v1.0/applications?$filter=requiredResourceAccess/any(rra: rra/resourceAppId eq '{你的应用appId}' and rra/resourceAccess/any(ra: ra/id in ('{AppRoleID1}','{AppRoleID2}','{AppRoleIDn}')))&$select=displayName,appId,requiredResourceAccess
参数说明
{你的应用appId}:替换为你负责的应用的Client ID(appId){AppRoleID1}、{AppRoleID2}...:替换为你已知的所有AppRole ID,用逗号分隔$select:可选参数,指定返回的应用属性,可按需调整(比如仅需名称和ID可写displayName,appId)
权限要求
需具备以下任一权限(根据调用方式选择应用权限或委托权限):
Application.Read.AllDirectory.Read.All
结果说明
返回的响应会包含所有符合条件的应用条目,你可以从每个条目的requiredResourceAccess中找到目标应用对应的配置,查看该应用具体分配了哪些AppRole。
内容的提问来源于stack exchange,提问作者ben f.
相关产品推荐
相关产品推荐

