2011-05-10 112 views
1

我关注了this tutorial,以便为通过Google Apps Marketplace安装的应用启用单点登录。现在,检查用户是否为Google Apps域的管理员的最佳方法是什么?如何检查用户是否是App Engine中的Google Apps域的管理员?

编辑:我在问这是因为我们可以在manifest中为“设置”和“管理”定义链接。我不认为我的应用中的这些网页应该可以通过所有 Google Apps域的用户访问,只能通过管理。然后我想我只需要根据域的管理员来限制对这些页面的访问。

+1

你是什么意思“他们的应用程序管理”?你的意思是“他们的域名管理员”? – 2011-05-10 17:33:39

+0

是的。修复它。 – moraes 2011-05-10 19:55:37

回答

3

您可以通过市场上安装过程的optional step3将您的管理员用户加入您的应用程序,您可以在该应用程序中手动请求要将哪些用户专用管理员权限。

+0

按照这个想法,我不得不假设第一个访问“设置”页面的用户将是管理员。这有点粗糙,因为用户不会被迫完成该步骤。这意味着:管理员可能会错过要求完成该步骤的文本,然后任何用户都可以执行该操作并控制应用程序。 – moraes 2011-05-10 23:47:42

+0

忘记我说的话。我刚刚尝试过,管理员需要设置它。那就是了。谢谢。 – moraes 2011-05-11 00:00:56

0

你试过users.is_current_user_admin()

+1

哦,这将无法正常工作。 'users.is_current_user_admin()'检查* App Engine * admin(我!),但是我想知道安装我的应用的用户是否是他们的Google Apps域的管理员。 – moraes 2011-05-10 15:09:52

2

您可能可以使用配置API来执行retrieve用户帐户。在response那么您需要能够告诉用户是否是管理员或不:

<apps:login userName="JoeBloggs" suspended="false" admin="false" 
    changePasswordAtNextLogin="false" agreedToTerms="true"/> 

[编辑]我看你可以使用GDATA的Python客户端library调用RetrieveUser功能,使事情变得更简单。

+0

这意味着OP的应用程序必须在清单中请求ProvisioningAPI访问。这可能是一个相当大的飞跃,要求您的应用的用户访问最强大的API之一,以检查它们是否为管理员。 – 2011-05-10 22:30:58

+0

另外,如果Google Apps域名不是优质的,我甚至无法在其域上使用Provisioning API,对吧? – moraes 2011-05-10 22:44:19

+0

如果您使用的是市场,我相信您可以获得*只读*配置API访问 – 2011-05-10 23:06:01

相关问题