详解使用django-mama-cas快速搭建CAS服务的实现


Posted in Python onOctober 30, 2019

当公司有多条产品线,或者有多个不同的应用的时候,每次都做登录是个非常烦人的事情。(原谅我没有从SSO的角度看这个问题。。对我来说能偷懒少写点东西最实在)。为什么需要每次都做个登录?做登录就意味着我的系统还得要有用户、角色、菜单管理,天啊!RBAC又来了(摊手)。

当我新做一个应用的时候,我最希望的就是这些东西都是现有的,接入一下就可以用了,一方面来说省事,另外一方面来说,也节省测试的时间。从服务的角度来看,认证这种动作也应该被划分到一个具体的服务里面去。

为什么没有用Jasig

无论是OSC还是Github里面,基于Jasig的实现还是非常多的,不过Jasig也太多配置项了。。看着头晕。大周末的时间不适合想那么复杂的事情。。然后翻到了django-cas这个系列的项目,不过django-cas这个项目早就停更了,另外还有django-mama-cas和django-cas-ng,试了下django-cas-ng。。文档不全,看着比较累(周末的时候脑袋发挥不了全部状态。。。。),django-mama-cas这个项目倒是挺不错的,文档全,配置容易。一下就搞出来了(不过API上面还不是非常全,比起其他来说还是好很多的啦)

安装django-mama-cas

pip install django-mama-cas

更新配置

INSTALLED_APPS = (
  # ...existing apps...
  'mama_cas',
)

更新路由

urlpatterns = [
  # ...existing urls...
  url(r'^cas/', include('mama_cas.urls')),
]

添加回调,这里使用内置的,也可以自己扩展。回调主要是登录后可以用ticket过来换用户的其他信息

MAMA_CAS_SERVICES = [
  {
    'SERVICE': 'http://127.0.0.1:8000',
    'CALLBACKS': [
      'mama_cas.callbacks.user_model_attributes',
    ],
  },
]

好啦~到此该配置的都配好了。然后就可以使用了,这个app最主要的api有2个

http://127.0.0.1:8000/cas/login?service=http://127.0.0.1:8000/admin

详解使用django-mama-cas快速搭建CAS服务的实现

这个是用于登录的,service就是认证后要帮你回调到哪,回调过去之后有个Ticket的,自己存起来

Ticket拿到之后就可以过来换用户信息了,用户的信息都取得到,然后自行放到session里面就完事。

小结

Django-mama-cas这个项目还是非常简单易用的,下次把Oauth配合一下就可以很方便的把统一认证和RBAC的事情都在这个服务搞定了,这种功能每次都写还真是很烦人的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python多线程http下载实现示例
Dec 30 Python
详解Python中的条件判断语句
May 14 Python
python实现用于测试网站访问速率的方法
May 26 Python
python友情链接检查方法
Jul 08 Python
Python使用tablib生成excel文件的简单实现方法
Mar 16 Python
Python实现矩阵加法和乘法的方法分析
Dec 19 Python
Python使用matplotlib实现基础绘图功能示例
Jul 03 Python
Python 获取项目根路径的代码
Sep 27 Python
使用pandas的box_plot去除异常值
Dec 10 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
Feb 05 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
Jun 02 Python
Python requests接口测试实现代码
Sep 08 Python
Django实现CAS+OAuth2的方法示例
Oct 30 #Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
Oct 30 #Python
Python使用Opencv实现图像特征检测与匹配的方法
Oct 30 #Python
Python OpenCV图像指定区域裁剪的实现
Oct 30 #Python
使用Python刷淘宝喵币(低阶入门版)
Oct 30 #Python
Python自动化完成tb喵币任务的操作方法
Oct 30 #Python
Flask框架 CSRF 保护实现方法详解
Oct 30 #Python
You might like
提问的智慧
2006/10/09 PHP
php垃圾代码优化操作代码
2010/08/05 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
python实现美团订单推送到测试环境,提供便利操作示例
2019/08/09 Python
Python代码需要缩进吗
2020/07/01 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
Myholidays美国:在线旅游网站
2019/08/16 全球购物
英国景点门票网站:attractiontix
2019/08/27 全球购物
企划经理的岗位职责
2013/11/17 职场文书
个人自我评价和职业目标
2014/01/24 职场文书
老公给老婆的保证书
2014/04/28 职场文书
初级党校心得体会
2014/09/11 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
水电工程师岗位职责
2015/02/13 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
小学感恩节活动总结
2015/03/24 职场文书
小学总务工作总结
2015/08/13 职场文书
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸