firebase 第403章:意外某些用户的范围不足,而其他用户工作正常

yrdbyhpb  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(126)

我有一个安全的node.js后端运行在云运行。我一直有一个问题是,一些用户面临403不足的范围从“谷歌前端”服务器,客户端没有权限获得URL。
这很奇怪,因为并非所有用户都遇到这种情况。事实上,我的一个测试账户面临这个问题,而我的实际账户却没有。为了获得auth头,我使用firebase+google identity来获得oidc令牌。我比较了两个账户之间的oidc令牌,一切似乎都是一样的,这需要是一样的(除电子邮件、sub、hash等之外)。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_丢失。由于用户成功通过IAP,因此我不知道为什么丢失。

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

kadbb459

kadbb4591#

几天后我想明白了,原来有些人在cloud run中没有run.invoker角色,所以我创建了一个我想访问的google群组(内部应用程序)

相关问题