应该在哪里创建Google服务帐户?该应用程序的域名?或者在每个客户的域中?

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

是否打算在应用程序的域中创建服务帐户?或者在客户端G Suite Domain中代表应用程序?


背景: 我的公司有一个产品(以下简称“应用程序”),它有几千个组织作为客户,每个组织都有自己的谷歌域名。 (以下简称“组织域名”)

我们希望在应用程序和组织域之间建立同步,以获取应用程序和组织域之间通用的数据,并希望使用OAuth2连接,域管理员授予应用程序“域范围权限”代表其用户进行离线同步。

来自Service Account page

...属于您的应用程序而不是单个最终用户的帐户。您的应用程序代表服务帐户调用Google API,因此用户不会直接参与。

G Suite域管理员还可以授予服务帐户域范围的权限,以代表域中的用户访问用户数据。

引用Cloud Platform Console Help Faq

您可以通过创建服务帐户来代表您的服务来访问用户的Google Cloud Platform项目中的数据,然后让您的客户使用IAM策略授予该服务帐户对其云数据的适当访问权限。请注意,您可能希望为每个客户创建一个服务帐户...(强调添加)

听起来应用程序应该能够创建一个服务帐户,我们所有的客户端都会为其组织域进行身份验证。

部分不清楚: 在“服务帐户”页面中,有关委派域范围权限的说明似乎与服务帐户的位置有关。在说明之前,它的内容如下:

...首先在服务帐户页面中为现有服务帐户启用域范围委派...启用域范围委派。然后,G Suite域的管理员必须完成以下步骤:

然后,它读

您的应用程序现在有权将API调用作为您域中的用户(“模仿”用户)。 (重点补充)

从我正在阅读的内容来看,第一部分读取“应用程序的一个服务帐户”,而后者则读作“服务帐户只能作为应用程序域上的人员访问,而不是组织域”。

是否打算在应用程序的域中创建服务帐户?或者在组织域中,代表The App?

我见过组织域管理员创建服务帐户的示例,然后将clientID / secret传递给The App的所有者......但我不确定这是我们方案的正确方法。


相关 - 范围管理:委派步骤使组织域管理员手动添加范围。

我们更愿意使用OAuth许可屏幕,该屏幕显示范围,并且我们的页面/政策已关联。不幸的是,就我的研究发现而言,它看起来并不像服务帐户授权流程中使用该页面那样;仅适用于对单个用户进行身份验证的其他应用程序类型,而不是整个组织域。

我在谷歌的文档海洋中错过了一个页面吗?

google-oauth2 service-accounts
1个回答
0
投票

我想您很难理解服务帐户的使用。

服务帐户是虚拟用户帐户。他们有自己的驱动器帐户,日历帐户,可能还有一些。服务帐户旨在用于后端应用程序服务器到服务器通信,其中没有用户交互。服务帐户是预先授权的。您可以使用域范围内的gsuite帐户专用权授予服务帐户对您案例中用户数据的访问权限。这样,服务帐户将能够例如发送控制所有用户谷歌日历帐户。

这就是你不需要同意屏幕的原因。服务帐户的另一点是您必须控制数据才能进行设置。如果您不控制数据,则无法授予服务帐户访问该数据的权限。

如果要访问客户拥有的私有用户数据,则应使用Oauth2。

至于你的其余问题是非常广泛的,我不是真正的用户从哪里开始它你可能想要分解成几个问题。一次拿一个。我不确定我明白你想要做什么,所以我不认为我可以尝试回答这一部分。

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