Originated from:html
http://blog.sina.com.cn/s/blog_737b50360101dlmz.htmlweb
简介: SSO涉及的领域大体上能够分为三种:社会性网站间的SSO、部门级SSO、企业级SSO。企业级SSO是三者中最复杂的领域, 从技术架构层面,SSO主要能够分为集中验证模式和多点验证模式两种不一样的架构。编程
SSO,单一登陆(single sign-on),意思是指在多套系统并存的环境下,用户只需登陆一次便可访问其余受权的系统。windows
提起SSO(单一登陆),大概企业里的IT人员无人不知,但真正意识到其复杂度的,未必有多少,只有亲身实施过的技术人员,也许才明白个中玄妙。本文基于蓝凌为国内几十家大中型企业的服务案例,针对SSO的相关技术和案例进行一些探讨,但愿能帮助到企业IT人员更深入理解SSO技术及其应用。跨域
1、企业级SSO安全
SSO涉及的领域大体上能够分为三种:社会性网站间的SSO、部门级SSO、企业级SSO。服务器
社会性网站间的SSO主要涉及的账号信息开放性问题,可否实施成功主要取决于各大网站账号管理是否遵循相同的标准协议,如Openid、Passport等。网络
部门级SSO比较简单,通常涉及的系统很少,由技术人员经过编程方式实现便可,但一旦牵涉系统众多,安全性要求高的状况,就不适用了。架构
企业级SSO是三者中最复杂的领域,因涉及的系统可能五花八门,这些系统也许是老旧的C/S结构系统、多是某种大型软件系统(如SAP),还多是某种非web登陆方式(如windows域登陆);其安全性要求也远比前二者高,如要求同享登陆有效时间等,所以企业级SSO在技术难度上是最高的,但也所以是IT人员最愿意钻研的领域。而绝大部分国内企业,其内部系统经常由于历史缘由致使多套系统缺少统一规划,缺少标准而致使整合代价高昂。所以SSO也是许多大中型企业IT部门比较头疼的事情。工具
本文主要讨论的领域,就是企业级SSO。
2、深刻企业级SSO
SSO是一把双刃剑:SSO能够简化用户登陆过程,提高用户的登陆体验;同时能够下降IT管理员大量帐户和密码维护成本;SSO还提供了符合萨班斯法案的密码集中管理工具;但SSO同时也产生了一种安全风险,某一系统用户身份一旦被攻破,则意味着全部参与SSO网络的应用系统也被穿透。所以须要慎重考虑SSO的范围及安全级别的局限性。
SSO涉及不一样层面的需求:SSO的实质是多套系统可否识别同一用户的身份,并在各套系统间实时同步用户身份信息,以支持各套系统进行用户权限控制。基于这样的缘由,一套SSO技术至少应该考虑一下四个层面的需求:
一、 单点登陆,多点便可同时登陆;
二、 单点注销(退出登陆),多点便可同时注销;
三、 单点切换用户,多点便可同时切换;
四、 单点登陆过时,多点同时过时。
以下图:
现实环境中,一个最佳的SSO环境(整合代价最小)应该是:
一、一个用户在不一样系统只有一个共同登陆名和密码
二、各套应用系统共享一套用户名和密码信息
三、应用系统采用相同的技术架构且域名后缀相同
而一个最坏的SSO环境(整合代价最大)会体现为:
一、一个用户在不一样系统有不一样的登陆名和密码
二、不一样的应用系统各自存储了独立的用户名和密码
三、 应用系统采用不一样的技术架构且域名后缀不一样,甚至只有IP而无域名。
从咱们的实操经验来看,可以提供最佳SSO环境的企业,在国内几乎百里挑一,这样的企业必须是很是具备IT战略眼光且IT系统选型很是精准,企业历任IT领导间保持了高度的传承共识、IT规划细致到位才可能作到;而最坏或接近最坏的SSO环境却比比皆是。
幸运的是,即使是最坏的SSO环境,也仍是有相应的技术解决方案来支持整合的。
3、SSO的两种架构与三种实现技术
从应用架构层面,SSO主要能够分为集中验证模式和多点验证模式两种不一样的架构。
相对与多点验证模式来讲,集中验证模式的适用范围更广,并且在SSO服务器中使用的是统一的用户名密码,用户无需关注登陆的是哪套系统的帐套,因此用户体验更加优秀。因为全部的登陆都放在了统一的服务器,因此当集中验证服务器宕机时,全部系统没法正常登陆,或丢失SSO的功能,建议以独立服务器做为集中验证服务器,并须要保证登陆服务器的稳定性。
在多点验证模式的模式下,全部的登陆操做都在应用系统完成,任何一套系统宕机不会对其它系统产生影响,也不会影响正常运行系统间的SSO。但若各套系统的帐套不同的时候,若要用户区分每套系统的用户密码,一定会下降用户的体验,为了解决该问题,多点登陆模式最好有统一的用户密码验证的服务(如LDAP身份验证)。另外,多点登陆模式相对集中验证模式来讲会存在更多的技术限制,详见后面的章节。
从SSO在技术实现的角度,SSO的实现一般有如下三种技术实现途径:代理登陆(agent)、令牌环(token)、身份票据(ticket)。
代理登陆的优势就是无需对原有系统作任何改造,适用于没法改造的旧系统;
其缺点很明显:
一、稳定性差,一旦登陆期间某台服务器没法响应,则该服务器没法单点登陆。
二、安全性差,用户名密码经过明文传输。
三、因为登陆期间须要监控各个系统的响应,因此不建议大量使用,不然会影响登陆的性能。
四、因为IE的安全限制,代理登陆必须在同域的状况下运行。
令牌环的方式最大好处在于无需统一的验证服务器,是“多点验证模式”的主力实现技术,各个服务器都经过统一的密钥对令牌进行加密解密,因此该方式具备安全性高、稳定性好、性能消耗低等优势;其缺点就是必须保证各台应用服务器同域。
身份票据的方式,是适用范围最广的一种SSO实现方式,能够解决跨域等问题,安全性高、稳定性好;其缺点就是必须增长一台验证服务器,保证在高压下验证服务器的稳定运行,性能方面因为每次登陆都须要访问验证服务器,因此比令牌环的方式略差一点。
三种技术实现途径的比较
比较项 |
代理登陆 |
令牌环 |
身份票据 |
需求实现程度 |
没法实现同时切换用户与会话同时过时 |
所有 |
所有 |
对原系统改造 |
无 |
小量改造 |
小量改造 |
安全性 |
低 |
高 |
高 |
稳定性 |
偏低 |
好 |
好 |
性能开销 |
登陆瞬间压力大一点 |
很是小 |
较小 |
适用范围 |
同域,对用户密码不一致的系统,需在登陆服务器的用户凭证库保存用户密码映射 |
同域,对不一样登陆名需增长对用户凭证库的访问 |
全部可改造的系统,对不一样登陆名需在登陆服务器的用户凭证库保存用户映射 |
独立验证服务器 |
须要 |
不须要 |
须要 |
登陆模式支持 |
集中验证模式 |
集中验证模式/多点验证模式 |
集中验证模式 |
4、 蓝凌EKP 产品SSO解决方案
从蓝凌实施过的数十个SSO整合案例获得的经验来看,单一的SSO技术和架构不可能完全解决全部SSO问题,蓝凌EKP产品提供的SSO解决方案中,提供了混合实现途径,能够根据客户的实际状况进行灵活地组合,并提供足够的扩展接口。EKP SSO组件包含一个服务器和多个内置客户端产品包:
EKP SSO Server:基于CAS内核,并在上面增长了许多扩展,具备简单易用(经过配置完成大部分SSO需求)、扩展性强、应用范围广、安全、稳定等特色。
一、支持多种帐户存储方式
二、支持一个用户多套账号密码
三、支持前述三种主要身份认证技术
四、支持灵活扩展
EKP SSO Client:客户端组件是为了减小各应用系统的改造工做量设计的,针对不一样的开发语言有不一样客户端提供调用。
EKP的系列产品(EKP-D、EKP-N、EKP-J、EKP-Portal)已经内置了EKP SSO Client
客户端的支持:
在本SSO方案中,整合了IBM Websphere Portal、蓝凌Domino和Java系列的产品、Coremail以及内部的全部应用系统的SSO。采用了IBM的TDS做为目录服务,进行用户名密码的验证;使用了蓝凌的UIM系统,对用户进行维护,映射各套应用系统之间的用户凭证;经过蓝凌的SSO服务器,简化了全部系统的登陆验证操做;大部分的客户端与SSO服务器之间采用了性能消耗最小的令牌环技术进行用户身份的传递。
6、建议
好的SSO规划能够帮助企业以最小的整合代价、最佳的维护成本得到最优的用户登陆体验。
在蓝凌所实施的项目中,规划和整合一般都是一体实施的。即经过帮助客户进行典型系统的SSO整合,同时基于企业特色帮助客户制订一套可适应将来的SSO规范,这样的动做,一般会包括在企业门户整合项目或IT规划项目中,做为一个关键组成部分进行实施。
咱们期待有更多的企业提前认识到企业SSO规划的重要性。