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

JWT返回Authentication Required认证错误的原因是什么?

JWT认证失败的可能原因
  • aud(受众)参数不匹配
    你当前生成JWT时固定填写的aud值为storage.googleapis.com,该值仅适配Google Cloud Storage的接口校验。当你调用其他Google服务接口时,必须将aud替换为目标服务对应的官方受众地址,与接口要求完全一致才能通过校验。这是最常见的自签名JWT仅能用于GCS、其他服务报错的原因。
  • 有效期超出规范限制
    你的代码中将JWT有效期设置为365天,违反了Google OAuth2的官方要求:自签名JWT的有效时长最长不得超过1小时(即exp - iat ≤ 3600)。部分服务(如GCS)未严格执行该校验规则,但其他绝大多数Google服务会直接拒绝有效期超长的JWT。
  • 缺失权限scope声明
    你当前的JWT payload未携带scope字段,GCS请求可以默认继承服务账号的存储权限,但大部分Google API要求自签名JWT中显式声明对应接口的访问scope,未声明对应权限会直接返回认证失败。
  • sub字段配置错误
    如果当前请求需要模拟普通用户身份执行操作,sub字段需填写待模拟的用户邮箱,而非服务账号邮箱。仅当你直接使用服务账号自身身份发起请求时,sub才可与iss一致填写服务账号邮箱。
  • 请求头格式错误
    检查请求的Authorization头是否存在格式问题:需使用英文引号包裹头值,Bearer与JWT字符串之间有且仅有一个空格,JWT前后无多余换行、特殊字符。
  • 密钥状态异常
    确认你使用的服务账号私钥未被删除、禁用或过期,且JWT头中携带的kid值与你使用的密钥对ID完全匹配。

由于你使用换取到的access_token可以正常发起相同请求,优先排查前三项问题,尤其是aud参数和有效期配置,这两项是自签名JWT与access_token认证逻辑差异最大的部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:24:07