【转】单点登录

概述:
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。   通常情况下运维内控审计系统、4A系统或者都包含此项功能,目的是简化账号登陆过程并保护账号和密码安全,对账号进行统一管理。   企业应用集成(EAI, Enterprise Application Integration)。企业应用集成可以在不同层面上进行:例如在数据存储层面上的“数据大集中”,在传输层面上的“通用数据交换平台”,在应用层面 上的“业务流程整合”,和用户界面上的“通用企业门户”等等。事实上,还有一个层面上的集成变得越来越重要,那就是“身份认证”的整合,也就是“单点登 录”。   在信息安全管理中,访问控制(Access Controls)环绕四个过 程:Identification;Authentication;Authorization;Accountability。单点登录(Single Sign On)属于Authorization授权系统,除单点登录外还包括:Lightweight Directory Access Protocol 和 Authorization ticket。(Michael E. Whitman (2011) Management Of Information Security Kennesaw University)
技术实现机制:
当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该 返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把 ticket送到认证系统进行效验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。
技术实现:
以金万维单点登录为例:
  如图所示:统一的身份认证系统主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录 认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行效验,判断其有效性。整个系统 可以存在两个以上的认证服务器,这些服务器甚至可以是不同的产品。认证服务器之间要通过标准的通讯协议,互相交换认证信息,就能完成更高级别的单点登录。
应用优势:
单点登录:用户只需登录一次,即可通过单点登录系统(eTrueSSO)访问后台的多个 应用系统,二次登陆时无需重新输入用户名和密码   C/S单点登录解决方案:无需修改任何现有的应用系统服务端和客户端即可实现C/S单点登录系统   即装即用:通过简单的配置,无须用户修改任何现有B/S、C/S应用系统即可使用   应用灵活性:内嵌金万维动态域名解析系统(gnHost),可独立实施,也可结合金万维异速联/天联产品使用   基于角色访问控制:根据用户的角色和URL实现访问控制功能

全面的日志审计:精确地记录用户的日志,可按日期、地址、用户、资源等信息对日志进行查询、统计和分析   集群:通过集群功能,实现多台服务器之间的动态负载均衡   传输加密:支持多种对称和非对称加密算法,保证用户信息在传输过程中不被窃取和篡改   可扩展性:对后续的业务系统扩充和扩展有良好的兼容性
存在的问题与需求:
奇正藏药集团公司坐落于兰州,在西藏、北京、上海等地拥有多个分子公司,并在全国各大城市设有办事处,随着业务的快速发展与壮大,集团公司已经意识到信息 化是实现企业终极目标的重要手段,自2000年开始,公司先后实施了ERP、BPM、HR、EIP、企业邮局、腾讯通平台、OA、财务等多套管理系统,实 现公司各项业务流程及管理流程的信息化、自动化。然而,随着业务数量的不断增加,各系统之间互不兼容造成的信息共享性差、需要记忆多套密码、客户端维护成 本高等问题日益凸显,一些花巨资购买并实施数月的系统运用效果远不如预期理想。   为了确保业务的高效运行与管理的高效执行,企业急需优化信息化方案:   第一, 如何实现公司各种业务流程及信息资源的全面整合?   第二, 如何简化各种信息系统的使用方式,降低使用成本?   第三, 如何降低信息系统维护与管理成本?
解决方案:
实现资源整合:   为了解决第一个问题,即实现各信息系统之间的全面整合,集团公司引进了企业信息门户 (EIP),即将各种应用系统(诸如ERP、BPM、HR、OA、企业邮局等)、数据资源和互联网资源统一集到企业信息门户之下,根据每个用户使用特点和 角色的不同,形成个性化的应用界面,并通过对事件和消息的处理、传输把用户有机地联系在一起。   简化系统应用:   在实施EIP的过程中,集团公司使用金万维单点登录eTureSSO解决用户需要记录多个系统账号的问题,用户只需要在第一次访问信息系统时,输入用户名与密码,以后再访问同一个系统资源时,无需再次输入,由单点登录系统自动登录。   
降低信息维护成本:   金万维异速联(E-SoonLink)实现C/S分布式软件的集中式部署,将管理系统服务器端 与客户端统一部署在客户服务器中心,任何授权客户机都能够以WEB形式访问,并更新数据,轻松实现了系统在广域网中的局域网应用。奇正藏药集团在实施异速 联系统之后,无需在每个用户客户机安装每套信息系统的客户端软件,因此对客户机硬件配置要求降低,另外,无需对每个客户机进行安装配置和维护,大大减少了 安装维护的工作量,降低了用户数量日益增长所产生的信息化成本。





===============================================================
近来搞了一下单点登录。
我们弄的单点登录估计是最简单的。
【概要原理】:
假设有2个应用站点A和B,都需要登录才可以访问,另外有一个专门负责登录的站点SSO。
现在有个用户访问站点A,站点A会先检查该用户是否已经登录,如果已经登录,则返回相应页面;否则转向SSO进行登录,登录成功后,转回站点A,返回请求的相应页面。
接着,该用户又访问站点B。同样,站点B会先检查该用户是否已经登录。这时候发觉是已经登录,于是直接返回请求的相应页面。
这就是单点登录,一次登录,处处通行。
【细节原理】
如何知道用户是否登录?
在SSO登录的时候,会将登录信息记入SSO的COOKIE;返回应用站点A或B时,同时将登录信息记入A或B的COOKIE。因此,登录信息在SSO和应用站点各有一份。
当有用户请求页面的时候,应用站点先检查自身的COOKIE,有的话,就表示已经登录,没有才转向SSO进行登录。
转到SSO的时候,SSO也先检查自己的COOKIE,看是否已经登录,有的话则自动转回应用站点,告诉应用站点该用户已经登录;如果没有COOKIE,才出现登录界面,让用户进行登录。因此,无论哪个应用站点先登录,SSO都有COOKIE,从而实现单点登录。
SSO上的COOKIE应该是永久性COOKIE或者时间比较长的COOKIE,例如2周,1个月,等等;而应用站点的COOKIE是临时性COOKIE,浏览器关掉就会消失那种。
【登出】
步骤是先清除应用站点的登录COOKIE,然后转到SSO清除SSO的COOKIE。
由此可知,单点登录不等于单点登出,站点A登出以后,站点A和SSO的COOKIE都被清除,但站点B的COOKIE还在,它并不知道已经登出了,除非浏览器被关掉,否则它还可以正常运行。
看起来这是一个BUG。不过,对安全性要求不高的情况下,并不会出现很大的问题。
后记
其实,要实现单点登出也不难,就是所有应用单点登录的站点,其COOKIE的Domain都指向一级域名(注意,www.abc.com是二级,abc.com才是一级)。如下:
cookie.Secure = false;
cookie.Domain = ".abc.com";
这样,某个子站点登出以后,修改了这个cookie;而其他子站点也是读这个COOKIE,当然知道已经登出了。

你可能感兴趣的:(SSO)