首页 > 解决方案 > 如何在 GSuite 中创建 OAuth 2.0 应用程序仅供内部使用?

问题描述

我正在开发与 GSuite 服务(例如 Gmail 和 Google Drive)通信的 Web 应用程序。目前有很多人使用我的应用程序。我在我的 GSuite 组织中创建了 2 个 OAuth 2.0 应用程序:一个用于开发和测试目的(假设为 MY_DEV_APP),另一个用于公共使用(假设为 MY_PROD_APP)。最近我从 Google 团队收到一条消息,说我的应用程序应该在 2019 年 5 月结束之前进行验证。所以我检查了文档中描述的所有要求并进行了更改以满足它们。之后,我发送了 MY_PROD_APP 应用程序进行验证,但没有发送 MY_DEV_APP 应用程序。MY_PROD_APP 得到验证并且仍然被公开使用。但是 MY_DEV_APP 应用程序未验证现在我看到所有的范围都被删除了(看起来它被谷歌禁用了),所以我不能再使用这个应用程序了。

正如文件所述:

未经验证的应用程序是请求敏感 OAuth 范围但尚未通过 Google 验证过程的 Web 应用程序或应用程序脚本。未经验证的应用程序或您的测试版本的用户可能会收到基于您正在使用的 OAuth 范围的警告。这是为了保护用户及其数据免受欺骗性应用程序的侵害。

OAuth 2.0 应用程序只能在 GSuite 或有限访问 AFAIK 中创建供内部使用。但目前我无法弄清楚我该怎么做。您能否提供详细的手册如何做到这一点?如何在 GSuite 中创建 OAuth 2.0 应用程序仅供内部使用而无需强制验证?

标签: oauth-2.0google-cloud-platformgoogle-workspace

解决方案


仅供内部使用(在您的组织内部)的 G Suite 应用程序的创建过程与常规应用程序的创建过程几乎相同。G Suite Marketplace Guide中描述了创建和发布 G Suite 应用程序的所有步骤。为了创建 G Suite 应用程序以供单个组织内部使用并省略验证过程,您应该在配置 G Suite Marketplace SDK 期间将 Visibility 选项值设置为“My Domain”(应用程序仅对您域内的用户可用),如此处所述. 此选项在保存配置后无法更改,因此应在初始设置期间进行设置。

发布您的内部应用程序后,您可以在G Suite Marketplace 部分找到您域的所有应用程序所在的位置。

以下是根据G Suite Marketplace Guide中的信息创建 G Suite 应用程序的简短步骤列表:

  1. 在Google API 控制台中创建新项目。设置名称、项目ID(项目ID在项目创建后不能更改,它应该是唯一的)和项目位置(通常这是当前的GSuite域,此时不能更改)。
  2. 按照此处所述配置同意屏幕。您可以在此处为 Google API 和授权域选择所需的范围。设置“内部”应用程序类型,以便只有在您的组织中拥有 Google 帐户的用户才能授予访问此应用程序请求的范围的权限。
  3. 设置OAuth 2.0 客户端 ID。保存配置后,您将看到带有客户端 ID 和客户端密码的弹出窗口。将它们复制并保存在某处。请注意,这些值稍后将在给定应用程序的凭据选项卡下随时可用(OAuth 2.0 客户端 ID > Web 应用程序项的客户端 ID)。
  4. 设置服务帐户密钥。之后将下载 JSON 文件,您可以在其中找到使用应用程序所需的私钥和其他信息。
  5. 添加您的应用程序使用的 API 和服务(例如 Gmail API、Google Drive API)。此处需要 G Suite Marketplace SDK。
  6. 设置 G Suite Marketplace SDK 并按照此处所述发布您的应用程序。选择“公开”可见性选项,让 G Suite Marketplace 中的任何管理员都能找到并使用您的应用程序。否则,您可以选择“我的域”可见性(也称为私有可见性),这表明只有您域中的管理员才能从 G Suite 市场找到并安装该应用程序。如果还选中了启用个人安装,则单个用户可以找到并安装应用程序,也可以由组织管理员安装。

推荐阅读