其他域的 GSuite 服务帐户 + OAuth2

GSuite Service Account + OAuth2 for other domains

我已经使用 GSuite 域范围委托 + 服务帐户设置了一个集成,它允许我们充当我们域中的任何用户。

目前,对于我们 rulerr.com 的客户来说,这种方法并不是一个非常 "user friendly" 的选择,我正在寻求 运行 通过 Oauth2 同意流程来针对我们以外的其他域组织。

理想情况下,他们能够以管理员身份同意(称为管理员同意),然后我们可以通过简单地检索一两个令牌来访问所有用户数据 (calendars/mail/drive)。

这可以通过具有应用程序和委派权限的 Microsoft Graph 实现(参见 https://blogs.msdn.microsoft.com/exchangedev/2015/01/21/building-daemon-or-service-apps-with-office-365-mail-calendar-and-contacts-apis-oauth2-client-credential-flow/

谁能告诉我这在 GSuite 中是否可行?除了单个组织的服务帐户之外,我找不到任何信息。

"Admin consent" 是在 rulerr.com 的管理员在其 G Suite 域中授权您的 API 服务帐户的 client_id 时提供的。这可以通过两种方式完成:

  1. rulerr.com 的管理员将您的 client_id 添加到 G Suite 管理站点的安全-->管理 API 客户端访问部分。这会授予您的 API 客户端访问其域实例中授权范围内所有帐户的权限。
  2. 如果您在 API 项目和 create/deploy 市场应用程序中启用 Marketplace SDK,他们的管理员可以将该应用程序安装到他们的域中,这会向所有用户授予同意,但他们可以 OU 限制以便仅授予他们选择的 OU 中的用户。

如果有人在寻找比 Google API 文档中提供的内容更详细的这个问题的答案,此页面对我帮助很大:http://youdontneedacrm.tumblr.com/post/81479000201/tutorial-create-your-application-in-google-marketplace