详解使用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使用urlparse分析网址中域名的方法
Apr 15 Python
在Python中操作时间之strptime()方法的使用
Dec 30 Python
Python MySQL数据库连接池组件pymysqlpool详解
Jul 07 Python
python自动截取需要区域,进行图像识别的方法
May 17 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
处理python中多线程与多进程中的数据共享问题
Jul 28 Python
Django发送邮件功能实例详解
Sep 02 Python
Python面向对象原理与基础语法详解
Jan 02 Python
基于Python3读写INI配置文件过程解析
Jul 23 Python
如何使用scrapy中的ItemLoader提取数据
Sep 30 Python
python lambda的使用详解
Feb 26 Python
Python函数对象与闭包函数
Apr 13 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静态方法与非静态方法的用法区别
2016/05/17 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
form自动提交实例讲解
2017/07/10 PHP
php输出形式实例整理
2020/05/05 PHP
jQuery的deferred对象使用详解
2011/08/20 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
2017/10/25 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
python切换hosts文件代码示例
2013/12/31 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
详解【python】str与json类型转换
2019/04/29 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
python检测服务器端口代码实例
2019/08/31 Python
python datetime处理时间小结
2020/04/16 Python
python 实现任务管理清单案例
2020/04/25 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
PyTorch的torch.cat用法
2020/06/28 Python
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
意大利婴儿产品网上商店:Mukako
2018/10/14 全球购物
解释下面关于J2EE的名词
2013/11/15 面试题
怎样写好自荐信和推荐信
2013/12/26 职场文书
领导干部考察材料
2014/02/08 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书
交通局领导班子群众路线教育实践活动对照检查材料思想汇报
2014/10/09 职场文书
车间统计员岗位职责
2015/04/14 职场文书
2019年预备党员的思想汇报:加深对党的认知
2019/09/25 职场文书
Java Socket实现多人聊天系统
2021/07/15 Java/Android
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP