如何通过PowerShell/CLI/REST API获取服务主体的RBAC角色列表
获取服务主体的Azure RBAC角色分配列表
你需要的是查询服务主体在Azure资源上被分配的RBAC角色(而非MS Graph的应用角色分配),以下是几种现成的实现方式:
PowerShell
使用Get-AzRoleAssignment命令直接查询:
# 通过服务主体对象ID获取所有角色分配 Get-AzRoleAssignment -ObjectId "00063ffc-54e9-405d-b8f3-56124728e051" # 若知道服务主体名称,也可以用名称查询 Get-AzRoleAssignment -ServicePrincipalName "你的服务主体名称"
返回结果包含该服务主体所有Azure资源级别的角色分配,可根据需求筛选与user_impersonation相关的角色(例如角色名称含"User"的条目)。
Azure CLI
使用az role assignment list命令:
# 通过服务主体对象ID查询 az role assignment list --assignee "00063ffc-54e9-405d-b8f3-56124728e051" # 筛选包含用户访问相关的角色(示例) az role assignment list --assignee "00063ffc-54e9-405d-b8f3-56124728e051" --query "[?contains(roleDefinitionName, 'User')]"
REST API
调用Azure Resource Manager的角色分配查询API:
GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId eq '00063ffc-54e9-405d-b8f3-56124728e051'
请求需携带Azure AD生成的Bearer Token授权,返回结果中可通过roleDefinitionId关联到具体的角色名称与权限详情。
注:你之前使用的MS Graph
appRoleAssignedTo接口,是用于查询应用程序之间的角色分配(比如App A给App B分配的应用内角色),和Azure资源的RBAC角色分配不是同一范畴,因此不适用你的需求。
内容的提问来源于stack exchange,提问作者Arjun
相关产品推荐
相关产品推荐

