公开上市的 Google Workspace 市场服务帐号

问题描述 投票:0回答:2

我有一个服务器端应用程序,需要访问 Google Workspace 组织中每个用户的 Gmail 数据。我想在 Google Workspace 市场上发布一个公开列表,该列表可由超级管理员用户在域范围内安装,并为服务器端应用程序提供访问该域中用户的 Gmail 数据的权限。

根据我目前的理解,我们需要一个具有模拟功能的服务帐户来访问每个用户的数据。最重要的是,服务帐户需要被委派域范围的权限,以便用户不需要给予个人 OAuth 同意或其密码。

使用市场 SDK 发布应用程序时,我看到有一个用于服务帐户凭据的字段:

我看到当前的 Marketplace SDK 有一个接受服务帐户凭据的字段。

但是当我的应用程序发布并安装它并去检查应用程序的数据访问时。我只能看到范围和 Oauth 客户端的字段。

我的问题:

  1. 在市场 SDK 中创建的服务帐户是否可供安装我的市场应用程序的组织使用?对于安装公开列出的应用程序的每个人来说,服务帐户是否具有相同的电子邮件和唯一 ID?

  2. 如果 (1) 不成立,那么管理员如何为我的市场应用程序创建服务帐户?

  3. 如果 (1) 为真,它是否会自动授予访问权限,与 OAuth 客户端和范围不同?

  4. 如果 (1) 为真,服务帐户是否在安装时自动在域范围内委派,或者我们是否必须向安装市场应用程序的人员提供服务帐户唯一 ID,以便他们可以在域范围内手动委派范围。

google-api google-workspace service-accounts google-apps-marketplace
2个回答
2
投票

我查看了一些与

Service Account
相关的 Google 公共文档,以下是我发现的可以回答您问题的内容:

问题1

  • 在市场 SDK 中创建的服务帐户是否可供安装我的市场应用程序的组织使用?

回答

  • 没有

注意:您在

Google Workspace Marketplace SDK
页面上看到的 CREDENTIALS 标签只是您为 GCP 项目 创建的 凭据 的概述,而 NOT 不一定仅适用于该服务/API。

服务帐户是在特定的 GCP 项目中创建的,您将在该项目中启用应用程序所需的 Google API/服务。 Google Workspace Marketplace SDK 的描述为:

  • “一个工具包,可让您在 Google Workspace Marketplace 上创建和控制应用列表,或者在 Google Chat 中创建和控制聊天应用。” (来源)

因此,此 Google Workspace Marketplace SDK 不一定使用服务帐号进行身份验证并在您的应用中调用。不过,当您为应用设置服务帐号时,您需要创建一个 Google Workspace Marketplace OAuth 客户端,并且此 OAuth 客户端与该 服务帐号 关联。这是支持 Google Workspace Marketplace 网域范围安装所必需的。

从 GCP 控制台设置 Google Workspace Marketplace OAuth 客户端

后续问题

  • 对于安装公开列出的应用程序的每个人来说,服务帐户是否具有相同的电子邮件和唯一 ID?

回答

  • 是的。理论上应该是这样的。

问题2

  • 如果 (1) 不成立,那么管理员如何为我的市场应用程序创建服务帐户?

回答

根据官方文档,概述如下:

  1. 为您的项目创建服务帐户
  2. 将域范围访问权限委托给服务帐户
  3. 您的应用程序准备使用服务帐户的凭据进行授权的 API 调用(这与有多少用户安装和使用您的应用程序无关)
  4. 该 API 调用将从 OAuth 2.0 身份验证服务器请求访问令牌
  5. 您的应用程序将能够 使用访问令牌来调用 Google API (在您的情况下使用 Gmail API)。

0
投票

@milos 您是否能够发布该应用程序。我们也有自己的服务器端应用程序,但我们正在努力列出它。 在市场 SDK 中,它要求列在附加组件/应用程序脚本下

© www.soinside.com 2019 - 2024. All rights reserved.