`
xiaolin0199
  • 浏览: 572973 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

django多网站用户统一认证方案:django-cas

 
阅读更多

 

Tomcat+CAS以及cas的mysql数据库的验证

 

Tomcat+cas服务器的搭建可参考文档:

 

CAS服务搭建(ubuntu 10.04)

http://xiaolin0199.iteye.com/blog/683759

 

cas的mysql数据库验证可参考文档:

测试CAS服务器(二)

http://xiaolin0199.iteye.com/blog/686229

 

django-cas的应用

 

官方文档:https://bitbucket.org/cpcc/django-cas/overview

 

操作过程

 

1.下载django-cas包:https://bitbucket.org/cpcc/django-cas/get/tip.tar.gz

 

2.安装

 

解压后直接运行$sudo python setup.py install或将djang-cas包放在项目根目录下

 

3.settings.py的设置

 

在settings.py中加入

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django_cas.middleware.CASMiddleware',
    'django.middleware.doc.XViewMiddleware',
)

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
    'django_cas.backends.CASBackend',
)

 

 

另外还有几个配置变量,如CAS_SERVER_URL是必须的,是你的cas服务器url地址,

CAS_SERVER_URL = 'http://sso.some.edu/cas/'

 

4. urls.py设置

 

urls.py中加入:

(r'^accounts/login/$', 'django_cas.views.login'),
(r'^accounts/logout/$', 'django_cas.views.logout'),

 

这样你的用户验证就会有cas服务器完成

 

实现原理

写道
在用户进行登录时,会调用django-cas的登录函数,函数会用url跳转去CAS服务器上进行用户信息验证
当验证成功时,会返回用户名,django会根据该用户名去自己的auth_user表中查找用户,若没有用户,则新创建
当用户再次登录,就不经过CAS了,还是按原django的验证中间件,通过cookie+session判断

 

结论

写道
就django-cas该项目来说,并不能很好的实现多网站单点登录,同时登录,同时注销
但django与CAS服务器配合,是一定能实现单点登录的
而且不止是django,其他的如asp,java servlets,都是能实现的
在网上看见过一个例子,两个servlets能通过CAS实现同步登录

 

 

 

分享到:
评论

相关推荐

    django3-cas-server-3.0.0.tar.gz

    标题 "django3-cas-server-3.0.0.tar.gz" 指示这是一个针对 Django 3.x 版本优化的 CAS(Central Authentication Service)服务器的源代码压缩包。CAS 是一个开源的身份验证协议,它允许用户通过单一登录(Single ...

    django3-cas-ng-4.0.0.tar.gz

    为支持django3对django_cas_ng进行修改 **Features** - Support CAS version 1.0, 2.0, 3.0 - Support Single Sign Out - Configuration of services via the django Admin application - Fine control on ...

    django-cas-ng, Django ( 中央身份验证服务) 客户端.zip

    django-cas-ng, Django ( 中央身份验证服务) 客户端 Django CAS django-cas-ng 是中央认证服务( CAS ) 客户端实现。 这里项目继承自 django-cas ( 自从 2013年04月 之后还没有更新过) 。 NG代表"下一代"。 我们的...

    django+cas环境部署

    CAS服务器与Django应用通过特定协议交互,实现用户的统一认证管理。 5. **MySQL数据库**:作为数据存储层,用于保存CAS服务器所需的用户信息等数据。 #### 二、关键技术点解析 ##### 2.1 Django + UWSGI + Nginx ...

    django3-cas-server-3.0.0.tar

    python3接入单点登录必备包

    Python库 | django_cas_server-0.6.2-py2.py3-none-any.whl

    `django_cas_server`是一个基于Python的中央认证服务(CAS)服务器,它允许开发者实现单点登录(Single Sign-On, SSO)功能。SSO是一种用户在一个应用系统中登录后,可以在其他多个相互信任的应用系统中无需再次登录...

    django-cas-ng:Django CAS 1.02.03.0客户端身份验证库,支持Django 2.0、2.1、2.2、3.0和Python 3.5+

    **django-cas-ng** 是一个基于Django框架的CAS(Central Authentication Service)客户端库,用于实现单点登录(Single Sign-On, SSO)功能。它兼容CAS 1.0、2.0和3.0协议,并且针对Django 2.0到3.0版本以及Python ...

    django-mama-cas, Django 中央身份验证服务( CAS ) 单点登录(Single Sign-On) 服务器.zip

    django-mama-cas, Django 中央身份验证服务( CAS ) 单点登录(Single Sign-On) 服务器 MamaCAS MamaCAS是 Django 中央认证服务( CAS ) 单一登录和单一注销服务器。 它实现了 CAS 1.0.2.0和 3.0协议,包括一些可选的...

    详解Django CAS 解决方案

    django-cas-ng被集成到Django项目中,主要通过认证后端和中间件来管理用户的登录状态。 知识点三:django-mama-cas的配置 服务端的配置通过Django的settings.py文件中的INSTALLED_APPS和MAMA_CAS_SERVICES来完成。...

    经过改动的代码django-cas代码

    在Django项目中,这个库通常用于处理用户的认证过程,允许用户通过一个中心化的CAS服务器进行登录,而不需要在每个应用中单独设置认证系统。Django CAS库会处理与CAS服务器的通信,包括票证验证、登录、登出等操作。...

    django-sso:基于django的统一的认证系统

    基于django的单点登录系统实现机制当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校正,如果通过校正,应该返回给用户一个认证的分数...

    django-cas-server:实施CAS协议3.0规范的Django Central Authentication Service服务器

    CAS服务器 CAS Server是实现的Django应用程序。 默认情况下,身份验证过程使用django内部用户,但您可以轻松使用任何源(请参阅auth.py...依存关系django-cas-server取决于以下python软件包: Django> = 1.11 <3.

    详解使用django-mama-cas快速搭建CAS服务的实现

    此外,通过将django-mama-cas与OAuth等技术结合,可以进一步完善统一认证和权限管理,达到优化用户体验和提升开发效率的双重目的。 通过本文的介绍,开发者应该对如何使用django-mama-cas来快速搭建CAS服务有了较为...

    django-mama-cas:Django中央身份验证服务(CAS)单一登录服务器

    妈妈CAS MamaCAS是Django单一登录和单一注销服务器。 它实现了CAS 1.0、2.0和3.0协议,包括一些可选功能。 是单点登录和单注销Web协议,允许用户在一次提供凭据后访问多个应用程序。 它利用安全票证,由服务器生成和...

    Django集成CAS单点登录的方法示例

    选择适用于Django的CAS客户端库`django-cas-ng`,使用命令`pip install django-cas-ng`安装。 **步骤二:配置CAS Client** - **添加应用**:在`settings.py`的`INSTALLED_APPS`中添加`'django_cas_ng'`。 - **配置...

    PyPI 官网下载 | django_cas_dev_server-0.1.2-py2.py3-none-any.whl

    在Python和Django的开发环境中,`django_cas_dev_server`可以帮助开发者快速搭建测试环境,模拟CAS服务器的行为,测试用户的认证流程。这对于需要集成CAS认证的项目尤其有用,因为它允许在没有真实CAS服务器的情况下...

    django-cas:通过CAS服务器进行身份验证

    它允许您在添加对CAS的支持的同时使用Django的内置身份验证机制和用户模型。 它还包括一个中间件,该中间件拦截对原始登录和注销页面的调用,并将其转发到CASified版本,并将CAS支持添加到管理界面。 安装 运行...

Global site tag (gtag.js) - Google Analytics