《单点登录》由会员分享,可在线阅读,更多相关《单点登录(6页珍藏版)》请在金锄头文库上搜索。
1、单点登录系统的原理及实现方法一、背景随着信息技术和网络技术的迅猛发展,企业内部的应用系统越来越多,21世纪网络的需求也很多,那么网络的复杂程度也相应的增加,给我们带来了许多的不便。比如在许多公司信息化建设过程中,统计业务常用的应用系统就有规划设计系统、数据采集系统、数据分析与处理系统、综合数据分析应用系统、统计业务辅助系统、邮件系统、餐厅管理系统、IT服务管理系统、统计网站系统等系统。由于这些系统相互独立,用户在使用每个因公系统之前都必须按照相应的系统身份进行登录,为此用户次序记住每一个系统的用户名和密码,这给用户带来了不少麻烦。特别是随着系统的增多,出错的可能性就会增加,收到非法截获和破坏的
2、可能性也会增大,安全性就会相应降低。针对于这种情况,在项目整体规划中也就有了单点登录系统,这样就能减少那些不必要的麻烦,安全性也能够相应的提升。根据背景我们可以知道现在的社会就是需要单点登录系统,这样可以更好的、更方便的进行控制和访问。那么单点登录的前身是什么呢?二、统一用户管理的基本原理一般来说,每个应用系统都拥有独立的用户信息管理功能,用户信息的格式、命名与存储方式也多种多样。当用户需要使用多个应用系统时就会带来用户信息同步问题。用户信息同步会增加系统的复杂性,增加管理的成本。例如,用户X需要同时使用A系统与B系统,就必须在A系统与B系统中都创建用户X,这样在A、B任一系统中用户X的信息更
3、改后就必须同步至另一系统。如果用户X需要同时使用10个应用系统,用户信息在任何一个系统中做出更改后就必须同步至其他9个系统。用户同步时如果系统出现意外,还要保证数据的完整性,因而同步用户的程序可能会非常复杂。三、单点登录的概念因为统一用户管理的复杂性,所以单点登录(SSO)成为目前比较流行的企业业务整合的解决方案之一。它是一种方便用户访问多个系统的技术,用户只需在登录时进行一次注册,就可以在多个系统间自由穿梭,不必重复输入用户名和密码来确定身份。单点登录的实质就是安全上下文或凭证在多个应用系统之间的传递或共享。当用户登录系统时,客户端软件根据用户的凭证(例如用户名和密码)为用户建立一个安全上下
4、文,安全上下文包含用于验证用户的安全信息,系统用这个安全上下文和安全策略来判断用户是否具有访问系统资源的权限。四、安全性分析单点登录系统的安全性取决于是否能抵抗欺骗与攻击。1、服务器本身的安全性对于服务器本身,我们也要求相当严格的安全性,由于网络分布和域名都可能是不同的,因此管理员要对该主机建立一个妥善的安全防护体系,防止木马程序的侵入和非法登录事件。2、用户端与服务器端数据传输的安全性数据传输的安全性由两方面保证,一是系统使用的数据本身是经过加密的,二是在客户端与服务器之间传输数据时使用信息加密通道,由于在后面服务器端返回一个票据给用户,但是安全性很不稳定,所以在其中需要加入特定的身份验证信
5、息。同时使用HTTPS通过SSL加密通道,可以使用户与服务端之间的信息交互式安全的。3、用户本身的安全性在单点登录中,有时会有用户冒名使用,这时,我们就必须防止用户冒名登录,可以再认证服务器或代理服务器使用常规的技术来实现。五、技术实现机制单点登录系统的实现机制,其中所有应用系统共享一个身份认证系统,所有应用系统能够识别和提取ticket信息,应用系统能够识别已经登录过的用户,能自动判断当前用户是否登录过,从而完成单点登录的功能。1、单点登录原理当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录,根据用户提供的登录信息,将用户的登录信息和用户信息库相比较,认证系统进
6、行身份效验,如果通过效验,应该返回给用户一个认证的凭据ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性。如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。整个系统可以存在两个以上的认证服务器,这些服务器甚至可以是不同的产品。认证服务器之间要通过标准的通讯协议,互相交换认证信息,就能完成更高级别的单点登录。在登录之前,我们必须先了解Web Service,因为是通过Web Service实现用户身份验证的。WebService提供的功能包括用户名/
7、密码验证、身份验证票据的生成、身份验证票据的合法性验证这三个最基本的功能,其他功能可以根据用户的需求,自行扩展。由于WebService本身是跨平台的,只要各个应用在开发过程中使用的开发语言支持WebService即可调用身份验证平台进行相关的操作。其次我们要明确单点登录的运行模式,即统一身份验证,在本解决方案中,我是通过Web Service实现用户身份验证,验证通过后将自动随机生成身份验证票据,并将身份验证票据发送给用户,待用户访问其他应用时,只对身份验证票据进行合法性验证即可。5、单点登录的原理图由上文我们基本上了解单点登录的原理及实现方法,下面是单点登录原理图用户系统一Cookie系统
8、二获取票据WebService身份验证保存票据验证票据获取票据由此图我们可以清晰的了解单点登录的实现原理,那么它的实现基本流程如下:(1)、首先用户统一登录,向服务方提出服务的请求。(2)、通过WebService身份验证,服务方确认身份通过。(3)、通过后,用户进入系统一。(4)、在系统一中服务方会返回个给用户一个认证的凭据ticket。(5)、服务方将票据保存在Cookie中。(6)、用户将进入系统二时,服务方将验证票据。(7)、票据通过验证后,用户才能进入下一个系统。(8)、用户进入下一个系统后,又将获得票据,作为进入下一个系统的凭证。以此重复操作。2、单点登录的Ticket基于Web应
9、用系统的单点登录,特别是Internet的单点登录,主要可用的机制有两种:基于Cookie和基于Session。但是Cookie本身具有一定的局限性,为了保证客户的安全,Cookie文本按域名区分存储,Web服务器就不同读取其它域存放在客户机的Cookie文本。如果要实现基于Cookie的单点登录,就需要用其它技术或通讯,使Web服务器之间或Web服务器与认证服务器之间交互信息。Cookie作为单点登录的Ticket,具有较突出的优点。Cookie具有独立的迁居唯一的编号,而且可以在客户端存储编号意外的其他字符信息,便于单点登录及其应用系统的利用。但是它也有重大的缺点,当单点登录系统与应用系统
10、不在同一个域时,由于考虑系统安全的原因,应用系统服务程序是无法访问其它域的Cookie信息。而Session是记录在服务器端的连接几号对象,每个用户与Web服务器连接都会产生一个独立的Session对象。服务器之间特别是不同平台的服务器之间,没有建立共同使用Session机制。若Session作为单点登录的Ticket,也具有一定优势。Session也具有独立的全局唯一的编号,由于它存放于服务器端,大部分不同系统之间Session不能直接坐到信息共享,只有个别同厂家的Web服务系统具有直接Session共享功能。3、Ticket的比较从本质上来看,Cookie和Session的编号是一致的,只
11、是基于Cookie的机制可以将其他信息记录在客户端,当访问对象要在不同域名服务器之间进行时,因为浏览器本身系统安全原因将Cookie信息屏蔽了,而且很多用户因为安全的原因会排斥在客户端生成Cookie文件。4、Ticket的验证在单点登录中是怎样验证票据的呢?所谓身份验证票据就是用户身份验证通过后,发给用户用以标示身份验证通过的信息。身份验证票据中可以加密保存用户的身份信息或某一特定的验证信息等,一般使用对称加密,方便在身份验证票据合法性的检查中进行相应的解密。身份验证票据的保存也是很有挑战的一点,如果是C/S结构的程序,票据保存比较方便,只要其他应用能够取到就可以。在Web应用中,身份验证票
12、据的保存就比较麻烦,我使用的方法是通过跨域操作Cookie,Cookie是一组保存在客户端的数据集合,用作Internet Cookie的公共储存库的目录,通过HttpRequest的Cookie集合访问的几个包含以Cookie标头形式由客户端传输到服务器的Cookie。通过HttpRequest的Cookie集合访问的集合包含一些新Cookie,这些Cookie在服务器上创建并以Set-Cookie标头的形式传输到客户端。然后将票据保存在Cookie中即可,但是由于Cookie的不安全性,为防止恶意伪造 Cookie进行诈骗,建议身份验证票据的生成过程中,加入特定的身份验证信息。五、总结性分
13、析由于网路的发展,现在各大企业需求网络的数量也急剧增加,同时企业、事业单位的系统又多,所以如果都才用统一登录,会带来很多不必要的麻烦,所以才有了单点登录的技术。本文首先对单点登录的背景、现状、问题进行探讨,对统一登录进行了描述,这样能让我们更好的了解单点登录,并对单点登录的原理及其他进行了分析,同时在单点登录Ticket技术中,主要分析比较Cookie、Session等,对服务器本身、用户本身以及传输过程安全方法进行了描述。所以,使用单点登录系统更能跟上网络发展的需求,能更方便、更快捷的方便群众。六、参考文献1、丁建生,多企业应用的单点登录系统的研究与设计。2、周寅庚,吐哈油田单点登录系统WEB访问子系统的设计与实现。3、韩海雯、吕辉,Web程序设计ASP.NET。4、鲁立、龚涛,计算机网络安全。