使用Google Apps + App Engine进行单点登录

mor*_*aes 14 openid google-app-engine google-apps single-sign-on

是否可以通过App Engine上的内置OpenId实现SSO?我一直在尝试集成Marketplace应用并让用户在使用Google Apps(管理面板或通用导航)时登录.我悲惨地失败了,现在我发现了这个:

"一个例外是混合OpenID/OAuth的应用程序 - 白名单目前不适用于这种方法." (从这里)

我假设我必须使用库实现OpenId,而不是使用内置的库在我的应用程序中使用Google Apps实现SSO?或者,如果可以使用内置的OpenId,是否有示例显示如何执行此操作?

mor*_*aes 6

后来谷歌发布了一篇关于如何用Python做的文章:

http://code.google.com/googleapps/marketplace/tutorial_python_gae.html

摘要是:

  • 您必须将市场清单XML中的"OpenID领域"(应用程序域)列入白名单.
  • 用于Google通用导航的入口点必须包含当前的Google Apps域.
  • 您应用中的入口点会将通过Google Apps域的用户重定向为federated_identity.

例如:

from google.appengine.api import users

# [...]

login_url = users.create_login_url(dest_url='http://my-app.appspot.com/',
                                   _auth_domain=None,
                                   federated_identity=google_apps_domain_name)
self.redirect(login_url)
Run Code Online (Sandbox Code Playgroud)