通过 GCP API 网关时 JWT 令牌发生变化

JWT token changes when passing through the GCP API gateway

我正在 api header 中发送 JWT 令牌。我将其设计为通过 GCP api 网关并命中 cloudrun 服务。但是当通过 api 网关时,整个 JWT 令牌每次都会改变。在没有api网关的情况下直接调用cloudrun是没有效果的。对此有什么想法吗?

您有多个用例

  • 如果您认为您的云 运行 需要身份验证,但访问 API 网关不需要,API 网关能够生成身份令牌,基于在其配置中的服务帐户上,并将其添加到转发到 Cloud 运行
  • 的请求中
  • 如果您认为您的云 运行 需要身份验证并且您希望使用 API 网关作为身份验证代理(例如,所有请求 API 网关的用户必须由 API 网关授权(通过 API 密钥,通过 FirebaseAuth,通过 JWT 令牌,...),但用户未直接在 Cloud 运行 服务上获得授权,API 网关能够根据其配置中的服务帐户生成身份令牌,并将其添加到转发到云的请求中 运行
  • 如果您认为您的云 运行 需要身份验证并且 API 网关只是一个集中 API 定义的通道,您可以在 x-google-backend定义,parameter disable_auth to true。届时,API 网关将不会生成身份令牌,也不会将其添加到转发的请求中。条目中收到的身份令牌被转发到 Cloud 运行(它必须是 Cloud 运行 的有效令牌)

注:API网关生成身份令牌时,初始授权令牌为forwarded in a new header: X-Apigateway-Api-Userinfo