将 Google 云端硬盘文档访问的服务帐户列入白名单

Jos*_*osh 6 google-api google-drive-api

我有一个通过 Google 开发者控制台创建的服务帐户,专门用于 API 访问 Google Drive 以检索文档。然而,最近我更改了我的 G-suite Google Drive 设置,设置了安全限制,即文档只能在我的组织外部共享到白名单域,而不是完全开放用于共享目的。

在此安全设置更改之前,一切工作正常,我的服务帐户访问已被专门授予访问权限的文档。但是,在查看以前有权访问的文件的共享设置后,现在显示无法授予该帐户访问权限,因为策略集禁止向该用户共享项目,因为该用户不在兼容的白名单域中。

我确实尝试在我的 G-suite 管理控制台中将 gserviceaccount.com 列入白名单,但这仍然没有带来好运。

还有其他人有类似的问题吗?有什么好的解决办法吗?

谢谢!

Tey*_*yam 5

您可能需要完成将域范围权限委派给服务帐户中给出的以下步骤:

\n
    \n
  1. 转到您的 G Suite 域\xe2\x80\x99s管理控制台
  2. \n
  3. 从控件列表中选择安全性。如果您没有看到列出的安全性,请从页面底部的灰色栏中选择更多控件,然后从控件列表中选择安全性。如果您看不到控件,请确保您以域管理员身份登录。
  4. \n
  5. 从选项列表中选择显示更多,然后选择高级设置。
  6. \n
  7. “身份验证”部分中选择“管理 API 客户端访问”
  8. \n
  9. “客户端名称”字段中输入服务帐户的“客户端 ID”您可以在服务帐户页面中找到您的服务帐户的客户端 ID 。
  10. \n
  11. “一个或多个 API 范围”字段中,输入应授予您的应用程序访问权限的范围列表。例如,如果您的应用程序需要在域范围内访问 Google Drive API 和 Google Calendar API,请输入:https://www.googleapis.com/auth/drive, https://www.googleapis.com/auth/calendar
  12. \n
  13. 单击“授权”
  14. \n
\n

这将授予您的应用程序以您域中的用户身份进行应用程序调用的权限。不过,请注意这一点:

\n
\n

尽管您可以在从 G Suite 域运行的应用程序中使用服务帐户,但服务帐户不是 G Suite 帐户的成员,并且不受 G Suite 管理员设置的域策略的约束。例如,G Suite 管理控制台中设置的用于限制 G Suite 最终用户在域外共享文档的能力的策略不适用于服务帐户。

\n
\n

有关详细信息,请参阅执行 G Suite 域范围内的授权

\n

  • 那么,您基本上是说,通过将特定 API 范围(即驱动器)的域范围权限委托给服务帐户,服务帐户将可以完全访问域内每个用户的驱动器内容(无论其共享权限如何) ? (2认同)