详解使用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转换摩斯密码示例
Feb 16 Python
Python性能优化技巧
Mar 09 Python
Python对象属性自动更新操作示例
Jun 15 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
python2.7 安装pip的方法步骤(管用)
May 05 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
pytorch中的自定义数据处理详解
Jan 06 Python
Python tkinter模版代码实例
Feb 05 Python
Python图像处理库PIL的ImageFilter模块使用介绍
Feb 26 Python
基于Python的一个自动录入表格的小程序
Aug 05 Python
python链表类中获取元素实例方法
Feb 23 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
Yii中创建自己的Widget实例
2016/01/05 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
javascript数组操作方法小结和3个属性详细介绍
2014/07/05 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
Tensorflow 模型转换 .pb convert to .lite实例
2020/02/12 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
2020/03/06 Python
pandas中ix的使用详细讲解
2020/03/09 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
Django自带的用户验证系统实现
2020/12/18 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
资产经营总监岗位职责范文
2013/12/01 职场文书
工程开工庆典邀请函
2014/02/01 职场文书
美国探亲签证邀请信
2014/02/05 职场文书
2014年元旦活动方案
2014/02/15 职场文书
法人委托书的范本格式
2014/09/11 职场文书
2014年班组工作总结
2014/11/20 职场文书
担保书范本
2015/01/20 职场文书
高中社区服务活动报告
2015/02/05 职场文书
家长意见书
2015/06/04 职场文书
股权投资协议书
2016/03/23 职场文书
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android
SQL之各种join小结详细讲解
2021/08/04 MySQL