python django整合cas驗證系統

來源:互聯網
上載者:User
加入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, urlfrom django.contrib import adminfrom 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的地址。 有待繼續驗證哈。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.