详解使用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如何实现内容写在图片上
Mar 23 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
Apr 23 Python
Python实现的求解最大公约数算法示例
May 03 Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
Jun 11 Python
Python线程协作threading.Condition实现过程解析
Mar 12 Python
python实现二分类和多分类的ROC曲线教程
Jun 15 Python
通过自学python能找到工作吗
Jun 21 Python
pandas针对excel处理的实现
Jan 15 Python
python re模块和正则表达式
Mar 24 Python
用Python将库打包发布到pypi
Apr 13 Python
深入浅析Django MTV模式
Sep 04 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代码
2006/12/06 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
单台服务器的PHP进程之间实现共享内存的方法
2014/06/13 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
jQuery Masonry瀑布流插件使用详解
2014/11/17 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
jQuery中on()方法用法实例详解
2015/02/06 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
angularJS开发注意事项
2018/05/26 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
js实现网页随机验证码
2020/10/19 Javascript
python统计cpu利用率的方法
2015/06/02 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
HTML5之SVG 2D入门3—文本与图像及渲染文本介绍
2013/01/30 HTML / CSS
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
美术毕业生求职信
2014/02/25 职场文书
毕业论文致谢词
2015/05/14 职场文书
pytorch 权重weight 与 梯度grad 可视化操作
2021/06/05 Python
opencv用VS2013调试时用Image Watch插件查看图片
2021/07/26 Python
python blinker 信号库
2022/05/04 Python