由于很多业务需要人员登录之后才可以进行对应的操作,不同的操作对应着不同的权限,登录需要通过域账户等方式登录,因此需要通过单点登录来实现第一步登录权限的控制,
在早期曾配置过 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 配置中主要记录的是 单点登录相关的配置,仅供参考。