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

如何为用户分配的托管标识分配Microsoft Graph API权限?

用户分配托管标识配置Microsoft Graph API权限的支持说明及解决方法

结论:完全支持

用户分配的托管标识本质是Azure AD中的服务主体,和系统分配的托管标识一样,可以正常配置Microsoft Graph的应用权限(注意:托管标识仅支持应用权限,不支持委派权限)。

为什么会出现权限不足?

即使是全局管理员账号,也可能因为以下原因报错:

  • 操作时未使用正确权限范围:管理服务主体的权限分配需要Application.ReadWrite.All权限,或对应管理员角色(云应用管理员/应用程序管理员),部分受限全局管理员账号可能被限制了该权限。
  • 操作步骤错误:比如误选了委派权限,或者未完成「授予管理员同意」的关键步骤。

正确操作步骤(以PowerShell为例)

参考Stack Overflow上的方案,整理成中文操作流程:

  1. 连接Microsoft Graph,需申请足够权限:
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.Read.All"
  1. 获取用户分配托管标识的服务主体信息:
# 替换为你的托管标识显示名称
$msi = Get-MgServicePrincipal -Filter "displayName eq '你的托管标识名称'"
  1. 获取Microsoft Graph的服务主体(固定AppID,无需修改):
$graphSP = Get-MgServicePrincipal -Filter "appId eq '00000003-0000-0000-c000-000000000000'"
  1. 定位要分配的应用权限ID,以User.Read.All为例:
# 替换为你需要的权限值,确保筛选的是应用权限
$permission = $graphSP.AppRoles | Where-Object { $_.Value -eq "User.Read.All" -and $_.AllowedMemberTypes -contains "Application" }
  1. 执行权限分配:
New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $msi.Id -PrincipalId $msi.Id -ResourceId $graphSP.Id -AppRoleId $permission.Id

门户操作步骤

如果习惯用Azure Portal:

  • 进入「Azure Active Directory」→「企业应用程序」
  • 搜索并找到你的用户分配托管标识
  • 进入「权限」→「添加权限」→ 选择「Microsoft Graph」
  • 选择「应用权限」,勾选需要的权限后点击「添加权限」
  • 最后点击「授予管理员同意」(必须完成这一步,权限才会生效)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:22:21