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

如何通过Microsoft Graph无交互自动授予Azure应用管理员同意?

无交互自动化Microsoft Graph管理员同意方案

前提条件

  • 持有客户租户的全局管理员或应用程序管理员权限(或客户提供的对应权限服务主体)
  • 已完成应用注册并配置好目标应用权限(如Sites.Selected)

具体实现步骤

1. 获取租户管理员级访问令牌

通过服务主体凭证流(Client Credentials)获取具备权限的令牌,调用端点:

POST https://login.microsoftonline.com/{客户租户ID}/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&client_id={你的应用客户端ID}
&client_secret={你的应用客户端密钥}
&scope=https://graph.microsoft.com/.default

2. 直接创建应用权限的管理员同意

通过Microsoft Graph的appRoleAssignments端点,直接为应用分配目标权限,完成无交互同意:

POST https://graph.microsoft.com/v1.0/servicePrincipals/{你的应用服务主体ID}/appRoleAssignments
Content-Type: application/json

{
  "principalId": "{你的应用服务主体ID}",
  "resourceId": "{SharePoint服务主体ID}",
  "appRoleId": "{Sites.Selected权限ID}"
}

参数说明:

  • 你的应用服务主体ID:应用在客户租户中的服务主体ID,可通过GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '{你的应用客户端ID}'查询获取
  • SharePoint服务主体ID:固定值为00000003-0000-0ff1-ce00-000000000000
  • Sites.Selected权限ID:通过GET https://graph.microsoft.com/v1.0/servicePrincipals/{SharePoint服务主体ID}/appRoles查询,找到值为Sites.Selected的id字段

3. 验证同意状态

调用以下端点确认权限分配成功:

GET https://graph.microsoft.com/v1.0/servicePrincipals/{你的应用服务主体ID}/appRoleAssignments?$filter=resourceId eq '{SharePoint服务主体ID}'

关于待处理同意请求的说明

调用applications/{appid}端点无法看到待处理请求,是因为该端点仅展示用户手动发起的同意申请,而自动化管理员同意是通过直接分配权限完成,不会生成待处理请求记录。

批量客户处理注意事项

  • 针对每个客户租户重复上述流程,确保在对应租户环境中执行令牌获取与权限分配
  • 建议采用多租户应用配置,简化跨租户的服务主体创建与权限管理
  • 首次处理客户租户时,可通过GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '{你的应用客户端ID}'触发应用服务主体在客户租户中的自动创建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:52:23