在Django中应该使用哪种CAS实现?

24
我应该使用哪个CAS实现来启用CAS单点登录到我的Django应用程序(信任指定的CAS服务器,我不感兴趣创建CAS提供者)? 我能找到的有以下几种: 我之前使用过django-cas,它似乎可以工作,但似乎已经被放弃了?django-cas-consumer至少似乎有更近期的活动。
每个实现的实际优缺点是什么?还有其他我应该使用的实现吗?

2
我没有直接使用过CAS或任何Django CAS的实现,但我的大学(哥伦比亚大学)使用他们自己的CAS衍生版,叫做WIND。我的理解是,在CAS支持组关联之前,Columbia需要这个功能,因此开发了WIND作为CAS的一个分支。但基本的身份验证步骤几乎是相同的。所以,如果你正在寻找选项,我建议将我的djangowind实现添加到列表中:http://github.com/thraxil/djangowind将其改回符合CAS标准可能是一个可能性(我可以担保djangowind非常灵活和经过测试)。 - thraxil
5个回答

9
我已经长时间使用旧版本的django-cas,并且它按预期工作。我从未使用过django-cas-consumer,但我已经研究了它。
比较这两个项目之间的代码,看起来django-cas-consumer是django-cas的简化版本。
最明显的两个区别是:
- django-cas-consumer仅支持CAS版本1 - django-cas具有中间件,捕获任何对django.contrib.auth.views.login和logout的请求并将其重定向到CAS登录和注销视图
另外,如果您正在使用Apache,则可以考虑使用mod_auth_cas,这是官方的CAS客户端。然后,您可以简单地使用django的remote user authentication

9

1
不支持Python 3,也不支持CAS 3+。 - Édouard Lopez

8
如果有人对在django上使用CAS感兴趣,请尝试一下最新且活跃维护的django cas版本: django-cas-ng
pip install django-cas-ng

django-cas-ng 是一个 CAS(Central Authentication Service)客户端实现。该项目继承自 django-cas。django-cas 从 2013-4-1 起就没有更新过了。该项目将包括新的 bug 修复和新功能开发。 它具有更多特性:
- 支持 CAS 版本 1.0、2.0 和 3.0。 - 支持单点退出。 - 支持令牌认证方案。 - 可以获取代理授权票据。 - 支持 Django 2.0、2.1、2.2 和 3.0。 - 支持使用用户自定义模型。 - 支持 Python 3.5+。
请查看文档:https://djangocas.dev/docs/

4

低活跃度并不一定意味着产品不够好。可能是因为该产品已经达到了稳定状态。建议您与开发人员确认一下。个人而言,我会选择一个稳定的系统而不是一个显示很多活动的系统(特别是如果这些活动是在修复漏洞)。


5
对于独立组件而言可能是正确的,但由于它将与Django一起使用,因此保持与最新的Django版本同步非常重要。有时会出现一些不兼容的变化... - glarrain

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接