详解使用django-mama-cas快速搭建CAS服务的实现
当公司有多条产品线,或者有多个不同的应用的时候,每次都做登录是个非常烦人的事情。(原谅我没有从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
这个是用于登录的,service就是认证后要帮你回调到哪,回调过去之后有个Ticket的,自己存起来
Ticket拿到之后就可以过来换用户信息了,用户的信息都取得到,然后自行放到session里面就完事。
小结
Django-mama-cas这个项目还是非常简单易用的,下次把Oauth配合一下就可以很方便的把统一认证和RBAC的事情都在这个服务搞定了,这种功能每次都写还真是很烦人的
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
- 使用Django REST Framework来快速实现API调用服务——上篇(运行环境和模型层)
- 使用Django REST Framework来快速实现API调用服务——下篇(编写API服务)
- 分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法
- sae-django 使用storage服务实现文件上传保存
- 使用Docker搭建consul集群+registrator实现服务自动注册。
- “云中论道”之——使用开源技术和Azure公有云服务快速搭建云端IoT解决方案(下)
- CentOS6.5环境使用keepalived实现nginx服务的高可用性及配置详解
- SPRING BOOT快速搭建WEB应用教程(三)—使用DEVTOOLS实现热部署
- 使用Docker快速搭建sftp服务
- Linux + Nginx + Uwsgi + Django 搭建单服务实现多域名访问
- Django使用中间键实现csrf认证详解
- 【初码干货】使用阿里云开放搜索服务快速搭建资源搜索网站
- 搭建DHCP服务实现动态分配IP地址【详解】
- 使用Django框架实现游戏站点搭建
- iOS同一项目多个Target的快速实现方法 - 两种使用场景详解
- 使用Django快速搭建简易博客
- 使用python实现快速搭建简易的FTP服务器
- 在WebStorm中使用nodejs快速搭建服务连接mysql数据库不太完整的教程
- 使用Solr快速实现Django的全文搜索[转]
- 搭建rtmp直播流服务之2:使用java实现ffmpeg命令接口化调用(用java执行ffmpeg命令)