Google Marketplace App / OAuth2 - 以编程方式委派全域授权

时间:2014-08-19 21:01:42

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

上下文

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

问题

我想要启用的流程如下:

  1. 域管理员从应用市场安装应用
  2. 域管理员授予请求的范围(例如,管理员sdk,个人资料,电子邮件等)
  3. 来自新域的用户可以在没有任何范围权限提示的情况下登录
  4. 当用户登录时,我的应用服务帐户可以使用admin sdk访问新域的用户详细信息,以检查用户是否为管理员
  5. 为了启用#4,我的理解是我的应用服务帐户需要被授予针对新用户域的请求范围的域范围授权。

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

    问题

    有人有运气吗?或者是否有另一种/更聪明的方法来检查用户是否是他们域的​​管理员而无需使用服务帐户+ admin sdk combo?

    提前致谢!

1 个答案:

答案 0 :(得分:1)

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

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