使用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是另一个。