【问题标题】:Google service account and sheets permissionsGoogle 服务帐号和工作表权限
【发布时间】: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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-19
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多