Postman获取Azure存储Blob报AuthenticationFailed错误排查
错误含义
报错核心信息Authentication scheme Bearer is not supported in this version的意思是:当前请求命中的Azure Blob存储服务版本不支持Bearer令牌认证方式。
Azure Blob存储从2017-11-09版本的REST API才开始支持Azure AD OAuth2 Bearer认证,你发起请求时没有携带x-ms-version请求头指定API版本,服务端默认使用早于2017-11-09的旧版本协议处理请求,旧版本仅支持共享密钥、共享访问签名这类传统认证方式,识别到你传的Bearer认证信息就直接抛出认证失败错误。
你之前获取token用的https://storage.azure.com/.default scope是正确的,问题和token获取环节无关。
修复步骤
- 前置权限校验:先确认你创建的Service Principal已经被授予目标存储容器/Blob的对应RBAC角色,至少需要分配
Storage Blob Data Reader角色(如果要做写操作就配置对应写权限角色),注意不要配成存储账户的管理平面角色(比如经典的Contributor、Reader角色),这类角色仅支持控制面操作,没有数据面读取Blob内容的权限。 - 给Postman的GET请求新增两个必填请求头:
Authorization:值为Bearer <你之前获取到的有效访问令牌>,注意Bearer字符串和令牌内容之间保留一个半角空格x-ms-version:值填2020-08-04(任意≥2017-11-09的稳定API版本都可以,推荐使用较新的正式GA版本)
- 重新发起GET请求即可正常获取Blob内容。
注意:不要把认证信息拼到URL参数里,也不要漏传
x-ms-version头,哪怕token是有效的,缺这个头依旧会触发你遇到的版本不支持错误。
内容的提问来源于stack exchange,提问作者Saimk_556
相关产品推荐
相关产品推荐

