python3版本中Django-2.1.3+Django-cas-ng-3.6.0 實現單點登錄


由於很多業務需要人員登錄之后才可以進行對應的操作,不同的操作對應着不同的權限,登錄需要通過域賬戶等方式登錄,因此需要通過單點登錄來實現第一步登錄權限的控制,

在早期曾配置過 Django-1.11 + Django-cas_ng_3.5.9 的單點配置,發現和Django-2.1.3+Django-cas-ng-3.6.0 實現單點登錄配置還是有較大的區別,因此在這里做下記錄,方便以后的查閱。

 

這里默認跳過模塊安裝的步驟,直接記錄相關的配置信息:

 關於項目 urls.py 的配置

 1 from django.contrib import admin
 2 from django.urls import path, include
 3 from django_cas_ng.views import *
 4 
 5 login_view = LoginView()
 6 logout_view = LogoutView()
 7 callback_view = CallbackView()
 8 login = login_view.get
 9 logout = login_view.get
10 callback = callback_view.get
11 
12 urlpatterns = [
13     #--------------------------django_cas login----------------------------#
14     path('accounts/login/', login, name='cas_ng_login'),
15     path('accounts/logout/', logout, name='cas_ng_logout'),
16     path('accounts/callback/', callback, name='cas_ng_callback'),
17     #---------------------------------------------------------------------#
18     path('admin/', admin.site.urls)
19     path('autovm/', include('AutoVM.urls.view_urls', namespace='autovm'))
20 ]

因為 Django-cas-ng 3.6.0 版本之后,login,logout 都被封裝到了類中,所以調用方式也有所區別了。

如果存在ssl 認證錯誤,可以添加證書認證,或者修改django源碼關閉認證

我這邊是通過關閉認證來實現

主要修改文件: adapters.py ,在第394行 send 函數下 添加

# close verify

verify = False

關於settings.py 的配置

 1 MIDDLEWARE = [
 2     '...',
 3     'django_cas_ng.middleware.CASMiddleware',
 4 ]
 5 
 6 INSTALLED_APPS = [
 7     '...',
 8     'django_cas_ng',
 9 ]
10 
11 # -----django_cas configuration, need to install django_cas in python before -------#
12 AUTHENTICATION_BACKENDS = (
13     'django.contrib.auth.backends.ModelBackend',
14     'django_cas_ng.backends.CASBackend',
15 )
16 
17 # sso url
18 CAS_SERVR_URL = "https://sso.ex.com"
19 CAS_REDIRECT_URL = "/"

settings 配置中主要記錄的是 單點登錄相關的配置,僅供參考。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM