【问题标题】:How can impersonate a Domain to Access Google API Admin SDK with Oauth2?如何模拟域以使用 Oauth2 访问 Google API Admin SDK?
【发布时间】: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 管理相同的概念,原因如下:

  1. 使用 Web 服务器 Oauth 2 策略根本不起作用,因为在这种情况下,我们将获得域用户对 Admin SDK 的访问权限。如果我们保留他们的访问/刷新令牌对以供以后查询 Admin SDK 并且用户因为域更改管理员而被删除,我们将与流程断开连接。

  2. 我认为在这种情况下最好的选择是 Service Account 策略。这种情况的问题是用户必须根据 Google 的文档域范围的授权 (https://developers.google.com/+/domains/authentication/delegation#create_the_service_account_and_its_credentials) 在其管理控制台中手动配置对应用程序的访问。这对我们来说真的很尴尬,因为我们以交互方式管理所有应用程序安装,并且我们不想删除用户体验设施。

最后,我的问题是:

  1. 是否有任何方法可以使用 OAuth 2 进行域委托授权,无需手动用户配置,完全交互?
  2. 有没有什么方法可以在不需要用户电子邮件的情况下做到这一点,这实际上是服务帐户 Oauth2 策略中的参数之一?
  3. 我们是否必须为这种情况保留 2-LO 身份验证,并且只为安装 Google Marketplace 部分执行 OAuth 2?

欢迎任何 cmets 或指南。

最好的,

【问题讨论】:

    标签: google-oauth google-admin-sdk google-apps-marketplace


    【解决方案1】:
    1. 当然 - 在 Google Apps Marketplace 的最新更新中,安装应用程序的行为意味着管理员无需执行额外的手动步骤。

    2. 您需要一种方法来模拟服务帐户中的用户。根据您实现应用程序的方式,您可能需要使用Directory API

    3. OAuth1 最终会消失,因此我建议您始终使用 OAuth2 以简化代码复杂性。

    【讨论】:

    • 感谢您的快速回答。我会尝试这样做。最好的,
    猜你喜欢
    • 2016-09-27
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 2019-02-10
    • 1970-01-01
    • 2021-03-28
    • 2018-05-26
    相关资源
    最近更新 更多