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

使用MIP SDK通过托管身份获取AIP解密令牌遇权限拒绝问题求助

解决MIP SDK托管身份获取AIP令牌的权限配置问题

关键配置步骤

1. 给托管身份分配AIP权限

  • 直接给目标托管身份(系统/用户分配)添加Azure Rights Management Service的应用权限,选择Content.DelegatedReader(解密用)或Content.DelegatedWriter,必须完成全局管理员同意。
  • 注意:不要给Azure AD应用加权限,托管身份是独立的AD身份,直接在其权限面板配置。

2. 修正联合凭据配置

  • 联合凭据场景设为ManagedIdentity,同时:
    • 受众(Audience)必须设为https://api.aadrm.com(AIP服务的资源ID)
    • 令牌颁发者(Issuer)格式为https://sts.windows.net/{你的租户ID}/,要和托管身份的租户一致

3. 调整MIP SDK的令牌获取逻辑

  • 获取令牌时指定资源为https://api.aadrm.com,示例C#代码:
// 托管身份令牌提供者,指定AIP资源
var tokenProvider = new ManagedIdentityTokenProvider("https://api.aadrm.com");
var appInfo = new ApplicationInfo("你的应用ID", "你的租户ID", "你的应用名称");
var mipContext = MIP.CreateApplication(appInfo, tokenProvider, new ApplicationSettings());
  • 确保运行环境已启用托管身份(比如Azure App Service/VM/Function中已开启对应身份)

4. 验证令牌有效性

  • 用Azure CLI获取托管身份的AIP令牌:
az account get-access-token --resource https://api.aadrm.com --identity
  • 解析令牌(可本地用jwt.ms),检查:
    • aud字段是否为https://api.aadrm.com
    • roles字段是否包含分配的AIP权限
    • iss是否匹配租户STS端点

常见问题修复

  • 若令牌无AIP权限角色:检查权限是否分配给托管身份,且已完成管理员同意
  • 本地开发时:需用Azure CLI登录并指定托管身份(用户分配身份需加--identity {身份ID})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:33:15