加入cas的好處
cas是什么東西就不多說了,簡而言之就是單點登陸系統(tǒng),一處登陸,全網(wǎng)有權限的系統(tǒng)均可以訪問.
一次登陸,多個系統(tǒng)互通
cas一般均放置在內網(wǎng),加入cas驗證則必須要求用戶走vpn訪問,提高安全性;
cas可和域控等系統(tǒng)結合,密碼定時過期;
基本認證統(tǒng)一走cas控制,減去開帳號等麻煩事;
django 如何使用cas驗證
django 的好處就是支持的包多,網(wǎng)上已經(jīng)有大神做好的相關的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驗證系統(tǒng),但
目前的配置似乎還是有點問題的,注銷之后再次登陸是無法跳轉回我們的服務器地址的,
而是跳轉回了cas的地址。 有待繼續(xù)驗證哈。
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

