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

如何通过Azure AD API获取所有唯一权限并分配给服务主体?

关于Azure AD权限API的两个问题解答

1. 获取Azure AD中的所有唯一权限

没有直接返回“所有权限”的单一API端点,因为权限是**隶属于各个资源应用(即提供权限的服务主体)**的,比如Microsoft Graph、Azure Storage等各自有自己的权限集合。你可以通过以下方式收集全量权限:

  • 首先获取所有资源类型的服务主体(过滤掉客户端类型的服务主体):
    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=servicePrincipalType eq 'Application' or servicePrincipalType eq 'ManagedIdentity'
    
  • 对每个服务主体,分别获取其委派权限(oauth2PermissionScopes)和应用权限(appRoles):
    # 获取委派权限
    GET https://graph.microsoft.com/v1.0/servicePrincipals/{resourceServicePrincipalId}/oauth2PermissionScopes
    
    # 获取应用权限
    GET https://graph.microsoft.com/v1.0/servicePrincipals/{resourceServicePrincipalId}/appRoles
    

收集这些结果后去重,就能得到所有唯一权限的声明值。

2. 给服务主体分配权限

根据权限类型(应用权限/委派权限),有对应的Microsoft Graph API:

应用权限(App Roles)分配

使用appRoleAssignments端点,将资源应用的角色分配给目标服务主体:

POST https://graph.microsoft.com/v1.0/servicePrincipals/{targetServicePrincipalId}/appRoleAssignments
Content-Type: application/json

{
  "principalId": "{targetServicePrincipalId}",
  "resourceId": "{resourceServicePrincipalId}",
  "appRoleId": "{appRoleIdFromResource}"
}
  • principalId:要分配权限的服务主体ID
  • resourceId:提供该权限的资源服务主体ID
  • appRoleId:目标权限的ID(从资源服务主体的appRoles中获取)

委派权限(OAuth2 Permission Scopes)分配

使用oauth2PermissionGrants端点,为服务主体分配委派权限(需管理员同意):

POST https://graph.microsoft.com/v1.0/oauth2PermissionGrants
Content-Type: application/json

{
  "clientId": "{targetServicePrincipalId}",
  "consentType": "AllPrincipals",
  "resourceId": "{resourceServicePrincipalId}",
  "scope": "User.Read Mail.Send" # 多个权限用空格分隔
}

或者使用新版端点(推荐):

POST https://graph.microsoft.com/v1.0/servicePrincipals/{targetServicePrincipalId}/oauth2PermissionGrants
Content-Type: application/json

{
  "resourceId": "{resourceServicePrincipalId}",
  "scope": "User.Read Mail.Send"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:50:08