详解使用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 相关文章推荐
pygame学习笔记(1):矩形、圆型画图实例
Apr 15 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
神经网络python源码分享
Dec 15 Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 Python
彻彻底底地理解Python中的编码问题
Oct 15 Python
Python读取excel指定列生成指定sql脚本的方法
Nov 28 Python
Python实现Event回调机制的方法
Feb 13 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
Jun 04 Python
python中的反斜杠问题深入讲解
Aug 12 Python
numpy 声明空数组详解
Dec 05 Python
python DataFrame转dict字典过程详解
Dec 26 Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 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/03 咖啡文化
模拟flock实现文件锁定
2007/02/14 PHP
PHP控制网页过期时间的代码
2008/09/28 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
jquery用offset()方法获得元素的xy坐标
2014/09/06 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
浅析Vue自定义组件的v-model
2017/11/26 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
基于vue.js实现分页查询功能
2018/12/29 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
[13:39]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第一场
2014/05/26 DOTA
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
python中sets模块的用法实例
2014/09/30 Python
python 换位密码算法的实例详解
2017/07/19 Python
python实现图片插入文字
2019/11/26 Python
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
ProBikeKit新西兰:自行车套件,跑步和铁人三项装备
2017/04/05 全球购物
JAVA代码查错题
2014/10/10 面试题
土木工程毕业生自荐信
2013/11/12 职场文书
自主招生自荐信指南
2014/02/04 职场文书
渡河少年教学反思
2014/02/12 职场文书
员工2014年度工作总结
2014/12/09 职场文书
发布会邀请函
2015/01/31 职场文书
蜗居观后感
2015/06/11 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
导游词之珠海轮廓
2019/10/25 职场文书
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android