我关注了this tutorial,以便为通过Google Apps Marketplace安装的应用启用单点登录。现在,检查用户是否为Google Apps域的管理员的最佳方法是什么?如何检查用户是否是App Engine中的Google Apps域的管理员?
编辑:我在问这是因为我们可以在manifest中为“设置”和“管理”定义链接。我不认为我的应用中的这些网页应该可以通过所有 Google Apps域的用户访问,只能通过管理。然后我想我只需要根据域的管理员来限制对这些页面的访问。
我关注了this tutorial,以便为通过Google Apps Marketplace安装的应用启用单点登录。现在,检查用户是否为Google Apps域的管理员的最佳方法是什么?如何检查用户是否是App Engine中的Google Apps域的管理员?
编辑:我在问这是因为我们可以在manifest中为“设置”和“管理”定义链接。我不认为我的应用中的这些网页应该可以通过所有 Google Apps域的用户访问,只能通过管理。然后我想我只需要根据域的管理员来限制对这些页面的访问。
您可以通过市场上安装过程的optional step3将您的管理员用户加入您的应用程序,您可以在该应用程序中手动请求要将哪些用户专用管理员权限。
你试过users.is_current_user_admin()
?
哦,这将无法正常工作。 'users.is_current_user_admin()'检查* App Engine * admin(我!),但是我想知道安装我的应用的用户是否是他们的Google Apps域的管理员。 – moraes 2011-05-10 15:09:52
您可能可以使用配置API来执行retrieve用户帐户。在response那么您需要能够告诉用户是否是管理员或不:
<apps:login userName="JoeBloggs" suspended="false" admin="false"
changePasswordAtNextLogin="false" agreedToTerms="true"/>
[编辑]我看你可以使用GDATA的Python客户端library调用RetrieveUser
功能,使事情变得更简单。
这意味着OP的应用程序必须在清单中请求ProvisioningAPI访问。这可能是一个相当大的飞跃,要求您的应用的用户访问最强大的API之一,以检查它们是否为管理员。 – 2011-05-10 22:30:58
另外,如果Google Apps域名不是优质的,我甚至无法在其域上使用Provisioning API,对吧? – moraes 2011-05-10 22:44:19
如果您使用的是市场,我相信您可以获得*只读*配置API访问 – 2011-05-10 23:06:01
你是什么意思“他们的应用程序管理”?你的意思是“他们的域名管理员”? – 2011-05-10 17:33:39
是的。修复它。 – moraes 2011-05-10 19:55:37