【Java开源代码栏目提醒】:本文主要为网学会员提供“基于Java EE的跨域单点登录系统的研究与实现 - 能源电力”,希望对需要基于Java EE的跨域单点登录系统的研究与实现 - 能源电力网友有所帮助,学习一下!
西南交通大学 硕士学位
论文基于
Java EE的跨域单点登录系统的研究与实现 级别:硕士 专业:计算机应用技术 指导教师:何大可 20100301 西南交通大学硕士研究生学位
论文 第1页 摘. 要 随着Java EE平台和信息网络技术的迅猛发展,企业内部越来越多的信息系统采用Java EE架构来开发基于B/S结构的信息系统,这些系统都有着独立的安全认证机制,每个用户在不同信息系统的身份信息由不同的信息系统管理着。
这些用户信息无法相互传递,使得用户在进入不同的信息系统都要重新提交自己的身份标识,这样给用来带来了诸多的不便,同样也使得安全性大大降低。
而随着实际应用的需要,各种企业级的单点登录方案应运而生。
单点登录简称SSO,它是一套身份认证机制,专门用来解决用户在多个信息系统中的身份认证问题,通过单点登录用户只需要登录一次就可以访问所有参与单点登录的应用系统,而且在切换系统时不再受访问限制。
本篇
论文主要做了三个方面的工作,一是讲解了单点登录原理,并介绍了单点登录涉及到的密码学技术,以及在Java EE平台下进行信息系统开发的一些相关技术和Java2平台的密码学应用。
二是在侧重考虑Java EE平台在企业级信息系统开发中重要地位的基础上,分析了目前常见的几种单点登录方案,包括:
开源代码的CAS方案、微软的Passport方案、经典的Kerberos方案、自由联盟的Liberty方案,分析比较了各个
方案在Java EE平台下的可行性、优势劣势后,选择基于CAS协议的单点登录方案作为Java EE平台的首选方案。
三是详细分析了CAS协议,针对目前CAS中存在的不完善的地方提出改进意见,设计了一种能够符合实际需要的单点登录模型,并尝试着在Java EE平台下实现了该模型,并与现有的系统进行集成。
关键词:单点登录,CAS协议,Java EE 西南交通大学硕士研究生学位
论文 第1I页 Abstract With the developing of Java EE platform and internet technology,more and moreapplication system based on Java EE with B/S framework are built to support businessprocesses.Because of the independence of those applications,user information aremaintenanced by difference application systems,and can’t be concenterred to each other.So,the user have to sign—on to multiple systems,this may lead to security leak andinconvenience. In actual application,SSO(Single—Sign On),a mechanism to authorization,has arisen.This mechanism allows user access all application system but only provide his or her This paper contain three pans.Firstly,introduces the concept of single sign—on,cryptology which used in SSO,the technology of information system based on Java EEplatform and the application of cryptology in
java2.Secondly,four SSO models wereanalyzed to.find a rational SSO based on Java EE,including CAS protocal from YaleUniversity,dot net passport model from Microsoft,classical Kerberos model and Libertymodel from Liberty Alliance.Compared with these four models by these advantages anddefects based on Java EE,CAS was chosen to construct Our SSO system.At last,CASprotocol’S defects was investigated,and some advances to aviod those weakness were given,at the same time,the advanced SSO model was achieved by using Java EE,which call beintegrated into existed information system.key words:SSO,CAS protocol,JAVA EE 凹南父逋大罕 西南交通大学 学位
论文版权使用授权书 本学位
论文作者完全了解学校有关保留、使用学位
论文的规定,同意学校保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权西南交通大学可以将本
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复印手段保存和汇编本学位
论文。
本学位
论文属于 1.保密口,在 年解密后适用本授权书; 2.不保密团,使用本授权书。
(请在以上方框内打“寸’) 学位
论文作者签名: 王础 指导老师签名:七予&丁 日期:沙厂矿. s。
7 日期: 铂托·r 7’ 西南交通大学硕士学位
论文主要工作(贡献)声明 本人在学位
论文中所做的主要工作或贡献如下: 本篇
论文的主要工作是分析比较Kerberos、Liberty、Passport、CAS四种单点登录协议在Java EE平台下进行单点登录系统的开发可行性以及单点登录系统与原有的Java EE平台系统集成的可行性,论证了CAS协议是Java EE平台下进行单点登录开发的最合理模型。
然后对JA.SIG开发的CAS3.0协议进行详尽的分析,扩展改进该协议模型,使之更符合实际应用,并开发了简单的示例应用程序。
本人郑重声明:所呈交的学位
论文,是在导师指导下独立进行研究工作所得的成果。
除文中已经注明引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出贡献的个人和集体,均已在文中作了明确说明。
本人完全了解违反上述声明所引起的一切法律责任将由本人承担。
学位
论文作者签名:三甚攫 日期:如,口·s·7 西南交通大学硕士研究生学位
论文 第1页 第1章绪论1.1
论文提出的背景和意义 随着网络信息的广泛应用,基于Java EE架构的信息系统越来越多的融入到各行各业,而每个应用系统一般都要求实现用户管理、身份认证、授权等功能,所有新应用系统的涌现,在与已有系统的集成或融合上,会带来以下的问题: 从开发者的角度来看,如果每个系统都开发各自的身份认证系统将造成数据库等资源的浪费、开发成本的加大,并延缓开发进度;从管理者的角度来看,管理维护多个身份认证系统会增加整个系统的管理工作成本;从用户使用者的角度来看,用户在使用这些系统过程中,必然要经过多次的登录与认证,大大降低了工作效率。
而对多个账户和口令的记忆,使的用户极为不便,同时由于用户口令遗忘而导致的相关问题不断地涌现。
为了顺利登录到各个系统,员工通常设置简单的口令或者相同的口令,这样不管对于应用系统还是员工都将面临一种信息安全危险; 而由于上述问题可能导致的损失可以由下面的调查数据得到证实: 用户每天平均16分钟花在身份验证任务上.资料来源:IDS 频繁的IT用户平均有21个口令一资料来源:NTA Monitor Password Survey 49%的人写下了其口令,而67%的人很少改变它们;每79秒出现一起身份被窃事件.资料来源:National Small Business Travel Assoc 全球欺骗损失每年约120亿.资料来源:Comm Fraud Control Assoc 到2007年,身份管理市场将成倍增长至¥45亿.资料来源:IDS 因此,对于有多个业务系统应用需求的政府、企业或机构等,需要配置一套统一的身份认证系统,以实现集中统一的身份认证,并减少整个系统的成本。
单点登录系统就是在这样的背景下产生的ill。
该系统的主要目标是实现对用户信息的统一调度,使用户访问诸多系统只需登录认证一次,并且保证用户信息与用户系统的安全性。
单点登录机制是实现“一次登录、全网漫游,单点注销,全网失效”,即用户访问不同应用系统中的受保护的资源时只作一次身份认证,随后就可以对所有被授权的网络资源进行无缝访问,而不需要多次输入认证信息。
相反,用户在任何一个系统作一 西南交通大学硕士研究生学位
论文 第2页次身份注销,随后用户在所有被授权的系统的网络资源全部失效。
这里所指的受保护的资源可以是打印机或其他硬件设备,也可以是各种应用程序和
文档数据等,这些资源可能处于不同的
计算机环境中。
使用单点登录系统可以实现以下两个目标: (1)从用户的角度来看,系统减少用户的登录次数,用户访问多个系统不需要分别登录认证,从而增加
工作效率。
另外,由于用户只需要记忆一个口令,因此用户可以使用更为复杂的口令以降低攻击者猜中口令的可能性,此外通过强身份认证机制对用户进行验证,增加了登录的安全性,进而加强了用户的安全性。
(2)从服务提供方来看,首先不需要每个
系统中都开发登录认证系统,这就节约了开发成本。
其次,由于只在用户第一次登录时进行身份验证,那么用户名和口令信息在网络上传输只有一次,这就降低了用户信息在网络上被盗取的危险。
另外,由于采用用户信息的统一管理,这样就保证了用户信息的唯一性,可以对用户进行集中授权,同时减少了系统管理员增加、删除用户和修改用户权限的时间,增加了管理的便利性。
而且,由于对用户实行强身份认证,非法授权用户无法登录破坏系统,这就保证了应用系统整体的安全性。
但是随着人们对
网络的应用不断扩大,视界越来越广,所涉猎的范围也日益增加,需要登录的系统也越来越多,由于它们都分属于不同的公司或者不同的部门,不论是出于技术、还是利益、或是安全方面的考虑,各认证系统内部虽然实现了单点登录,但认证系统彼此之间都是相互独立的,这样对用户来说负担仍然比较重,安全
问题也没有完全解决。
如果能够实现一个区域、市、国家甚至整个世界的统一认证和单点登录系统可以彻底解决这些问题。
虽然这种想法在一定程度上可以说是一种奢望,但是构建一种实现总公司与分公司、合作公司之间的单点登录因此来解决各个独立系统的认证是具有现实意义的。
1.2 国内外现状分析 基于单点登录的身份认证问题一直是安全领域研究的最重要问题之一,随着PKI技术、XML技术等新技术的出现,单点登录开始向标准化方向发展121。
目前,已经有许多协议支持单点登录,其中比较典型的有YALE.CAS协议t31 SAML协议t4l Microsoft公司开发的PASSPORT协议以及自由联盟的Liberty。
西南交通大学硕士研究生学位
论文 第3页 YALE.CAS是基于HTTP协议的一种身份认证协议。
它通过http组件来访问特定的URI来实现单点登录模型。
该协议由Drew Mazurek于2005年5月4日发布第一版。
SAML(安全断言标记语言)是在2002年11月,结构化信息标准促进组织(Organization for the Advancement of Structured Information Standards,简称OASIS)批准的作为商业合作伙伴之间交换验证和授权信息的XML(Extensible Markup Language)框架,尤其是web服务交换的信息。
Liberty Alliance项目成立于2001年9月,旨在为联合网络身份管理和基于身份的服务开发开放标准,其管理委员会包括美国运通、爱立信、法国电信、通用电子、惠普、英特尔、诺基亚、Novell、索尼、SUN Microsystems等等。
微软提出的PASSPORT协议采用的是一种集中式认证模式。
所有的用户信息都存放在Passport.com中,由Passport.tom负责进行身份验证。
随着这些协议标准的提出,市面上也依据这些协议生产出了成型的产品,比较成熟的包括以下一些: (1)IBM W曲Sphere巧1:它主要用在intranet中,依赖于W曲Sphere和Lotus Domino环境。
核心是在Intranet域中共享含有用户标识的加密Http Cookie,促使一个域中的多台服务器之间实现单点登录。
首先有参与单点登录的某台服务器先生成一组有口令保护的供所有服务器使用的加密密钥…~公共密钥、私有密钥、3DES密钥,然后在域中所有Web服务器中共享这组密钥,建立信任关系。
用户第一次访问服务器必须进行身份验证,如果验证成功,则产生一个在此域内有效的包含用户身份敏感信息的H1vrPCookie并发送给客户端浏览器。
Cookie是在域内共享的,此域中的服务器都可以访问这个Cookie,可以使用共同的密钥解密出用户标识,就达到了在此域内所有服务器单点登录的目的。
(2)Sun Java System Access Manager 161单点登录技术是该产品中的一个组成部分。
通过使用集中验证点、基于角色的访问控制以及SSO,Sun Java SystemAccess Manager为所有基于Web的应用程序提供了一个可伸缩的安全模型。
它简化了信息交换和交易,同时能保护隐私及重要身份信息的安全。
Sun使用一个身份认证服务实现SSO,所有登录、认证请求都在认证服务器完成,然后分发到相应的应用。
(3)Microsoft.Net Passport〔71微软Passport是微软公司运行的一种Web服务,该服务会使用户登录到网站以及执行电子商务交易的过程变得更加简便。
微软的Passport 西南交通大学硕士研究生学位
论文 第4页服务是.Net战略的一部分,通过一次登录就可以使用户获得访问很多网站的权限。
微软宣称Passport的母的是使
会员在使用互联网和在线购物时更方便、快捷和安全,它得到了包括Cost Cow、OfficeMax和Victoria Secret等在内的诸多著名在线商店的支持。
微软Passport服务从本质上说是一种由微软控制的中央统筹式的单点登录服务。
(4)CAS(Central Authentication Service)是Yale大学ITS开发的一套采用Java实现的 开源SSO吲州。
从2004年开始成为JA.SIG(Java in Administration Special Interest Group) 的项目。
由于该项目是免费的
开源代码,并采用Java语言,其独立于平台性、易于理 解性以及
免费性受到软件开发商的好评,并在耶鲁开学、加州大学、剑桥大学、香港 科技大学等大学中得到广泛应用。
(5)国内现状:目前国内市场落后于国际市场,但也有不少单点登录产品,例如吉大正元的JITSSO系统是国内的一个单点登录产品,产品通过SSL协议中的握手协议和Kerberos协议相结合的方式来实现。
金蝶软件公司的BOS系统实现了多个业务系统的集中统一管理,其中也有单点登录的部分。
清华大学与北京大学分别于2003年在校园网统一身份认证系统中实现了基于票据和基于LDAP服务器的单点登录系统。
中国电信也于2003年在“互联星空”中实现了单点登录系统。
东北大学在2009年使用CAS实现了跨网认证。
1.3 研究的内容和主要工作 本文的研究内容和主要工作包括以下方面: (1) 单点登录的发展现状和相关技术分析。
通过分析现有的单点登录系统的协 议,找出单点登录的技术特性以及单点登录技术所必须的背景知识,为实 现单点登录系统打下基础。
(2) Java EE平台的分析。
Java EE是目前主流的商用企业级框架,通过分析现 在主流的轻量级框架Spring和Hibernate,找出其技术特性,并考虑如何将 单点登录技术集成到Java EE平台。
(3) 分析CAS单点登录机制,比较主流的单点登录协议,找出其他主流的单点 登录方案对Java EE平台的不合适之处,确定基于YALE.CAS协议的单点 登录系统是最适合Java EE平台的单点登录方案。
. (4) 改进CAS协议并设计基于单点登录系统,实现相应的功能。
西南交通大学硕士研究生学位
论文 第5页1.4 章节安排 本
论文分为七章,结构安排如下: 第一章:绪论。
简单介绍
论文选题的背景和意义,国内外关于单点登录系统的现状,包括现有的协议标准和成熟的产品,并列出
论文结构。
第二章:单点登录理论基础和相关技术。
这章主要介绍单点登录的实现原理、单点登录模型的分类、单点登录涉及到的认证技术以及常见单点登录模型中
常用的安全机制SSL协议。
第三章:JAVA EE以及Java相关认证技术。
这章主要介绍轻量级的Java EE平台,并对在开发单点登录系统中涉及到的Java认证技术和工具进行介绍。
第四章:分析研究CAS协议,针对其中可能存在的缺陷提出可行的改进意见。
并将其与主流的单点登录协议如:Kerberos、Liberty、.Net Passport进行优缺点比较,论证CAS协议是基于Java EE平台下的最合理的单点登录系统。
第五章:
设计并实现基于CAS协议的单点登录系统。
在本章中,基于第四章对CAS协议的基础上简要的讲述了对该协议的实现。
第六章:部署并集成单点登录系统。
在本章,主要讲述了使用Tomcat进行单点登录的部署,其中包括Tomcat的SSL协议的配置、CAS服务器端的部署、CAS客户端与现有信息系统的集成。
第七章:结论与展望。
在本章中总结了我在撰写本
论文的主要工作以及我希望在单点登录系统的进一步的研究方向。
1.5 本章小结 本章主要介绍了
论文课题提出的背景、目前国内外相关领域的研究现状,并简单的介绍并分析了目前一些比较常见的单点登录系统模型。
同时在本章中还简单概述了
论文的研究内容和主要做的一些工作,并对本
论文的框架做了一个大致的介绍。
亘童塞堡查兰堡圭堡塞兰耋竺丝塞 丝!至 第2章单点登录理论基础和关键技术2.1单点登录介绍2.1.1传统多信息系统认证原理 在传统的多信息系统认证中,用户需要自行记录所有信息系统的用户凭证(通常是用户名和口令方式1,当登录不同的系统时提供不同的用户凭证,而且每一个系统都需 膏』莩嘉墨 曛}}防}霸要一个管理用户凭证的功能模块。
这导致了用户管理的分散以及身份认证的复杂性。
“开 _。
9,L 酽~ 图2—1 传统的多信息系统认证2.1.2单点登录原理 单点登录是通过用户的一次性鉴别登录即可获得需要访问系统和应用
软件的授权的技术。
其实质就是安全上下文(Security Context)或凭i正(Credential)在多个应用系统之间的传递或共享。
也就是说一旦用户通过了单点登录认证,则这一次的登录可以被多个应用系统同时认可,使得用户名、登录口令在网络霸=境中传递的次数大大减少,降低风险,并且通过统一的接口处理,做集中的接入处理。
让用户无缝访问各种应用〔1010 简单的单点登录系统中包括三个角色,分别是: f11用户:应用系统的使用者也是单点登录的受益者; 旺)多个应用系统:为用户提供应用服务的供应者; (3)单点登录认证中心:可信的身份认证者: 西南交通大学硕士研究生学位
论文 第7页 三者之间的简单示意图如下 图2—2 单点登录示意图2.1.3理想的单点登录模型 从管理员的角度看,计算机和网络环境在各个方面必须能被管理,而管理应该不引起额外的工作或安全漏洞。
管理过程应该适合组织的结构和政策。
这意味着权利和控制需要有一定的层次结构【6】。
从用户的视角看,虽然是在复杂的企业应用环境中,单点登录不会影响到诸如业务过程、响应效率、网络吞吐量等事情,并将互操作性方面的皿题减至晟低,任何事情都在顺利工作。
当一个单点登录系统被加入使用,迁移应该很容易。
所有的用户能够立即学会使用这个工具。
从安全方面看,密码学和网络安全的应用必须能抵御可预期的风险,并能将不可预期的风险降到最低。
从开发角度来看,应用程序引入单点登录不能影响原有的系统,并且使得所有
程序不论新旧,只需更改少量甚至不改动就能用起来。
2.2 单点登录模型分类2.2.1基于经纪人的单点登录模型(Broker-Based SSo) 在一个基于经纪人的sso解决方案中,有一个集中的认证和用户账号管理的服务器并使用中央数据库用于认证数据的存取。
经纪人能被用于进一步请求的电子的身份存取。
中央数据库的使用减少了管理的代价,并为认证提供一个公共和独立的“第三方”。
基于Kerbcros的单点登录机制是经纪人模型的典型应用。
具体见
论文第4.3 1节。
西南交通大学硕士研究生学位
论文 第8页2.2.2基于代理的单点登录模型(Agent—Based sso) Agent.Based模型中每一个应用服务前端有一个代理(Agent)为其完成用户身份认证工作,需要注意的是,这个代理是专门为应用服务器服务的。
在这个基于代理人的解决方案中,客户端有一个自动地为不同的应用程序认证用户身份的代理程序。
这个代理程序被设计成以不同的功能,如可以使用口令或加密密钥来自动地将认证的负担从用户移开,代理人也可以放在服务器上面,在服务器的认真系统和客户端认证方法之间充当“翻译。
SSH(Secure Shell)是基于代理人的单点登录机制的典型应用。
SSH协议是建立在传输层基础上的安全协议,它住由以下三部分组成,共同实现SSH的安全保密机制: 1、SSH.CONN(连接协议):负责分配多个加密通道至一些逻辑通道上,它运行在用户认证层协议(USERAUTH)之上; 2、SSH.USERAUTH(用户认证协议层):用来实现服务器跟客户端之间的身份认证,它运行在传输层协议(TRANS)之上; 3、SSH.TRANS(传输层协议):它提供诸如认证、信任和完整性检验等安全措施,此外还可以任意地提供数据
压缩功能。
这些传输层协议都建立在面向连接的TCP数据流之上。
通过使用SSH,我们可以把所有传输的数据进行加密,这样就能够防止DNS和口欺骗。
同时,SSH也是一个在网上进行安全连接的客户/服务器类型加密软件,实现密钥交换协议,以及主机及客户端认证协议.