GCP Cloud Run上Django应用IAP认证报错:JWT受众不匹配
解决IAP程序化认证中JWT Audience不匹配的问题
这个错误的核心原因是你本地生成的JWT令牌里的aud(受众)声明,和你的Cloud Run服务关联的IAP客户端ID不一致。IAP会严格校验这个字段,必须完全匹配才能通过验证。
修复步骤:
确认正确的IAP客户端ID
打开GCP控制台,找到你的Cloud Run服务,进入「安全」标签页,在IAP配置区域复制对应的客户端ID(就是错误提示里的yyyyyyyy.apps.googleusercontent.com)。重新生成带正确
aud的令牌
如果用gcloud命令生成令牌,必须指定正确的--target-audience参数:gcloud auth print-identity-token --audiences=yyyyyyyy.apps.googleusercontent.com如果是手动构造JWT,务必确保payload中的
aud字段值和上面复制的客户端ID完全一致,注意不要有大小写、字符拼写错误。验证令牌有效性
用JWT解码工具(比如本地的jwt-cli)解码新生成的令牌,确认aud字段确实是预期的客户端ID,再用该令牌请求你的Cloud Run服务,应该就能得到预期的JSON响应了。
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

