Google Cloud Run 屏蔽授权标头中的承载令牌

And*_*ume 2 google-cloud-platform google-cloud-run

Cloud Run 的 Google 文档指出,您可以“从授权标头中提取令牌”(此处的文档),以便验证它并获取有关请求用户的更多信息。

然而,在Authorization处理请求时读取标头时,似乎令牌的部分内容在通过 Google 的身份验证前端后已被编辑。例如

Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6ImY2ZjgwZjM3ZjIxYzIz.SIGNATURE_REMOVED_BY_GOOGLE
Run Code Online (Sandbox Code Playgroud)

这是 Cloud Run 中的错误还是我们需要执行其他操作才能获取完整的 Bearer 令牌?

Joh*_*ley 7

以下是 Cloud Run 中看到的授权标头和 SIGNATURE_REMOVED_BY_GOOGLE 的详细信息:

  1. 如果allUsers启用,JWS 签名将通过并且不会被替换。
  2. 如果allUsers未启用且 OIDC 令牌来自 Google 帐户 (gmail),则签名将被替换。
  3. 如果allUsers未启用且 OIDC 令牌来自服务帐户,则不会替换签名。

[2021 年 3 月 8 日更新]

Google 编辑身份令牌签名的原因是为了防止身份令牌重复使用。有效的身份令牌将允许该服务使用另一个服务冒充用户/帐户,这是存在安全风险的。

  • 就我而言,服务帐户令牌的签名也被替换 (2认同)