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

Azure Blob存储SAS URL访问出现AuthenticationFailed错误的问题咨询

Azure Blob存储SAS URL访问出现AuthenticationFailed错误的问题咨询

问题描述

我尝试通过Blob SAS URL列出容器中的PDF文件,请求地址如下:

GET https://testtestsitweu.blob.core.windows.net/publicfiles?sp=rl&st=2024-02-15T14:18:59Z&se=2025-02-15T22:18:59Z&spr=https&sv=2022-11-02&sr=c&sig=TxAaaaaaaaaaaaaaaaaaaaaagU%3D

虽然这个SAS已经包含了「读取(r)」和「列出(l)」权限,但还是收到了认证失败的错误:

return (<Error>
<Code>AuthenticationFailed</Code>
<Message>Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
RequestId:b5d14821-701e-0083-2939-6363a8000000
Time:2024-02-19T13:42:06.9875994Z</Message>
<AuthenticationErrorDetail>Signature did not match. String to sign used was rl
2024-02-15T14:18:59Z
2025-02-15T22:18:59Z
/blob/testtest/$root
https
2022-11-02
c
</AuthenticationErrorDetail>
</Error>
)

我有几个疑问:

  • 明明用了带权限的SAS,为什么还会要求Authorization头?
  • 我想在公开网页上托管静态内容(PDF、DOCX),是不是用错工具了?

问题分析与解决方案

核心原因:SAS签名与访问资源不匹配

从错误信息里的AuthenticationErrorDetail可以看到,Azure用来验证签名的字符串包含/blob/testtest/$root,但你实际访问的是publicfiles容器——这说明你生成的SAS是绑定到testtest容器或者$root根容器的,并不是publicfiles容器的SAS。SAS签名是和特定资源强绑定的,资源不匹配就会触发认证失败。

解答你的疑问

  1. 为什么要求Authorization头?
    正常情况下,正确的SAS URL本身已经包含了所有认证信息,不需要额外添加Authorization头。现在出现这个提示,本质是签名验证失败,系统认为你的请求没有合法授权,并不是真的需要你手动添加授权头。

  2. 工具选择是否正确?
    Azure Blob存储完全适合托管静态内容(PDF、DOCX、图片等),你没选错工具,只是权限配置或SAS生成时出了小问题。

具体解决步骤

方案1:重新生成正确的SAS URL
  1. 登录Azure门户,找到你的存储账户,进入publicfiles容器
  2. 点击「生成SAS」按钮,确保:
    • 权限勾选「读取(r)」和「列出(l)」
    • 有效期范围和你需要的一致
    • 生成的SAS URL路径是/publicfiles(确认URL里的容器名正确)
  3. 用新生成的SAS URL发起请求,应该能正常列出容器内的文件。
方案2:设置容器为公共访问(无需SAS)

如果你的目标是让所有人都能直接访问这些静态文件,不需要控制访问有效期,更简单的方式是设置容器的公共访问级别:

  1. 进入publicfiles容器的「概述」页面,点击「更改访问级别」
  2. 选择「Blob(匿名读取对容器中 blob 的读取权限)」,保存设置
  3. 之后就可以用类似https://testtestsitweu.blob.core.windows.net/publicfiles/你的文件.pdf的URL直接访问,不需要任何认证信息。

备注:内容来源于stack exchange,提问作者ilhan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 07:44:32