使用Django实现单点login(SSO)

我想使用Django为我们当前使用的多个应用程序实现单一login(SSO)。 如何使用Django实现SSO? 有没有可以用来实现SSO的Django包?

请帮助谢谢

看看django-cas-provider + django-cas-consumer (或者django-cas )

我们正在使用OpenAM。 http://forgerock.com/openam.html

OpenAM Cookie意味着用户被authentication。

这个身份validation后端非常简单。 在50行代码之下。

https://docs.djangoproject.com/en/1.7/topics/auth/customizing/#other-authentication-sources

我们编写了一些代码,向OpenAM服务器发出RESTful请求,以获取用户,组和angular色信息。 然后,我们使用angular色来确定用户的授权。

MamaCAS似乎是一个很好的解决scheme。 (写作的时候已经有104颗星了。)

https://github.com/jbittel/django-mama-cas

MamaCAS是一个Django中央authentication服务(CAS)单点login和单一注销服务器。 它实现了CAS 1.0,2.0和3.0协议,包括一些可选function。

CAS是单点login和单点登出Web协议,允许用户在一次提供凭证后访问多个应用程序。 它利用安全票据,由服务器生成和validation的唯一文本string,允许应用程序在不直接访问用户凭证(通常是用户ID和密码)的情况下对用户进行身份validation。

django-sso是一个非常整洁的包,实现单一login

在商业领域,您可以使用Stormpath( https://stormpath.com ),它是Django插件( https://github.com/stormpath/stormpath-django )。 免责声明:我在那里工作。

它的工作方式是非常酷的:

  • 你可以通过修改一些settings.py文件来安装Django插件。
  • 当用户login时,他们被redirect到login.yourdomain.com,这是一个stormpath托pipelogin表单,registry单,社交login,忘记密码等静态站点。
  • 通过将静态网站推送到github仓库,将其configuration成任何你想要的forms。
  • 这些库自动login用户,让他们保持login在任何子域/项目。

就是这样。

您可以按如下方式实施SSO:

  • Shibboleth作为身份提供者
  • Django网站作为服务提供商

我刚刚写完博客上的详细指南: http : //codeinpython.blogspot.com/2015/11/how-to-setup-shibboleth-identity.html

有OpenID和openid-auth 。

Django简单的SSO是另一个。

https://github.com/aldryn/django-simple-sso