【问题标题】:Where should a Google Service Account be created? The App's domain? Or in each client's Domain?应该在哪里创建 Google 服务帐户?应用程序的域?还是在每个客户的域中?
【发布时间】:2019-07-30 22:40:21
【问题描述】:

服务帐户是否旨在在应用程序的域中创建?还是在客户端 G Suite 域中,代表应用程序?


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

我们希望在应用程序和组织域之间设置同步,以获取应用程序和组织域之间的通用数据,并希望使用 OAuth2 连接,域管理员授予应用程序“域-代表他们的用户进行广泛的授权,用于离线同步。

来自Service Account page

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

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

引用Cloud Platform Console Help Faq

您可以通过以下方式访问用户的 Google Cloud Platform 项目中的数据 创建一个服务帐户来代表您的服务,然后拥有 您的客户授予该服务帐户对其的适当访问权限 使用 IAM 策略的云数据。请注意,您可能想要创建一个 每个客户的服务帐户...(已添加重点)

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

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

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

然后,它读取

您的应用程序现在有权以用户身份进行 API 调用 您的域(“模拟”用户)。 (强调)

根据我的阅读,第一部分为“应用程序的一个服务帐户”,而后面的内容为“服务帐户只能作为应用程序域上的人访问,而不是组织域。”

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

我已经看到组织域管理员创建服务帐户,然后将 clientID/secret 传递给应用程序所有者的示例……但我不确定这是否是我们场景的正确方法。


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

我们更喜欢使用 OAuth 同意屏幕,该屏幕显示范围,并链接了我们的页面/政策。 不幸的是,据我的研究发现,服务帐户授权流程中似乎没有使用该页面。仅适用于验证单个用户的其他应用程序类型,而不是整个组织域。

在 Google 的海量文档中是否有我遗漏的页面?

【问题讨论】:

    标签: google-oauth service-accounts


    【解决方案1】:

    我认为您不了解服务帐户的使用。

    服务帐户是虚拟用户帐户。他们有自己的驱动器帐户、日历帐户,可能还有更多。服务帐户设计用于在没有用户交互的情况下与后端应用程序服务器到服务器的通信一起使用。服务帐户是预先授权的。您通过使用域范围内的 gsuite 帐户专用来授予服务帐户访问您案例中的用户数据的权限。这样,服务帐户就可以控制所有用户的谷歌日历帐户。

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

    如果您想访问客户拥有的私人用户数据,您应该使用 Oauth2。

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

    【讨论】:

    • 我的核心问题是服务帐户是否可以在它创建的一个域上运行,或者是否有一种方法可以将 SA 从域范围委派给不同的(用户)域。 (根据文档,如果有,则通过使用客户端管理控制台中的服务帐户 ID 进行手动设置,以提供预授权)
    • 我的跟进(“相关”部分)只有在服务帐户可以设置一次然后从多个用户域引用时才真正重要。例如:如果可能的话,我想知道是否有更好的方法来设置范围,而不是在管理控制台中手动输入。
    • 您可以将其设置为您有权访问的多个用户域,但您必须在控制台中手动完成
    猜你喜欢
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 2016-12-23
    相关资源
    最近更新 更多