我想使用Django为我们当前使用的多个应用程序实现单点登录(SSO)。 如何使用Django实现SSO?是否有可用于实施SSO的Django软件包?
请帮助 谢谢
答案 0 :(得分:13)
答案 1 :(得分:11)
我们正在使用OpenAM。 http://forgerock.com/openam.html
OpenAM Cookie表示用户已通过身份验证。
此身份验证后端非常简单。低于50行代码。
https://docs.djangoproject.com/en/1.7/topics/auth/customizing/#other-authentication-sources
我们编写了一些代码,向OpenAM服务器发出RESTful请求以获取用户,组和角色信息。然后,我们使用角色来确定用户的授权。
答案 2 :(得分:11)
MamaCAS似乎是一个很好的解决方案。 (在撰写本文时,它已经获得了104颗星。)
https://github.com/jbittel/django-mama-cas
MamaCAS是Django中央身份验证服务(CAS)单点登录和单点注销服务器。它实现了CAS 1.0,2.0和3.0协议,包括一些可选功能。
CAS是一种单点登录和单点注销Web协议,允许用户在一次提供凭据后访问多个应用程序。它利用安全票证,由服务器生成和验证的唯一文本字符串,允许应用程序在不直接访问用户凭证(通常是用户ID和密码)的情况下对用户进行身份验证。
答案 3 :(得分:6)
django-sso是一个非常整洁的包,它实现了单点登录
答案 4 :(得分:5)
答案 5 :(得分:3)
您可以按如下方式实施SSO:
我刚在博客上写完详细指南:http://codeinpython.blogspot.com/2015/11/how-to-setup-shibboleth-identity.html
答案 6 :(得分:0)
答案 7 :(得分:0)
我已将https://github.com/onelogin/python3-saml用于Azure AD和Google。非常简单的设置,带有出色的文档和支持。
答案 8 :(得分:0)
CAS(中央身份验证服务)是一个很好的解决方案,它支持Django和Flask的SSO(单一登录)和单一注销(SLO)。这是一个设置说明,以使一个CAS服务器和多个具有相同登录/注销的客户端:
[注意]: