详解使用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查找指定具有相同内容文件的方法
Jun 28 Python
用Python写冒泡排序代码
Apr 12 Python
Python将图片批量从png格式转换至WebP格式
Aug 22 Python
浅谈python中的正则表达式(re模块)
Oct 17 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
python3发送邮件需要经过代理服务器的示例代码
Jul 25 Python
PyTorch 对应点相乘、矩阵相乘实例
Dec 27 Python
PyTorch 解决Dataset和Dataloader遇到的问题
Jan 08 Python
python实现在内存中读写str和二进制数据代码
Apr 24 Python
python 实现两个线程交替执行
May 02 Python
python3通过qq邮箱发送邮件以及附件
May 20 Python
在终端启动Python时报错的解决方案
Nov 20 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
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
tp5修改(实现即点即改)
2019/10/18 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
vue select选择框数据变化监听方法
2018/08/24 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
web.py获取上传文件名的正确方法
2014/08/26 Python
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
Python实现的简单计算器功能详解
2018/08/25 Python
Python饼状图的绘制实例
2019/01/15 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
2019/08/28 Python
python实现简单的购物程序代码实例
2020/03/03 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
高中自我评价分享
2013/12/05 职场文书
服装创业计划书范文
2014/02/05 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
幸福家庭标语
2014/06/27 职场文书
社会工作专业求职信
2014/07/15 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书
vue前端工程的搭建
2021/03/31 Vue.js
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers