详解使用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下载FTP上的文件夹的实现代码
Feb 10 Python
Python标准库内置函数complex介绍
Nov 25 Python
Python中用memcached来减少数据库查询次数的教程
Apr 07 Python
代码分析Python地图坐标转换
Feb 08 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
Django中create和save方法的不同
Aug 13 Python
自适应线性神经网络Adaline的python实现详解
Sep 30 Python
Django单元测试中Fixtures的使用方法
Feb 26 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
如何在Windows中安装多个python解释器
Jun 16 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
Aug 07 Python
python基于opencv实现人脸识别
Jan 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缩小png图片不损失透明色的解决方法
2013/12/25 PHP
php中数字0和空值的区别分析
2014/06/05 PHP
通过实例解析PHP数据类型转换方法
2020/07/11 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
ES6中Proxy代理用法实例浅析
2017/04/06 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
JS实现分页导航效果
2020/02/19 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
用python实现面向对像的ASP程序实例
2014/11/10 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
python 实现调用子文件下的模块方法
2018/12/07 Python
Python装饰器语法糖
2019/01/02 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
python 变量初始化空列表的例子
2019/11/28 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
如何使用python切换hosts文件
2020/04/29 Python
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
学生实习自我鉴定
2013/10/11 职场文书
演讲比赛获奖感言
2014/02/02 职场文书
大学生简短的自我评价分享
2014/02/20 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
暂住证明怎么写
2015/06/19 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技