使用Django实现单点登录(SSO)

时间:2011-01-11 20:35:37

标签: python django single-sign-on

我想使用Django为我们当前使用的多个应用程序实现单点登录(SSO)。 如何使用Django实现SSO?是否有可用于实施SSO的Django软件包?

请帮助 谢谢

9 个答案:

答案 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)

Django Simple SSO是另一个。

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

关于如何使用此回购的文章 a article

答案 5 :(得分:3)

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

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

我刚在博客上写完详细指南: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服务器和多个具有相同登录/注销的客户端:

  1. 需要一个CAS客户端,因此我使用了名为django-cas-ng packagehere is its configuration的新一代Django-CAS作为自己的客户端。 (另外,这是pre-configured client repo
  2. 需要一个CAS服务器,所以我使用了pre-configured repo

[注意]:

  • 它支持 Django 1.11、2.x,3.x