【发布时间】:2018-04-15 01:17:32
【问题描述】:
我有一个 Java 后端(spring + google-oauth-client),它应该能够访问 Google.sheets 并从那里解析一些数据。
首先,我在本地后端部署中实施了常规的“3-legged”OAuth 2.0 身份验证,它运行良好,但由于后端将在没有任何浏览器等的情况下部署在云中,这不是最佳选择。
所以我决定使用服务帐户 OAuth 流程:创建 google 服务帐户并重构我的代码以使用它而不是 AuthCodeFlow,但我看到 403 Forbidden “调用者没有权限”。 据我了解,服务帐户不是谷歌的“我”,所以我必须让它访问“我的”帐户上的该表,但由于我公司的政策,我不能这样做,该政策禁止与某人共享文件我们的域,并且由于服务帐户具有@myprject.iam.gserviceaccount.com 域,我无法访问它。
也许有一种解决方法,因为此服务帐户是从我的帐户创建的,该帐户具有对该工作表的所有者访问权限? 如果不是,那么在这种情况下(无需用户参与),服务器到服务器 OAuth 的最佳方法是什么?
附言我可以尝试与我的帮助台沟通并询问他们是否可以将此 gserviceaccount.com 添加到白名单等,但这需要相当长的时间,而且结果也无法保证..
谢谢!
【问题讨论】:
-
尝试我发布的解决方案here
标签: oauth-2.0 google-api google-oauth google-api-client service-accounts