GCP Cloud Run服务间认证能否在Authorization头同时传递ID令牌与自定义JWT
Cloud Run 服务间认证双令牌传递方案解答
同一Authorization头传递双令牌的可行性
- HTTP 协议本身允许
Authorization头通过逗号分隔携带多个认证凭证,格式为Authorization: Bearer <Google_ID_TOKEN>, Bearer <自定义JWT> - 但Google Cloud Run 内置身份校验逻辑不支持该多凭证格式,会直接解析失败返回401未授权响应,因此该方案不可行。
官方支持的ID令牌替代传递方案
Google Cloud 原生提供X-Goog-Iap-Jwt-Assertion请求头作为Authorization头的替代选项,专门用于传递Google服务间认证的ID令牌,无需额外自定义请求头即可实现双令牌传递:
- 将原本放在
Authorization头的Google ID令牌,改为放到X-Goog-Iap-Jwt-Assertion头中,值直接填写ID令牌字符串,不需要加Bearer前缀 - 自定义JWT正常放在
Authorization: Bearer <自定义JWT>头中即可 - Cloud Run 的内置认证逻辑会自动识别
X-Goog-Iap-Jwt-Assertion头中的令牌完成身份校验,不会修改Authorization头的内容,不影响你自定义JWT的解析逻辑
内容的提问来源于stack exchange,提问作者pineappleattack
相关产品推荐
相关产品推荐

