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

使用On-Behalf-Of流调用MS Graph计量API时遇402错误求助

问题描述

我们正在调用需要启用计量的MS Graph API端点(例如assignSensitivityLabel),已按照文档创建了Microsoft.GraphServices/accounts资源。使用客户端凭据流调用时一切正常,但使用On-Behalf-Of(OBO)流时返回402 Payment Required错误。

两种流中,均传入应用ID作为client_id,并将范围设置为https://graph.microsoft.com/.default。

应用令牌声明:

{
  "aud": "https://graph.microsoft.com/.default",
  "iss": "https://sts.windows.net/{tenantId}/",
  "idp": "https://sts.windows.net/{tenantId}/",
  "appid": "{applicationId}",
  "idtyp": "app",
  "roles": [
    "Sites.Selected",
    "Sites.ReadWrite.All",
    "Mail.Send"
  ],
  "tid": "{tenandId}"
}

用户令牌声明:

{
  "aud": "https://graph.microsoft.com/.default",
  "iss": "https://sts.windows.net/{tenantId}/",
  "idp": "https://sts.windows.net/{tenantId}/",
  "appid": "{applicationId}",
  "idtyp": "user",
  "scp": "Group.Read.All Sites.ReadWrite.All Sites.Selected User.Read User.Read.All profile openid email",
  "tid": "{tenandId}"
}

OBO流调用assignSensitivityLabel时的错误响应:

{
  "error": {
    "code": "paymentRequired",
    "message": "Payment Required. Ensure that your application is able to call this premium API.For details see https://aka.ms/graph-metered-overview"
  }
}

注:通过OBO流获取SharePoint API专用用户JWT,调用https://{tenantId}.sharepoint.com/_api/v2.1/drives/{driveId}/items/{itemId}/setSensitivityLabel时无错误。

解决方案

针对OBO流调用计量Graph API返回402的问题,可按以下步骤排查和解决:

  • 确认委托权限配置:检查应用已添加assignSensitivityLabel所需的委托权限(如Sites.ReadWrite.All或Files.ReadWrite.All),且租户管理员已完成权限同意。虽然用户令牌中已有Sites.ReadWrite.All,但需确保权限同意流程已正确完成,且权限范围覆盖目标API。
  • 修正OBO令牌请求参数:在OBO交换令牌时,将resource参数明确设置为https://graph.microsoft.com,而非带.default的格式;同时确保scope参数使用https://graph.microsoft.com/.default,保证请求的资源与计量配置匹配。
  • 验证计量资源的用户上下文支持:检查Microsoft.GraphServices/accounts资源的配置,确认其允许应用在用户上下文(OBO流)下调用计量API。部分计量配置默认仅支持应用上下文(客户端凭据),需调整配置以启用用户上下文场景。
  • 检查OBO令牌的azp声明:确认OBO获取的用户令牌中azp(授权方)字段与配置了计量资源的应用ID一致。若azp为其他应用ID,说明OBO流程中存在中间代理应用,需调整流程直接从用户令牌交换到Graph的令牌。
  • 确认租户计量状态:验证租户已启用目标计量API,且Microsoft.GraphServices/accounts资源已正确关联到租户,无配置错误(如资源名称、应用ID绑定错误)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 12:40:21