【发布时间】:2014-02-05 21:00:55
【问题描述】:
我们使用 OAuth 1.0 协议在 Google Apps Marketplace 上部署了多个应用。根据 Google Platform 中的 OAuth 1.0 到期,我们正在尝试将所有应用程序迁移到新的 OAuth 版本,但我们在后台请求 Google Admin SDK Directory API 方面遇到了一些困难。
在我们的应用程序中,我们需要请求域用户帐户、组和其他与电子邮件域结构相关的东西。在 OAuth 1.0 之前,我们一直使用 2-LO(Two-Legge OAuth)进行此操作,因此基本上一旦管理员授予我们访问权限,我们就可以使用此机制模拟域请求。
在阅读了有关 Google API、Oauth 机制和其他东西的所有 Google 文档,并尝试了一些代码测试假设之后,我们还没有弄清楚如何使用 OAuth 2 管理相同的概念,原因如下:
使用 Web 服务器 Oauth 2 策略根本不起作用,因为在这种情况下,我们将获得域用户对 Admin SDK 的访问权限。如果我们保留他们的访问/刷新令牌对以供以后查询 Admin SDK 并且用户因为域更改管理员而被删除,我们将与流程断开连接。
我认为在这种情况下最好的选择是 Service Account 策略。这种情况的问题是用户必须根据 Google 的文档域范围的授权 (https://developers.google.com/+/domains/authentication/delegation#create_the_service_account_and_its_credentials) 在其管理控制台中手动配置对应用程序的访问。这对我们来说真的很尴尬,因为我们以交互方式管理所有应用程序安装,并且我们不想删除用户体验设施。
最后,我的问题是:
- 是否有任何方法可以使用 OAuth 2 进行域委托授权,无需手动用户配置,完全交互?
- 有没有什么方法可以在不需要用户电子邮件的情况下做到这一点,这实际上是服务帐户 Oauth2 策略中的参数之一?
- 我们是否必须为这种情况保留 2-LO 身份验证,并且只为安装 Google Marketplace 部分执行 OAuth 2?
欢迎任何 cmets 或指南。
最好的,
【问题讨论】:
标签: google-oauth google-admin-sdk google-apps-marketplace