我有一个服务器端应用程序,需要访问 Google Workspace 组织中每个用户的 Gmail 数据。我想在 Google Workspace 市场上发布一个公开列表,该列表可由超级管理员用户在域范围内安装,并为服务器端应用程序提供访问该域中用户的 Gmail 数据的权限。
根据我目前的理解,我们需要一个具有模拟功能的服务帐户来访问每个用户的数据。最重要的是,服务帐户需要被委派域范围的权限,以便用户不需要给予个人 OAuth 同意或其密码。
使用市场 SDK 发布应用程序时,我看到有一个用于服务帐户凭据的字段:
我看到当前的 Marketplace SDK 有一个接受服务帐户凭据的字段。
但是当我的应用程序发布并安装它并去检查应用程序的数据访问时。我只能看到范围和 Oauth 客户端的字段。
我的问题:
在市场 SDK 中创建的服务帐户是否可供安装我的市场应用程序的组织使用?对于安装公开列出的应用程序的每个人来说,服务帐户是否具有相同的电子邮件和唯一 ID?
如果 (1) 不成立,那么管理员如何为我的市场应用程序创建服务帐户?
如果 (1) 为真,它是否会自动授予访问权限,与 OAuth 客户端和范围不同?
如果 (1) 为真,服务帐户是否在安装时自动在域范围内委派,或者我们是否必须向安装市场应用程序的人员提供服务帐户唯一 ID,以便他们可以在域范围内手动委派范围。
我查看了一些与
Service Account
相关的 Google 公共文档,以下是我发现的可以回答您问题的内容:
注意:您在
Google Workspace Marketplace SDK页面上看到的CREDENTIALS
标签只是您为 GCP 项目 创建的 凭据 的概述,而 NOT 不一定仅适用于该服务/API。
服务帐户是在特定的 GCP 项目中创建的,您将在该项目中启用应用程序所需的 Google API/服务。 Google Workspace Marketplace SDK 的描述为:
因此,此 Google Workspace Marketplace SDK 不一定使用服务帐号进行身份验证并在您的应用中调用。不过,当您为应用设置服务帐号时,您需要创建一个 Google Workspace Marketplace OAuth 客户端,并且此 OAuth 客户端与该 服务帐号 关联。这是支持 Google Workspace Marketplace 网域范围安装所必需的。
从 GCP 控制台设置 Google Workspace Marketplace OAuth 客户端:
根据官方文档,概述如下:
@milos 您是否能够发布该应用程序。我们也有自己的服务器端应用程序,但我们正在努力列出它。 在市场 SDK 中,它要求列在附加组件/应用程序脚本下