"domain wide authority" 未经同意允许访问用户数据?

"domain wide authority" give access to user data without consent?

非常直截了当的问题,但有关这方面的信息相互矛盾。

我们被要求创建一个服务帐户,该帐户具有全域权限以访问GmailAPI.

我想澄清一下,该应用现在是可以访问所有用户数据,还是需要征得每个用户的许可?

一方面我设置了一个同意屏幕,另一方面我在 G 套件中委派全域权限时看到以下通知

Developers can register their web applications and other API clients with Google to enable access to data in Google services like Gmail. You can authorize these registered clients to access your user data without your users having to individually give consent or their passwords.

在这里,应用程序似乎也可以访问所有用户的数据,而无需分别从每个用户那里寻找:https://support.google.com/a/answer/162106?hl=en

抱歉,如果这是一个愚蠢的问题,我查看了 SO 解决方案并通读了文档,但仍然不清楚,我发现最接近的是:Gmail API - Delegating domain-wide authority to the service account to single user 但它没有回答问题。

这是我从 G Suite 支持那里得到的,基本上是说该应用程序可以访问所有用户数据而无需请求任何 login/pass:

我会等其他人回答,但这是我从 G Suite 支持那里得到的,基本上是说 应用程序可以访问所有用户数据而无需请求任何 login/pass

问题:

我想澄清一下,该应用现在是可以访问所有用户数据,还是需要征得每个用户的许可?

答案:

服务帐户将能够访问域中任何用户的所有数据而无需请求他们的授权

如果您将域范围的权限委托给服务帐户,该服务帐户将能够模拟域中的任何帐户。也就是说,它将能够代表 任何帐户,并访问该帐户可以访问的相同资源,无需授权

这是因为即使不使用全域委派,服务帐户也会使用“双足 OAuth”工作流,用户不直接参与其中,也不需要征得他们的同意。这是服务帐户的要点之一。参见 this two-legged OAuth diagram, in constrast to the three-legged one

当然,这是一个非常强大的工具,这就是为什么 只有域管理员可以授予域范围的委派

请注意,一旦您向服务帐户授予域范围的权限,您应该在您的应用中指定您希望服务帐户模拟哪个用户。如果您不这样做,就好像您根本没有授予域范围的权限。

我建议您仔细阅读 Using OAuth 2.0 for Server to Server Applications

参考: