详解使用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中dictionary items()系列函数的用法实例
Aug 21 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
利用 Monkey 命令操作屏幕快速滑动
Dec 07 Python
Python2和Python3中print的用法示例总结
Oct 25 Python
TensorFlow在MAC环境下的安装及环境搭建
Nov 14 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
May 26 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
Python closure闭包解释及其注意点详解
Aug 28 Python
python中的逆序遍历实例
Dec 25 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
Mar 23 Python
k-means & DBSCAN 总结
Apr 27 Python
python实现三次密码验证的示例
Apr 29 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
改造一台复古桌面收音机
2021/03/02 无线电
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
php定时执行任务设置详解
2015/02/06 PHP
PHP可变变量学习小结
2015/11/29 PHP
php的laravel框架快速集成微信登录的方法
2016/12/12 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
node.js入门实例helloworld详解
2015/12/23 Javascript
静态页面html中跳转传值的JS处理技巧
2016/06/22 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
Python获取apk文件URL地址实例
2013/11/01 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
python实现FTP服务器服务的方法
2017/04/11 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
2019/05/23 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
django的auth认证,authenticate和装饰器功能详解
2019/07/25 Python
下载官网python并安装的步骤详解
2019/10/12 Python
Python文件操作函数用法实例详解
2019/12/24 Python
酒店经理职责
2014/01/30 职场文书
院领导写的就业推荐信
2014/03/09 职场文书
投标服务承诺书
2014/05/28 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android
springboot读取nacos配置文件
2022/05/20 Java/Android