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

如何从Azure Graph获取roleDefinitionId与roleDefinitionName详情?

通过Azure Graph(Microsoft Graph)获取服务主体的角色分配信息

要获取指定应用ID对应服务主体的角色分配(包含roleDefinitionId和roleDefinitionName),可以通过以下方式操作:

1. 先获取服务主体的对象ID(principalId)

应用ID(appId)和服务主体的对象ID(principalId)是不同标识,需先通过应用ID查询对应的principalId:

使用Microsoft Graph API

GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq 'AAAAAAAAAAAAAAAAAAA'&$select=id

使用Azure CLI

az ad sp show --id AAAAAAAAAAAAAAAAAAA --query id -o tsv

2. 查询包含角色定义信息的角色分配

拿到principalId后,通过Microsoft Graph的Azure RBAC角色分配端点查询,同时展开角色定义信息:

使用Microsoft Graph API

GET https://graph.microsoft.com/v1.0/roleManagement/azure/roleAssignments?$filter=principalId eq '{替换为步骤1得到的principalId}'&$expand=roleDefinition($select=id,displayName)

返回结果对应关系:

  • roleDefinition.id 即你需要的roleDefinitionId
  • roleDefinition.displayName 即你需要的roleDefinitionName

若需精简返回字段,可添加$select指定内容:

GET https://graph.microsoft.com/v1.0/roleManagement/azure/roleAssignments?$filter=principalId eq '{替换为步骤1得到的principalId}'&$select=id,principalId,scope&$expand=roleDefinition($select=id,displayName)

使用Azure CLI调用Graph API

PRINCIPAL_ID=$(az ad sp show --id AAAAAAAAAAAAAAAAAAA --query id -o tsv)
az rest --method get --uri "https://graph.microsoft.com/v1.0/roleManagement/azure/roleAssignments?\$filter=principalId eq '$PRINCIPAL_ID'&\$expand=roleDefinition(\$select=id,displayName)"

权限说明

执行以上查询需具备RoleManagement.Read.All或Directory.Read.All类权限,确保操作账号/应用拥有对应权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 21:12:42