Cloud Run 403:某些用户的范围不足,而其他用户工作正常

问题描述 投票:0回答:1

我有一个 secured node.js 后端在 cloud run 上运行。我遇到的一个问题是一些用户面临来自“Google Frontend”服务器的 403 范围不足,客户端没有获取 URL 的权限。

这很奇怪,因为它并非所有用户都会发生。事实上,我的一个测试账户正面临这个问题,而我的实际账户则没有。为了获取 auth 标头,我使用 firebase+google identity 来获取 oidc 令牌。我比较了 2 个帐户之间的 oidc 令牌,一切似乎都相同,需要相同(除了电子邮件、子、哈希等)。 jwt 令牌的 iss、aud、azp、hd 部分都是相同的.

我不是 100% 了解服务帐户,所以我认为问题可能出在连接到云运行服务的服务帐户权限上,但对某些用户有效而对其他用户却不够用的事实对我来说很奇怪。

我看到这两个帐户之间的主要区别是 cookie:

工作账户:

GCP_IAAP_AUTH_TOKEN_F3BA....
__Host-GCP_IAP_AUTH_TOKEN_F3BA....
GCP_IAP_UID
_ga
_ga_K...
_ga_S...
_ga_F...
GCP_IAP_XSRF_NONCE_1vp....

403 被阻止请求帐户:

GCP_IAAP_AUTH_TOKEN_F3BA....
__Host-GCP_IAP_AUTH_TOKEN_F3BA....
GCP_IAP_UID
_ga
_ga_F...

如您所见,2 ga... cookie 丢失(不确定是什么),但更重要的是(我相信)GCP_IAP_XSRF_NONCE_ 丢失。为什么它丢失了我有 0 个想法,因为用户已成功通过 IAP。

更新 没关系,GCP_IAP_XSRF_NONCE_ 不是问题,某些用户帐户仍然得到 403。

firebase google-cloud-platform firebase-authentication authorization google-cloud-run
1个回答
0
投票

几天后弄明白了。事实证明,有些人在云运行中没有 run.invoker 角色,所以创建了一个我想访问的谷歌群组(内部应用程序)

© www.soinside.com 2019 - 2024. All rights reserved.