【发布时间】:2019-07-30 22:40:21
【问题描述】:
服务帐户是否旨在在应用程序的域中创建?还是在客户端 G Suite 域中,代表应用程序?
背景:
我的公司有一个产品(以下简称“应用程序”),它有数千个组织作为客户,每个组织都可能拥有自己的 Google 域。 (以下简称“组织域”)
我们希望在应用程序和组织域之间设置同步,以获取应用程序和组织域之间的通用数据,并希望使用 OAuth2 连接,域管理员授予应用程序“域-代表他们的用户进行广泛的授权,用于离线同步。
...属于您的应用程序而不是 个人最终用户。您的应用程序代表调用 Google API 服务帐户,因此用户不直接参与。
和
G Suite 网域管理员还可以授予服务帐号 代表用户访问用户数据的域范围内的权限 域。
引用Cloud Platform Console Help Faq:
您可以通过以下方式访问用户的 Google Cloud Platform 项目中的数据 创建一个服务帐户来代表您的服务,然后拥有 您的客户授予该服务帐户对其的适当访问权限 使用 IAM 策略的云数据。请注意,您可能想要创建一个 每个客户的服务帐户...(已添加重点)
听起来该应用程序应该能够创建一个服务帐户,我们所有的客户都可以为其组织域进行身份验证。
不清楚的部分:
在“服务帐户”页面中,关于委派域范围权限的说明似乎与服务帐户所在的位置有关。
在说明之前,它写道:
...首先为现有服务启用域范围委派 服务帐户页面中的帐户 ...具有域范围的委派 启用。然后,G Suite 域的管理员必须完成 以下步骤:
然后,它读取
您的应用程序现在有权以用户身份进行 API 调用 您的域(“模拟”用户)。 (强调)
根据我的阅读,第一部分为“应用程序的一个服务帐户”,而后面的内容为“服务帐户只能作为应用程序域上的人访问,而不是组织域。”
是否打算在应用程序的域中创建服务帐户?还是在组织域中,代表应用程序?
我已经看到组织域管理员创建服务帐户,然后将 clientID/secret 传递给应用程序所有者的示例……但我不确定这是否是我们场景的正确方法。
相关 - 范围管理: 委派步骤让组织域管理员手动添加范围。
我们更喜欢使用 OAuth 同意屏幕,该屏幕显示范围,并链接了我们的页面/政策。 不幸的是,据我的研究发现,服务帐户授权流程中似乎没有使用该页面。仅适用于验证单个用户的其他应用程序类型,而不是整个组织域。
在 Google 的海量文档中是否有我遗漏的页面?
【问题讨论】:
标签: google-oauth service-accounts