基于SAML单点登录实现方案的分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于SAML单点登录实现方案的分析摘要随着信息技术和网络技术的迅猛发展,客户在信息化的过程中拥有了多套不同厂商开发的应用系统。这些系统互相独立,用户在使用每个应用系统之前都必须按照相应的系统身份进行登录,为此用户必须记住每一个系统的用户名和密码,这给用户带来了不少麻烦。特别是随着系统的增多,出错的可能性就会增加,受到非法截获和破坏的可能性也会增大,安全性就会相应降低。针对于这种情况,单点登录概念应运而生,同时不断地被应用到企业应用系统中。本文对单点登录SSO(SingleSign-On)的背景进行了分析,介绍了两种常见的单点登录技术,重点介绍了SAML技术及其实现单点登录的两种方式。本文基于SAML技术设计了一套可行的方案,并对实现代码进行了必要的分析。最后对安全性进行了分析,给出了相应的解决方法。关键词单点登录,SAML,断言AnalysisbasedonthecaseofaccomplishmentofSAML’ssinglesign-onWangShifeng(CollegeOfSoftwareTechnology)DirectedbyProfessorChenDerenAbstractDuringtheprocessofinformationization,customersalwaysuseseveralvariouslyapplicationsystemprovidedbydifferentfirms.Socustomersmustremembereveryaccountandpasswordfordifferentsystemsiftheywanttologinorusethesesystems,asallofthemareoperatingindependentlyfromeachother.Itbringsalotoftroublestothecustormers.Especially,ifmoresystemstheyareusing,itismorelikelyforthemtomakemistakes,alsogetillegalcamptureanddestruct,thenlowerthesecurityoftheaccount.Aimedatfixthisproblem,thesinglesign-oncomeintobeingandisappliedtothecompanyapplicationsystemgrandually..ThispaperanalysesthebackgroundofSSO(SingleSign-On)problemandintroducestwocommontechniquesofSSO,emphasizesSAMLtechniqueandtwomethodsofSSO.AndhasdesignedafeasibleSSOsystemgroundedonSAMLtechnique,meanwhilemadeaanalysisofthesecurityandgivetherelevantsolution.KeywordsSingleSign-on,SAML,Assertion目录第一章绪论71.1本文研究的背景71.2本文研究的意义8第二章单点登录的技术基础122.1单点登录的概念122.2国内外的研究概况122.3SAML简介132.3.1Browser/Artifact方式152.3.2Browser/POST方式16第三章单点登录方案的设计和实现173.1设计思路173.1.1用户登录流程183.2IDP的设计193.3SP过滤器的设计533.4安全性分析663.5系统实现界面66参考文献70致谢70第一章绪论1.1本文研究的背景在大多数计算机连入网络之前,各个系统中像身份验证和授权这类安全服务的实现完全是独立的。因此,执行身份验证所需的全部代码,以及密钥、口令,供授权决策所用的用户信息,以及授权策略本身均存放于使用这些信息的系统上。最初,系统连接到网络上时情况变化不大。每个系统都是一个孤岛,各系统都要求用户拥有一个帐户才能访问该系统。这种方法有许多明显的缺点。举例来说,设置多个帐户,每个帐户有一个密码、组或其他属性,这对用户和管理员来说非常不方面。如果一个用户的职责发生变更而修改其帐户属性,或有人离开组织时删除其帐户,管理员要浪费大量时间。如果出现更强大的认证方法,各系统还必须单独地去升级。随着信息技术和网络技术的迅猛发展,企业的应用网站平台越来越多。比如XX移动,常见的网站就有XX移动门户网站、网上营业厅网站、XX移动动漫门户网站、XX移动梦网网站、XX移动商城网站、12530彩铃网站等。由于这些系统互相独立,用户在使用每个应用系统之前都必须输入手机号和服务密码进行登录,为此用户必须进入每一个系统都要重新输入,这给用户带来了不少麻烦。特别是随着系统的增多,出错的可能性就会增加,受到非法截获和破坏的可能性也会增大,安全性就会相应降低。针对于这种情况,单点登录(SingleSign-on,SSO)概念应运而生。单点登录最初被视为一种提供生产力的奢侈品,而现在已成为一种必需品。当前有越来越多的身份与访问控制管理(IAM)需求来自Web应用和WebServices,从IDC的市场预测可以看出,年复合增长率CAGR最高的两个子方向之一就是Web单点登录,达到了20.8%。1.2本文研究的意义在XX移动这样一个企业级的信息系统环境下,随着企业的发展,业务系统的数量在不断的增加,老的系统却不能轻易的替换,这会带来很多的开销。其一是管理上的开销,需要维护的系统越来越多。很多系统的数据是相互冗余和重复的,数据的不一致性会给管理工作带来很大的压力。业务和业务之间的相关性也越来越大,例如公司的计费系统和财务系统,财务系统和人事系统之间都不可避免的有着密切的关系。为了降低管理的消耗,最大限度的重用已有投资的系统,很多企业都在进行着企业应用集成。企业应用集成可以在不同层面上进行:例如在数据存储层面上的“数据大集中”,在传输层面上的“通用数据交换平台”,在应用层面上的“业务流程整合”,和用户界面上的“通用企业门户”等等。事实上,还用一个层面上的集成变得越来越重要,那就是“身份认证”的整合,也就是“单点登录”。通常来说,每个单独的系统都会有自己的安全体系和身份认证系统。整合以前,进入每个系统都需要进行登录,这样的局面不仅给管理上带来了很大的困难,在安全方面也埋下了重大的隐患:1、每个系统都是独立开发各自的身份认证系统造成资源的浪费,消耗开发成本;2、多个身份认证系统会增加整个系统的管理工作成本;3、用户需要记忆多个帐户和口令,使用极为不便,同时由于用户口令遗忘而导致的支持费用不断上涨;4、无法实现统一认证和授权,多个身份认证系统使安全策略必须逐个在不同的系统内进行设置,因而造成修改策略的进度可能跟不上策略的变化;5、无法统一分析用户的应用行为;因此,对于有多个业务系统应用需求的政府、企业或机构等,需要配置一套统一的身份认证系统,以实现集中统一的身份认证,并减少整个系统的成本。下面是一些著名的调查公司显示的统计数据:用户每天平均16分钟花在身份验证任务上-资料来源:IDS频繁的IT用户平均有21个密码-资料来源:NTAMonitorPasswordSurvey49%的人写下了其密码,而67%的人很少改变它们每79秒出现一起身份被窃事件-资料来源:NationalSmallBusinessTravelAssoc全球欺骗损失每年约12B-资料来源:CommFraudControlAssoc到2007年,身份管理市场将成倍增长至$4.5B-资料来源:IDS使用“单点登录”整合后,只需要登录一次就可以进入多个系统,而不需要重新登录,这不仅仅带来了更好的用户体验,更重要的是降低了安全的风险和管理的消耗。请看下面的统计数据:提高IT效率:对于每1000个受管用户,每用户可节省$70K帮助台呼叫减少至少1/3,对于10K员工的公司,每年可以节省每用户$75,或者合计$648生产力提高:每个新员工可节省$1K,每个老员工可节省$350?资料来源:GigaROI回报:7.5到13个月?资料来源:Gartner单点登录系统的目的就是为这样的应用系统提供集中统一的身份认证,实现“一点登录、多点漫游”的目标,方便用户使用。一个用户如何一次登录,即可使用所有他可以有权访问的应用系统。我们希望能达到以下效果:登录一次,可使用多个应用系统;统一的身份认证;可配置的身份认证;各个应用系统之间共享用户信息,以方便系统间数据流转。这里就会存在以下2个关键问题:(1)登录信息如何在多个应用之间传递;(2)各个应用如何检查用户是否已经登录。本文将首先从单点登录的技术基础入手,逐步说明如何解决上述2个问题。第二章单点登录的技术基础2.1单点登录的概念单点登录(SSO,SingleSign-on)是一种方便用户访问多个系统的技术,用户只需在登录时进行一次注册,就可以在多个系统间自由穿梭,不必重复输入用户名和密码来确定身份。单点登录的实质就是安全上下文(AISSOContext)或凭证(Credential)在多个应用系统之间的传递或共享。当用户登录系统时,客户端软件根据用户的凭证(例如用户名和密码)为用户建立一个安全上下文,安全上下文包含用于验证用户的安全信息,系统用这个安全上下文和安全策略来判断用户是否具有访问系统资源的权限。图2.1SSO原理示意图2.2国内外的研究概况身份认证、单点登录方面常用的技术规范或协议有Kerberos、SAML。Kerberos协议(RFC1510)是由MIT开发的一种网络安全应用标准,提供了一种全方位的SSO解决方案。在采用Kerberos的平台中,登录和认证是由操作系统本身维护;认证凭证也由操作系统保存,操作系统中的各个应用只需要通过配置就能加入到SSO中。Kerberos通过安全的密钥算法,可以做到用户密码不需要直接在网络中传输,因而传输的信息十分安全。但是搭建一个Kerberos的环境比较复杂,KDC(密钥分发中心)的建立也需要相当多的环节。SAML为SSO提供了一个安全的协议。SAML是允许Web站点安全地共享身份信息的一个规范,它来自ebXML和其他XML标准背后的国际性联盟OASIS。站点使用SAML的XML词汇表和请求/应答模式,通过HTTP交换身份信息。这种信息共享标准化能帮助Web站点与多个合作伙伴集成,避免由于为不同合作伙伴设计和维护各自私有的集成通道而引起的争论。2005年完成的SAML2.0引入了支持身份联邦(IdentityFederation)的一些重要新功能。认证系统设计领域内的进展之一是制定标准化的安全API,即通用安全服务API(GSS-API)。Austin大学开发的安全网络编程(SNP),对通用接口进行了进一步的封装,把界面做到了比GSS-API更高的层次,使同网络安全性有关的编程更加方便了。SUN和微软2005年联合开发并公布了两个技术规范草案:WebSingleSign-OnMetadataExchange(WebSSOMEX)Protocol(Web单点登录元数据交换协议)和WebSingleSign-OnInteroperabilityProfile(WebSSOInteropProfile)(Web单点登录互操作性概览)。这两个技术规范可使LibertyID-FF和WS-Federation两个安全的域之间实现基于浏览器的Web单点登录。国内目前的进展主要是基于各项技术的整合开发出一些应用型的统一身份认证与权限管理系统。2.3SAML简介SAML(SecurityAssertionMarkupLanguage,安全性断言标记语言)是一种基于XML的框架,主要用于在各安全系统之间交换认证、授权和属性信息,它的主要目标之一就是SSO。在SAML框架下,无论用户使用哪种信任机制,只要满足SAML的接口、信息交互定义和流程规范,相互之间都可

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功