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

如何使用Microsoft Graph获取目标应用的所有角色分配?

获取指定目标应用的所有App角色分配

你可以直接通过Microsoft Graph的appRoleAssignments集合接口,结合$filter参数过滤出目标应用的所有角色分配,无需遍历所有服务主体。核心是利用resourceId字段匹配目标应用的服务主体ID(注意:这里要用服务主体ID,而非应用注册的客户端ID;如果只有客户端ID,可先查询对应服务主体)。

直接查询目标应用的角色分配代码示例

using Azure.Identity;
using Microsoft.Graph;

var graphClient = new GraphServiceClient(new DefaultAzureCredential());

// 替换为目标应用的服务主体ID
string targetServicePrincipalId = "<target-app-service-principal-id>";

// 获取所有分配给该目标应用的角色分配
var assignments = await graphClient.AppRoleAssignments
    .GetAsync(requestConfiguration =>
    {
        requestConfiguration.QueryParameters.Filter = $"resourceId eq '{targetServicePrincipalId}'";
    });

若只有目标应用的客户端ID,先获取服务主体ID

// 通过客户端ID查询对应服务主体
var targetServicePrincipal = await graphClient.ServicePrincipals
    .GetAsync(requestConfiguration =>
    {
        requestConfiguration.QueryParameters.Filter = $"appId eq '<target-app-client-id>'";
        requestConfiguration.QueryParameters.Select = new[] { "id" };
    });

string targetServicePrincipalId = targetServicePrincipal.Value.FirstOrDefault()?.Id;

这种方式无需遍历所有服务主体,直接通过过滤条件精准获取目标应用的所有角色分配,效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:42:05