Google服务帐户和工作表权限

2024-01-05

我有一个 Java 后端(spring + google-oauth-client),它应该能够访问 Google.sheets 并从那里解析一些数据。

首先,我在本地后端部署上实现了常规的“三足”OAuth 2.0 身份验证,它工作正常,但由于后端将部署在云中而无需任何浏览器等,因此这不是最佳选择。

所以我决定使用服务帐户OAuth流程:创建谷歌服务帐户并重构我的代码以使用它而不是AuthCodeFlow,但我看到403 Forbidden“调用者没有权限”。 据我所知,服务帐户不是谷歌的“我”,所以我必须让它访问“我的”帐户上的该工作表,但我不能这样做,因为我公司的政策禁止与他人共享文档我们的域,并且由于服务帐户具有 @myprject.iam.gserviceaccount.com 域,我无法授予对其的访问权限。

也许有一种方法可以解决这个问题,因为该服务帐户是从我的帐户创建的,该帐户拥有该工作表的所有者访问权限? 如果不是,在这种情况下(无需用户参与)服务器到服务器 OAuth 的最佳方法是什么?

附注我可以尝试与我的服务台联系,询问他们是否可以将此 gserviceaccount.com 添加到白名单等,但这将花费相当多的时间,而且结果也不能保证。

Thanks!


服务帐户访问工作表的唯一方法是您与服务帐户电子邮件地址共享工作表。您无法更改 Google 设置的服务帐户电子邮件地址。

您可以将表格设置为公开,然后就可以阅读它,但我有一种感觉,您的公司也不会喜欢这个想法。

我建议您返回到 oauth2 选项并在您的计算机上对其进行身份验证,并将刷新令牌复制到云服务器,然后它应该能够使用它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google服务帐户和工作表权限 的相关文章

随机推荐