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

在Azure AD中为服务主体分配应用角色时,如何获取ResourceId?

问题解答:Graph API授予Azure AD应用API权限时的ResourceId获取方式

核心结论

ResourceId 是你要授予权限的目标API对应的服务主体(Service Principal)ID,这个值确实会因租户而异——因为每个租户中,目标API的服务主体是独立创建的。

获取ResourceId的几种方法

1. Azure门户直接查看

  • 进入Azure AD的「企业应用」页面
  • 搜索你要授予权限的目标API的名称(注意是API的应用名称,不是你的客户端应用)
  • 进入该企业应用的详情页,从「概述」标签中复制「对象ID」,这个就是ResourceId

2. 使用Graph API查询

可以通过目标API的应用ID(Client ID)来查询对应的服务主体ID:

// 查询目标API的服务主体
var servicePrincipals = await graphClient.ServicePrincipals
    .Request()
    .Filter($"appId eq '{目标API的ClientID}'")
    .GetAsync();

// 取第一个结果的ID作为ResourceId
var resourceId = servicePrincipals.First().Id;

3. 使用Azure CLI命令

az ad sp list --filter "appId eq '<目标API的ClientID>'" --query "[0].id" -o tsv

关于你提到的手动同意后获取的情况

当你手动授予管理员同意时,Azure会自动为目标API在当前租户中创建对应的服务主体(如果之前不存在),这时候你能通过查询应用角色分配拿到这个ID。但自动化流程中,你不需要先手动同意,直接通过上面的方法提前获取目标API的服务主体ID即可完成权限授予。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:45:35