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

使用SAS令牌调用Azure Copy Blob REST API报AuthenticationFailed错误

Azure Copy Blob API调用AuthenticationFailed错误排查

问题现象

调用Azure Copy Blob API发起请求时返回AuthenticationFailed错误,服务端返回提示:

Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
RequestId: aa820193-601e-0037-5959-7f7a5b000000

原始请求配置

  • 请求方法:PUT
  • 请求地址:https://accountname.blob.core.windows.net/containername/SAMPLE_FILE.CSV
  • 请求头配置项:
    • Authorization: SHARED ACCESS SIGNATURE:?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2023-05-30T06:52:46Z&st=2022-05-31T22:52:46Z&spr=https,http&sig=lP1fdHkWabckHlMFOrUsAWyVu6zxxJwNX4l%2B6a0WAmE%3D
    • x-ms-version: 2015-04-05
    • x-ms-copy-source: https://accountname.blob.core.windows.net/containername/SAMPLE_FILE.CSV
    • x-ms-date: 2022-06-13T18:51:28.5001104Z

排查到的配置问题及修复方法

  • Authorization头格式错误
    使用SAS令牌做鉴权时,Authorization头不需要拼接SHARED ACCESS SIGNATURE:前缀,也不能保留SAS串开头的?字符。当前配置多了这两处无效内容,直接删除即可修正格式问题;更稳妥的鉴权方式是直接把完整SAS串(带开头的?)拼接在请求URL末尾,不需要单独设置Authorization头,能规避绝大多数格式类鉴权错误。
  • x-ms-copy-source配置无效
    Copy Blob接口的x-ms-copy-source头需要填写源端Blob的可访问地址,当前配置的源地址和目标请求URL完全一致,属于将Blob复制到自身的非法操作。如果源Blob未配置匿名公开访问,还需要给源Blob地址拼接具备读权限的有效SAS令牌,否则源端鉴权不通过也会导致请求失败。
  • x-ms-date格式与API版本不兼容
    当前配置的x-ms-version为2015-04-05,该版本要求x-ms-date必须使用RFC 1123格式,标准格式示例为Mon, 13 Jun 2022 18:51:28 GMT,传入的ISO 8601格式时间戳不符合旧版API的格式要求,会直接导致签名校验失败。如果需要使用ISO 8601格式的时间戳,将x-ms-version升级到2016-05-31及以上版本即可。
  • SAS时间偏差校验问题
    当前配置的SAS生效起始时间为2022-05-31T22:52:46Z,如果发起请求的本地设备时间与Azure服务端时间偏差超过15分钟,会直接触发鉴权失败。建议发起请求前同步本地时钟,或生成SAS时将生效起始时间往前调整5-10分钟预留时间差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 17:09:30