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

调用OneDrive for Business REST API上传文件时遇令牌签名无效错误

排查OneDrive for Business API的「Token contains invalid signature」错误

结合你描述的操作流程,我来帮你梳理几个最可能导致这个签名无效错误的原因,以及对应的排查和解决办法:

1. 租户端点或Token受众不匹配

你在获取Token时用了common端点(https://login.microsoftonline.com/common/oauth2/token),但调用API时用了<tenant>占位符的端点。这里有两个关键点要注意:

  • 如果你的应用是单租户应用(注册在特定租户下),获取Token时应该使用具体的租户ID或域名(比如https://login.microsoftonline.com/yourtenant.onmicrosoft.com/oauth2/token),而不是common——common是多租户应用的端点,可能导致生成的Token受众(aud字段)和你调用的API不匹配。
  • 调用OneDrive for Business API的正确端点推荐使用Microsoft Graph的标准路径:https://graph.microsoft.com/v1.0/me/drive/root:/Abc.txt:/content,而不是旧的租户内API路径。如果坚持用旧路径,要确保Token的aud字段和该端点的域名完全一致(可以用JWT解码工具查看Token内容)。

2. Token获取流程的参数错误

你在Postman调用token接口时,有没有确认以下参数完全正确?

  • grant_type必须设为authorization_code,不能填错。
  • redirect_uri必须和Azure门户应用注册里的完全一致,包括大小写、结尾的斜杠、HTTP/HTTPS协议,比如注册的是https://yourapp.com/callback,就不能用https://yourapp.com/Callback或省略斜杠。
  • 必须指定scope参数,比如scope=Files.ReadWrite offline_access——如果没有指定scope,生成的Token权限不足,或者受众不符合API要求,会直接导致签名验证失败。
  • 客户端密钥(client_secret)有没有复制错误?比如多了空格、少了字符,或者用了证书密钥而不是客户端密码。

3. 权限配置问题

你提到“授予所有权限”,但要注意:

  • 确保添加的是Microsoft Graph的权限(不是其他第三方API或旧版SharePoint API的权限),上传文件需要的核心权限是Files.ReadWrite(委托权限)或Files.ReadWrite.All(应用权限)。
  • 如果是应用权限(而非用户委托权限),必须点击“授予管理员同意”按钮,确保权限处于“已授予”状态(在Azure门户的应用注册→API权限页面可以查看)。

4. Azure应用程序的基础设置错误

  • 检查应用注册的“身份验证”页面:是否开启了正确的重定向URI类型?Web应用应该选择“Web”类型,而不是“SPA”或“移动和桌面应用”。
  • 如果是单租户应用,在“概述”页面的“受支持的账户类型”应该设为“仅此组织目录中的账户”,而不是“任何组织目录中的账户”,否则用common端点会导致Token生成异常。

快速排查步骤

  1. 用JWT解码工具打开你的访问令牌,查看aud(受众)、iss(颁发者)、scope(权限范围)三个字段:
    • aud必须和你调用的API端点域名一致(比如Graph API的aud是https://graph.microsoft.com)。
    • scope必须包含你需要的权限(比如Files.ReadWrite)。
  2. 重新在Postman中构造token请求,确保所有参数(尤其是scope、redirect_uri)完全符合要求,示例请求的form-data参数如下:
    grant_type: authorization_code
    client_id: <你的A_ID>
    client_secret: <你的客户端密钥>
    code: <获取到的授权code>
    redirect_uri: <和注册一致的重定向URI>
    scope: Files.ReadWrite offline_access
    
  3. 尝试改用Microsoft Graph的API端点上传文件,确认是否能正常请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:33:51