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

调用Microsoft.Capacity API获取预留订单时遇PassthroughTokenValidationFailed错误

问题分析与解决:PassthroughTokenValidationFailed 错误

错误场景

在Azure门户沙箱中尝试为拥有Azure计划和预留实例订阅的测试客户列出预留订单,调用API:

GET https://management.azure.com/providers/Microsoft.Capacity/reservationOrders?api-version={{api_version}}

已完成应用授权,能成功获取身份令牌,但收到错误:

{
"error": {
"code": "PassthroughTokenValidationFailed",
"message": "Token validation failed. A passthrough token was detected without proper resource provider context - request correlation identifier 'correlation id'"
}
}

错误原因

该错误核心是令牌缺少目标客户的资源提供者上下文,常见于CSP(云解决方案提供商)合作伙伴代理客户操作的场景。即使直接获取客户AD令牌,若未遵循CSP特定的令牌获取流程,也会导致令牌无法被资源提供者识别。

解决办法

  • 确保令牌的资源/受众正确
    获取令牌时,v1端点需指定resource=https://management.azure.com/,v2端点需指定scope=https://management.azure.com/.default。错误的资源值会导致令牌无法关联到Azure管理API的资源上下文。

  • 使用CSP代表客户(OBO)流程获取令牌
    作为CSP合作伙伴,需通过OBO流程获取代理客户的操作令牌:

    1. 先获取合作伙伴自身应用的令牌(目标资源为https://management.azure.com/)
    2. 调用OBO端点,传入该令牌、客户租户ID,获取代表客户的操作令牌
      此流程会自动注入x-ms-authorization-auxiliary等CSP必需声明,确保令牌具备客户上下文。
  • 验证令牌声明
    用jwt.ms解码令牌,检查是否包含x-ms-authorization-auxiliary声明(包含客户租户信息)。若缺少该声明,说明令牌获取流程不符合CSP代理要求。

  • 确认客户订阅的资源提供者已注册
    在客户的订阅中,确保Microsoft.Capacity资源提供者已注册。可通过以下API检查:

    GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Capacity?api-version=2021-04-01
    

    若状态为NotRegistered,需先调用注册API:

    POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Capacity/register?api-version=2021-04-01
    
  • 检查应用权限配置
    确保应用已被授予Microsoft.Capacity/reservationOrders/read权限(应用权限或委派权限),且完成管理员同意(针对委派权限)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 12:55:12