内容简介:本文记录在使用Flask开发Web服务时遇到的CAS单点登录的接入问题以及解决方案CAS是一个企业SSO系统,支持CAS/OpenId/Oauth/SAML等协议,用于企业内部Web系统的SSO。Web 认证系统,企业内部passport
本文记录在使用Flask开发Web服务时遇到的CAS单点登录的接入问题以及解决方案
CAS简介
CAS是一个企业SSO系统,支持CAS/OpenId/Oauth/SAML等协议,用于企业内部Web系统的SSO。
CAS是什么
Web 认证系统,企业内部passport
CAS不是什么
- CAS不是session管理,session需要应用自己管理
- 权限管理: CAS不负责应用内部的权限管理。应用需要负责管理哪些用户可以登录,哪些不可以;并且需要负责应用内部权限控制。
概念定义:
- 下游系统: 待接入CAS认证的Web系统,如git, jira,wiki等
相关文档
参考文档: https://apereo.github.io/cas/5.0.x/planning/Architecture.html CAS协议:https://apereo.github.io/cas/5.0.x/protocol/CAS-Protocol.html
官方 Python 实现
第三方CAS client:https://github.com/cameronbwhite/Flask-CAS 客户端示例程序: https://github.com/cas-projects/cas-sample-python-webapp
使用问题:
1、flask_cas在解析sso返回的xml数据的时候,有个bug
.一般的xml解析在解析相同的组数据会有两种情况,只有一条数据的时候返回字符串,多条数据的时候返回数组。但是在下面取验证信息的时候,flask_cas没有对这两种情况同时处理。需要对源码进行修改一下,同时兼容两种数据类型。
最简单的修改方式,在routing.py中的128行
attributes[“cas:memberOf”] = attributes[“cas:memberOf”].lstrip(‘[’).rstrip(‘]’).split(‘,’) 修改为 attributes[“cas:memberOf”] = str(attributes[“cas:memberOf”]).lstrip(‘[’).rstrip(‘]’).split(‘,’)
如果这方法仍然解决不了问题,那么请按照这个 commit 修改
2、遇到KeyError: ‘cas:attributes’报错
原因:使用pip安装flask-CAS时默认安装的时1.0.0,bug在1.0.1版本中被修复
解决:克隆git中的源码手动安装flask-CAS
本文首次发布于ElseF’s Blog, 作者 @stuartlau , 转载请保留原文链接.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 云转码接入视频网站解决方案 express-ffmpeg接入discuz方案
- #研发解决方案#数据移山:接入、迁移、同步一站式
- 酷家乐如何使用 Istio 解决新服务治理系统 (Serverless) 接入已有成熟自研 Java 服务治理体系
- 数据接入治理平台
- 【Netty】如何接入新连接
- 有赞统一接入层架构演进
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
OKR:源于英特尔和谷歌的目标管理利器
(美) 保罗R.尼文(Paul R. Niven)、本•拉莫尔特(Ben Lamorte) / 况阳 / 机械工业出版社 / 2017-8-1 / 59.00元
内在动机驱动,而非绩效考核驱动 尤其适用快速扩张和转型期组织 谷歌、英特尔、领英、推特、星佳等硅谷知名企业成功的法宝 OKR(目标与关键结果法)是一套严密的思考框架和持续的纪律要求,旨在确保员工紧密协作,把精力聚焦在能促进组织成长的、可衡量的贡献上。 如何更好地将OKR集成到企业现有的绩效评估体系中? 如何确保OKR由高管团队来领导,而不仅仅是HR、IT或财务等职能部......一起来看看 《OKR:源于英特尔和谷歌的目标管理利器》 这本书的介绍吧!