接触单点登录10几年了
接触单点登录已经有10多年了,从自己写代码开发单点登录系统,到后来逐渐的直接使用开源CAS做解决方案。##
自己开发的单点登录
自己开发过两套单点登录系统;
第一套是使用petstore+EJB开发的,为母公司的集团营销一体化项目使用的,接入的系统就3个,都是营销系统。运行了两年,正好赶上公司整合全集团互联网项目整合的时机。考虑到这套单点系统对集群支持较差,无法满足以后的用户量,所以还是由我操刀,写了第二套单点登录方案,内部命名为CAS2。(但此cas非yale cas)
在2007年,使用了当时流行的Struts1+Spring+Hibenate2 开发的,就我一个人开发3个月,测试上线替换了原来的PetStrore的版本。这个版本运行至今,10几年过去了,系统还算运行稳定。几年前,我离开了这家公司,当时接入的系统有30-40个左右,接入的war超百个了,每秒平均大概20个请求,一天大概在30多万请求,使用了2台刀片4个服务做集群,性能还是很好的;由于完全自研项目,系统的扩展性很强,只可惜这个架构现在看来太老,没多少人会Struts1了,要去修改这个源码还是很吃力的,还有太多系统接入了,除了我,没人敢随便修改代码了。
据说公司内部在启动新的SSO项目,要替换这套方案了。
当时除了SSO外,我还周边开发了统一用户权限管理系统,和系统框架,实现的是统一登录方案。现在看来是很Low的东西在10几年前还是满前沿,我给整体方案还提交了专利。
接触Yale CAS
离开去了新的公司,这是家集团总部,整个集团SSO升级的工作交由我负责。
当时有3个方案,
方案1 当然还可以选择商业产品
方案2 自己新开发一套SSO系统
方案3 选择开源的SSO产品,二次开发
我一直认为,方案1)商业产品有太多的不确定性,而且大型集团企业的需求有些很独特,不是标准功能。很多商业公司不太愿意在自己的标准产品上添加非标功能,这对他们没有太多利润,而且日后运维成本太高。
方案2)自建SSO当然好,但是我现在处的是集团IT部,没有代码开发人员,不适合自研。
所以,最终是采用了方案3),在开源SSO的产品上,选择二次开发,成本又低,实现起来又快又稳;如果自己没有时间,也可以找商业公司来二次开发,成本也低,别的公司也愿意接单。
就这样,最后敲定的方案是开源产品,自己动手二次开发。
采用开源产品,是行业内常用的Yale CAS,因为用的公司多,现在很多国内的厂商的产品都自带了CAS的接入集成,只要配置下无需改代码就能接入CAS,这个为以后采购其他软件集成是非常有好处的。哪怕是以后新采购的软件不支持CAS接入,也可以让开发商加入这个功能,对他们而言,这个是可以作为标准功能集成进去的,扩充他们的功能。相对来说,他们的二次开发费用也可以得到分摊,不用我们全额支付。
结果
就这样,10多年的单点登录和统一登录的经历,时间很长,历程很简单。
一路走来,看到很多学到很多。
另外,大家对CAS想了解的话,可以来我的CAS中文文档站点(http://www.cassso-china.cn)来瞅瞅。