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

能否为用户分配的托管标识分配API权限?

用户分配型托管标识的API权限配置与令牌获取

一、能否分配API权限?

完全可以。用户分配型托管标识属于Azure AD中的特殊服务主体,支持像普通应用注册一样分配API权限,包括Microsoft Graph API及自定义API的权限,常用场景为应用权限分配。

二、配置步骤

1. 分配Microsoft Graph API权限

  • 进入Azure门户,找到目标用户分配型托管标识
  • 切换至API权限选项卡,点击添加权限
  • 选择Microsoft Graph,按需勾选应用权限(托管标识无用户上下文,优先使用应用权限),例如User.Read.All、Mail.Send等
  • 添加权限后,需由全局管理员或权限管理员完成授予管理员同意(应用权限必须经同意才可生效)

2. 分配自定义API权限

  • 确保自定义API已在Azure AD完成应用注册,并完成公开API配置、定义好所需权限
  • 返回托管标识的API权限页面,点击添加权限
  • 选择我的API,找到你的自定义API应用注册
  • 勾选对应权限类型(推荐应用权限),添加后完成管理员同意(应用权限需此步骤)

三、获取访问令牌调用API

1. 通过Azure实例元数据服务(IMDS)获取(Azure资源上的托管标识适用)

发送HTTP请求:

GET http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://graph.microsoft.com
HTTP/1.1
Metadata: true

将resource参数替换为自定义API的应用ID URI(如api://your-custom-api-client-id),即可获取对应API的访问令牌。

2. 使用Azure CLI获取(测试场景适用)

执行命令:

az account get-access-token --resource https://graph.microsoft.com --identity --username /subscriptions/{订阅ID}/resourceGroups/{资源组名}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{托管标识名}

替换resource为目标API的标识符即可。

四、关键注意事项

  • 托管标识仅支持应用权限的管理员同意,不支持用户同意流程
  • 委派权限依赖用户上下文,托管标识无法直接使用(特殊场景可通过On-Behalf-Of流程,但适用范围有限)
  • 自定义API需正确配置应用注册的权限定义与暴露规则,否则无法被托管标识识别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 05:20:32