将Google OAuth2范围要求限制为域

时间:2014-09-22 20:19:07

标签: google-app-engine google-oauth google-apps-marketplace

我目前正在开发基于Google App Engine / Java的应用程序,该应用程序刚刚迁移到新的Google市场,我想知道是否有任何方法可以将范围要求限制到特定域。我尝试启用的方案如下。

我们的应用可让管理员运行从Google云端硬盘中存储的文档/工作表中读取数据的命令。 “admin”是属于应用程序主域的任何人。这些命令使用服务帐户访问Google Data API,因此需要在调用中定义适当的范围,并在Marketplace API控制台中启用。我们使用的范围是:https://spreadsheets.google.com/feedshttps://docs.google.com/feeds

问题在于,启用这些范围会迫使其他域中的所有客户同时授予对范围的访问权限。当应用程序需要访问这些其他域的驱动器时,没有任何情况,因此这是不必要的,从客户的角度来看也是不可取的。

是否可以为我们的应用管理员请求/授予一组特定的范围,而不是其他客户?

1 个答案:

答案 0 :(得分:3)

如果这仅适用于您的内部管理员用户(即不是客户的管理员,而是应用程序创建者的管理员),则不应使用市场授权。

相反,你应该使用:

  • 向管理员用户发出直接OAuth授权请求。换句话说,弹出对这些用户的授权请求,并在App Engine中存储访问和刷新令牌,以便您可以访问其Drive文件。

  • 专门针对您的域的服务帐户+域范围委派设置。 See how to set this up here。这基本上与市场相同,但您在不安装市场应用程序的情况下授权服务帐户。

  • 使用服务帐户在云端硬盘中标识您的应用,然后使用此服务帐户的电子邮件分享所需的云端硬盘文件。然后,您的应用程序将能够像访问普通用户一样访问这些文件。 More details here