【问题标题】:Google Marketplace App / OAuth2 - Programmatically Delegate Domain-Wide AuthorizationGoogle Marketplace 应用程序/OAuth2 - 以编程方式委派域范围的授权
【发布时间】:2014-08-19 21:01:41
【问题描述】:

上下文

我目前正在迁移基于 OAuth 1.0/OpenId 的应用程序以使用 OAuth 2.0。该应用程序是用 Java 构建的 Google App Engine 应用程序,将在新的应用程序市场 2.0 中。我已经为个人用户提供了基本的 OAuth 2.0 流程,但在为下面的场景设置服务帐户时遇到了麻烦。

问题

我尝试启用的流程如下:

  1. 域管理员从应用市场安装应用
  2. 域管理员授予请求的范围(例如 admin sdk、配置文件、电子邮件等)
  3. 来自新域的用户无需任何范围权限提示即可登录
  4. 当用户登录时,我的应用的服务帐户可以使用 admin sdk 访问新域的用户详细信息,以检查用户是否为管理员

为了启用#4,我的理解是,我的应用服务帐户需要获得新用户域的请求范围的域范围授权。

Google 文档显示了域管理员如何通过管理控制台 (https://developers.google.com/drive/web/delegation) 手动完成此操作,但我没有找到有关如何以编程方式/自动授予对我的应用服务帐户访问权限的文档。

问题

有没有人遇到过这种情况?或者也许有另一种/更智能的方法来检查用户是否是其域的管理员,而无需使用服务帐户 + admin sdk 组合?

提前致谢!

【问题讨论】:

    标签: java google-oauth google-apps-marketplace google-oauth-java-client


    【解决方案1】:

    将您的应用标记为DOMAIN_INSTALLABLE,并在附加到该应用的 API 项目中创建一个服务帐户。管理员用户将从市场安装它,这将授予您的服务帐户的域范围委派。 See the doc here.

    请注意,您还需要模拟管理员用户的电子邮件才能访问 Admin SDK。您可以要求安装应用程序的人员在设置阶段提供正确的电子邮件。您必须发布一个 Web 应用程序来执行设置,并在 Marketplace SDK 配置中提供此 Web 应用程序的 URL。

    【讨论】:

    • 谢谢大卫,很高兴知道这一点。我没有在您指出的文档中看到这一点,但我会对其进行测试。
    猜你喜欢
    • 2022-07-31
    • 2013-12-06
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 2019-08-15
    • 2016-11-18
    • 2013-02-28
    相关资源
    最近更新 更多