我们有2个组成部分:
I)一个Web应用程序(带有基于AWS Lambda的角应用程序:服务器端API),我们将其称为Web应用程序(这里大部分繁重的工作都由lambda完成,而angular当然只在执行UI) 。使用AWS Cognito。
II)一个Gmail插件,它通过相同的Cognito(有限范围)登录用户,仅显示服务器知道的有关正在查看的当前电子邮件的支持信息。
到目前为止的故事..
Web应用程序使用与Google的登录/注册(OAuth客户端),后者使用Cognito进行用户管理。基本上,我们获得了用户的授权,可以在服务器端Web应用程序中离线阅读其电子邮件(“ https://mail.google.com”)。
我们创建了一个Gmail插件,该插件使用登录按钮登录到我们的服务器应用程序(通过OAuth2)。我们在这里没有将('https://mail.google.com')范围用于gmail插件,因为我们没有真正读取用户电子邮件的离线读取权限。我们使用OAuth2通过API(访问令牌)从服务器端应用程序获取数据,并显示当前电子邮件的一些相关数据。
此外,我们还有一个服务帐户(具有域范围委派),目前,我们要求Gsuite管理员明确授予访问权限,方法是在G Suite管理控制台中将我们的服务帐户ID明确列入白名单 “安全”>“高级设置”中的“管理API客户端访问”
现在,看一下Gsuite应用程序(例如AODOCS),似乎有一种方法可以避免gsuite管理员白名单和添加范围等“手动”过程,即拥有一个仅Gsuite管理员插件,通过安装该插件,服务帐户即可访问gsuite管理员。
因此,基本上,普通用户只安装我们已经拥有的Addon,而gsuite管理员安装“特殊”插件,其功能与显式的whilelisting(和添加作用域)完全相同。
现在,documentation就是这样:
注意:当您使用G Suite Marketplace为您的域安装应用程序时,所需的权限将自动授予该应用程序。您无需手动授权应用程序使用的服务帐户。
问题也是如此:
如何“准确地”使应用程序仅成为gsuite管理员,并使其提供所需范围的服务帐户ID?它像在gmail附加代码“内部”使用服务帐户一样简单吗?我真的需要2个插件吗?由Gsuite管理员安装后,我现有的插件可以为所有用户执行插件的“域范围安装”吗?并且我们为应用程序服务帐户提供所需的访问权限?
抱歉,如果这太明显了,addon的完整发布会让我感到困惑,并且我是addon开发的新手。