oauth - 通过 G Suite Admin SDK 对第三方应用的 API 访问
问题描述
我们公司使用 Sign in with Google 登录各种第三方应用程序(例如 Atlassian Jira/Confluence、Coda、Dropbox、Hubspot 等)。
我已经能够使用Admin SDK通过域范围的委派获得对每个用户的电子邮件、日历和驱动器的 API 访问权限。是否也可以委托对连接到用户 Google 帐户的所有第三方应用程序的访问权限?
理想情况下,我希望能够代表用户使用第三方 API(就像我能够使用 Gmail、Drive、Calendar API 的方式)——而不需要用户授予我的应用程序显式访问权限(通过 OAuth)对于每个第三方应用程序。
解决方案
这真的取决于第三方应用程序。正如您所注意到的,您的用户可以让您(范围)访问其他一些应用程序(例如 GSuite 应用程序),但还有更多应用程序!
阻止您的用户让您访问其他第三方应用程序的是实现此功能的第三方应用程序。
假设您的用户使用您有权访问的 Google 帐户登录到 spotify,例如 gmail。您的应用程序通过阅读来自 spotify 的注册电子邮件并提示用户授予权限来管理播放列表和播放适合电子邮件开始写入的音乐,从而发现城中有一项新服务。
如果 spotify 没有实现用户可以授予对应用程序访问权限的 API,则无法执行此操作。此外,用户必须授予对某些资源的访问权限,例如播放列表,而您将无法使用其他所有资源。
每个用户必须授予访问权限,通常以令牌的形式在您要代表用户调用的服务(例如 spotify)和您的应用程序之间协商。
在我们的示例中,一旦您出示您的令牌,就会发现授予访问权限,而获得令牌的唯一方法是向用户询问授予权限,这通常通过一些 OAuth 舞蹈来完成。
GSuite 有许多应用程序,您可以设置不同的策略,但 spotify 是不同的应用程序/公司,并且不在您的域范围委派范围内,因此您确实需要询问用户并且用户必须授予您访问权限。
如果第三方应用程序与 GSuite 有一些奇怪的交易,那就是另一回事了,但这是一般情况。
推荐阅读
- python - 如何在返回 None 的函数中使用变量?
- json - ADF:将具有对象数组的 JSON 文件拆分为单个 JSON 文件,每个文件中包含一个元素
- sql - 如何将连接的设备链接到 SQL 数据库?
- sql - 如何使用 SQL Server 将 EPOCH UNIX 日期时间转换为 SQL 格式
- php - preg_match 不匹配确切的字符串
- javascript - 单击时切换按钮的文本
- r - 有没有办法使用来自 tibble 的 ggplot2 生成散点图,其中所有值都在一个没有 pivot_wider 的列中?
- typescript - 带有 parserOptions 和排除的 Catch-22
- java - 排名数组 Java
- javascript - 试图展示夏天或冬天