适用于Google应用引擎的多域身份验证选项

时间:2011-05-24 07:53:25

标签: python google-app-engine authentication

我正在寻找在GAE应用中实施身份验证(和授权)的一些建议。假设我们的应用名为 someapp ,我们的要求如下:

someapp 主要针对其安装的域的Google应用用户,但也可以对来自其他Google应用域的用户进行身份验证。

例如,假设在domainX.com和domainY.com上配置了google apps。此外,domainX.com的管理员已经从应用市场向其域中添加了 someapp 。 domainX.com的管理员邀请userA@domainX.com和userB@domainY.com登录该应用程序。谷歌应用程序域用户都应该能够使用他们的SSO(单点登录)功能。

据我们所知,应用引擎中的当前身份验证选项允许域登录,只允许一个域的用户登录到应用程序或联合/ openid登录,这将允许任何域的用户登录进入应用程序。没有中间选项,只允许以前授权的域的用户登录到应用程序。这是否意味着我们唯一的选择是不考虑谷歌应用认证并实施我们自己的自定义认证?

同样在我们上面的示例场景中,如果domainX.com和domainY.com都添加了 someapp ,该怎么办?如果userA@domainX.com导航到 someapp.appspot.com ,将使用该应用程序的安装,安装在domainX.com上的那个或安装在domainY上的那个.COM。

1 个答案:

答案 0 :(得分:0)

身份验证并不意味着授权。联邦ID系统为您的应用程序所做的一切都是为您提供您可以信任的用户名/用户ID。因此,您可以设置与此信息相关联的用户帐户,并依赖于每当您看到该用户ID与同一用户交谈时的事实。或者在域范围的应用程序中,只要您在其用户ID中看到有该域名的人。

完全取决于您的应用程序,以确定该用户标识对您的应用程序是否有任何意义。如果我现在使用我的谷歌帐户登录您的应用程序,它应该说“哦,我以前没见过你,你想加入吗?” ...它应该(取决于你的应用程序)不仅仅是假设我有权使用你的应用程序,只是因为我告诉你我的名字。

我不确定你从哪里获得“域名登录模式”?只有 Google帐户 Open / FederatedID 这两种选择都不会限制用户访问。

在最后一个示例中,跨多个Google帐户的用户会看到不同的结果,具体取决于他们是否启用了多重登录。大多数用户将会看到一个屏幕,以便在继续之前选择他们所指的Google帐户。