python django集成cas验证系统_python教程-查字典教程网
python django集成cas验证系统
python django集成cas验证系统
发布时间:2016-12-28 来源:查字典编辑
摘要:加入cas的好处cas是什么东西就不多说了,简而言之就是单点登陆系统,一处登陆,全网有权限的系统均可以访问.一次登陆,多个系统互通cas一般...

加入cas的好处

cas是什么东西就不多说了,简而言之就是单点登陆系统,一处登陆,全网有权限的系统均可以访问.

一次登陆,多个系统互通

cas一般均放置在内网,加入cas验证则必须要求用户走vpn访问,提高安全性;

cas可和域控等系统结合,密码定时过期;

基本认证统一走cas控制,减去开帐号等麻烦事;

django 如何使用cas验证

django 的好处就是支持的包多,网上已经有大神做好的相关的app,直接下载、安装就可以了。

我们要做的就是下载、解压拷贝,略微配置下就可以跑了。

至于安装也是非常简单的,直接解压之后python setup.py install 就可以了。

官方链接:

django-cas

django-cas 如何配置

配置方法

至于配置,熟悉django的同学也都明白,django 是安装app来划分的,可扩展性非常强。

django-cas也是一个app,所以我们按照app的配置方法就配置就可以了。

* 在MIDDLEWARE_CLASSES 中添加CAS的配置: 'django_cas.middleware.CASMiddleware' * 在AUTHENTICATION_BACKENDS 中添加CAS的配置: 'django_cas.backends.CASBackend' 注意在django1.6 中默认是没有AuthenticationMiddleware 的配置项的,需要手动添加, 并添加该行配置: 'django.contrib.auth.backends.ModelBackend', * 配置CAS_SERVER_URL: 该地址为cas验证服务器的地址,必须配置

完整配置如下

INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ) MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django_cas.middleware.CASMiddleware', 'django.middleware.doc.XViewMiddleware', ) AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', 'django_cas.backends.CASBackend', ) CAS_SERVER_URL = 'http://cas.oxxs.letv.cn:6789/cas/login'

实例

settings.py配置文件

如上配置

views文件

# Create your views here. from django.http import HttpResponse def login(request): if request.user.is_authenticated(): return HttpResponse('login in at port 9000') else: return HttpResponse('not login at port 9000')

没啥可说的,只是简单的检测用户是否登陆,然后打印以行字符串。

urls文件

from django.conf.urls import patterns, include, url from django.contrib import admin from report_system import views admin.autodiscover() urlpatterns = patterns('', # Examples: # url(r'^$', 'report_system.views.home', name='home'), # url(r'^blog/', include('blog.urls')), url(r'^$', views.login), url(r'^login/$', 'django_cas.views.login'), url(r'^logout/$', 'django_cas.views.logout'), url(r'^admin/', include(admin.site.urls)), )

更没有什么东西了,一看都懂的。

测试

我们先登陆下看看:

可以看的很明显在访问我们的服务器之后,由于未登陆,所以接着302跳转到

cas服务器进行校验。

这个图是紧接着上一个图的,在cas服务器校验之后,如果校验通过,则跳转会我们的

服务器地址,这里似乎是默认跳转回到了/,而我们在/对应的views里面打印了两行

字符,看到确实打印了login in ,则表示我们的登陆是成功的!

注销等其他也都类型,不再多说了。

总结

django_cas 总体的来说还是很方便的,可以非常快速的帮我接入cas验证系统,但

目前的配置似乎还是有点问题的,注销之后再次登陆是无法跳转回我们的服务器地址的,

而是跳转回了cas的地址。 有待继续验证哈。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新python学习
    热门python学习
    脚本专栏子分类