单点登陆简介

什么是单点登陆
 单点登陆(Single Sign On)简称sso是目前 比较流行的企业解决方案之一;SSO的定义是在多个应用系统中,用户只需要登陆一次就可以访问所有相互信任的应用系统

较大的企业内部,一般都有很多的业务执行系统为其提供相应的管理和IT服务
    例如:财务系统为财务人员提供的财务管理,计算和报表服务;
       人事系统为人事部门提供全公司人员的维护和服务
       各种业务系统为公司内部不同的业务提供不同的服务等…
  这些系统的目的都是让计算机来进行复杂繁琐的计算工作,来替代人力手工劳动,提高工作效率和质量,这些不同的系统往往是在不同的时期建设起来的,运行子啊不同的平台上;也许是由不同的厂商开发的,使用了各种不同的技术和标准

如果举例说明国内一著名的IT公司(名自隐去)内部共有60多个业务系统,这些系统包括两个不同版本的SAP和ERP系统,12个不同类型和版本的数据库系统,8个不同类型和版本的操作系统,以及3种不同的防火墙技术,还有数十种互相不能兼容协议和标准,你相信吗?不要怀疑,这种情况非常普遍。每一个应用系统在运行了数年以后,都会成为不可替代的企业IT架构的一部分,如选图所示:

在这里插入图片描述
   随着企业的发展,业务系统的数量在不断的增加,老的系统却不能轻易代替,这会带来很多的开销,其一是管理上的开销,需要维护的系统越来越多,很多系统的数据是相互冗余和重复的,数据的不一致性会给管理工作代来很大的压力,业务和业务之间的相关性也越来越大,例如公司的计费系统和财务系统,财务系统和人事系统都是不可避免的,有着密切的关系;
     为了降低管理的消耗,最大限度的重用已有的投资系统,很多企业都在进行着企业应用集成(EAI),企业应用集成可以在不同的层面上进行;例如在数据存储层面上的“数据大集中”,在传输层面上的“通用数据交换平台”,在应用层面的“业务流程整合”,和用户界面上的“通用企业门户”等等。事实上,还有一个层面上的集成变得越来越重要,那就是“身份认证”的整合,也就是单点登录

通常来说,每个单独的系统都有自己的安全体系和身份认证系统,整合以前,进入每个系统都需要进行登陆,这样的局面不仅给管理上带来了很大的困难,在安全方面也埋下了重大的隐患,下面是一些著名公司显示的统计数据:
   用户每天平均16分钟花在身份验证上-资料来源:IDS
   频繁的IT用户平均由21个密码-资料来源:NTA Monitor Password Survey
   49%的人写下了其密码,而67%的人很少改变它们
   每79秒出现一起身份被窃事件-资料来源:National small Business Travel Assoc
   全球诈骗损失每年约12B-资料来源:Comm Fraud Control Assoc
  另外:使用“单点登陆”还是SOA时代的需求之一,在面向服务的架构种,服务和服务之间,程序和程序之间的通讯大量存在,服务之间的安全认证是SOA应用的难点之一,应此建立“单点登陆”的系统体系能够大大简化SOA的安全问题,提高服务之间的合作效率
  
单点登陆的技术实现机制
   单点登陆的机制其实是比较简单的,用一个现实中的例子做比较,颐和园是背景著名的旅游景点,在颐和园内部由许多独立的经典,例如“苏州街”、“佛香阁”和“德和园”,都可以在各个景点门口单独买票,很多游客需要游玩所有景点,这种买票方式很不方便,需要在每个景点门口排队买票,钱包拿进拿出的,容易丢失,很不安全,于是绝大多数游客选择在大门口买一张通票(也叫做套票),就可以玩遍所有的景点而不需要重新在买票,他们只需要在每个景点门口出示一下刚才买的套票就能够被允许进入每个独立的景点

单点登陆的机制也一样:如下图所示,当用户第一次访问系统1的时候,因为没有登陆,会被引导到认证系统中进行登陆(1);根据用户提供的登陆信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据–ticket(2);用户在访问别的应用时候(3,5)就会将则会个ticket嗲上,作为凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,校验ticket的合法性(4,6),如果通过校验,用户就可以在不用登陆的情况下,访问应用系统2和应用系统3了;
在这里插入图片描述

从上面的视图可以看出,要实现SSO,需要以下的重要功能:
  所有应用系统共享一个身份认证系统
  统一的认证系统是SSO的前提之一,认证系统主要是将用户的登陆和用户信息相比较,对用户进行登陆认证;认证成功之后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行校验,判断其有效性
  所有应用系统能够识别和提权ticket信息
  要实现SSO的功能,让用户只登陆一次,就必须让应用系统能够识别已经登陆过的用户,应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登陆过,从而完成单点登陆的功能

猜你喜欢

转载自blog.csdn.net/x15011238662/article/details/85229799