当前位置:文档之家› 基于SAML单点登录实现方案的分析

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

基于SAML单点登录实现方案的分析摘要随着信息技术和网络技术的迅猛发展,客户在信息化的过程中拥有了多套不同厂商开发的应用系统。

这些系统互相独立,用户在使用每个应用系统之前都必须按照相应的系统身份进行登录,为此用户必须记住每一个系统的用户名和密码,这给用户带来了不少麻烦。

特别是随着系统的增多,出错的可能性就会增加,受到非法截获和破坏的可能性也会增大,安全性就会相应降低。

针对于这种情况,单点登录概念应运而生,同时不断地被应用到企业应用系统中。

本文对单点登录SSO(Single Sign-On)的背景进行了分析,介绍了两种常见的单点登录技术,重点介绍了SAML技术及其实现单点登录的两种方式。

本文基于SAML技术设计了一套可行的方案,并对实现代码进行了必要的分析。

最后对安全性进行了分析,给出了相应的解决方法。

关键词单点登录,SAML,断言Analysis based on the case of accomplishment ofSAML’s single sign-onWang Shifeng( College Of Software Technology)Directed by Professor Chen DerenAbstractDuring the process of informationization, customers always use several variously application system provided by different firms. So customers must remember every account and password for different systems if they want to log in or use these systems, as all of them are operating independently from each other. It brings a lot of troubles to the custormers. Especially, if more systems they are using, it is more likely for them to make mistakes, also get illegal campture and destruct, then lower the security of the account. Aimed at fix this problem, the single sign-on come into being and is applied to the company application system grandually..This paper analyses the background of SSO(Single Sign-On) problem and introduces two common techniques of SSO, emphasizes SAML technique and two methods of SSO. And has designed a feasible SSO system grounded on SAML technique, meanwhile made a analysis of the security and give the relevant solution.KeywordsSingle Sign-on, SAML, Assertion目录第一章绪论 71.1 本文研究的背景 71.2本文研究的意义 8第二章单点登录的技术基础 122.1 单点登录的概念 122.2 国内外的研究概况 122.3 SAML简介 132.3.1 Browser/Artifact方式 152.3.2 Browser/POST方式 16第三章单点登录方案的设计和实现 173.1 设计思路 173.1.1 用户登录流程 183.2 IDP的设计 193.3 SP过滤器的设计 533.4 安全性分析 663.5 系统实现界面 66参考文献 70致谢 70第一章绪论1.1 本文研究的背景在大多数计算机连入网络之前,各个系统中像身份验证和授权这类安全服务的实现完全是独立的。

因此,执行身份验证所需的全部代码,以及密钥、口令,供授权决策所用的用户信息,以及授权策略本身均存放于使用这些信息的系统上。

最初,系统连接到网络上时情况变化不大。

每个系统都是一个孤岛,各系统都要求用户拥有一个帐户才能访问该系统。

这种方法有许多明显的缺点。

举例来说,设置多个帐户,每个帐户有一个密码、组或其他属性,这对用户和管理员来说非常不方面。

如果一个用户的职责发生变更而修改其帐户属性,或有人离开组织时删除其帐户,管理员要浪费大量时间。

如果出现更强大的认证方法,各系统还必须单独地去升级。

随着信息技术和网络技术的迅猛发展,企业的应用网站平台越来越多。

比如XX移动,常见的网站就有XX移动门户网站、网上营业厅网站、XX移动动漫门户网站、XX移动梦网网站、XX移动商城网站、12530彩铃网站等。

由于这些系统互相独立,用户在使用每个应用系统之前都必须输入手机号和服务密码进行登录,为此用户必须进入每一个系统都要重新输入,这给用户带来了不少麻烦。

特别是随着系统的增多,出错的可能性就会增加,受到非法截获和破坏的可能性也会增大,安全性就会相应降低。

针对于这种情况,单点登录(Single Sign-on,SSO)概念应运而生。

单点登录最初被视为一种提供生产力的奢侈品,而现在已成为一种必需品。

当前有越来越多的身份与访问控制管理(IAM)需求来自Web应用和Web Services,从IDC的市场预测可以看出,年复合增长率CAGR最高的两个子方向之一就是Web 单点登录,达到了20.8%。

1.2本文研究的意义在XX移动这样一个企业级的信息系统环境下,随着企业的发展,业务系统的数量在不断的增加,老的系统却不能轻易的替换,这会带来很多的开销。

其一是管理上的开销,需要维护的系统越来越多。

很多系统的数据是相互冗余和重复的,数据的不一致性会给管理工作带来很大的压力。

业务和业务之间的相关性也越来越大,例如公司的计费系统和财务系统,财务系统和人事系统之间都不可避免的有着密切的关系。

为了降低管理的消耗,最大限度的重用已有投资的系统,很多企业都在进行着企业应用集成。

企业应用集成可以在不同层面上进行:例如在数据存储层面上的“数据大集中”,在传输层面上的“通用数据交换平台”,在应用层面上的“业务流程整合”,和用户界面上的“通用企业门户”等等。

事实上,还用一个层面上的集成变得越来越重要,那就是“身份认证”的整合,也就是“单点登录”。

通常来说,每个单独的系统都会有自己的安全体系和身份认证系统。

整合以前,进入每个系统都需要进行登录,这样的局面不仅给管理上带来了很大的困难,在安全方面也埋下了重大的隐患:1、每个系统都是独立开发各自的身份认证系统造成资源的浪费,消耗开发成本;2、多个身份认证系统会增加整个系统的管理工作成本;3、用户需要记忆多个帐户和口令,使用极为不便,同时由于用户口令遗忘而导致的支持费用不断上涨;4、无法实现统一认证和授权,多个身份认证系统使安全策略必须逐个在不同的系统内进行设置,因而造成修改策略的进度可能跟不上策略的变化;5、无法统一分析用户的应用行为;因此,对于有多个业务系统应用需求的政府、企业或机构等,需要配置一套统一的身份认证系统,以实现集中统一的身份认证,并减少整个系统的成本。

下面是一些著名的调查公司显示的统计数据:用户每天平均16 分钟花在身份验证任务上- 资料来源:IDS频繁的IT 用户平均有21 个密码- 资料来源:NTA Monitor Password Survey49% 的人写下了其密码,而67% 的人很少改变它们每79 秒出现一起身份被窃事件- 资料来源:National Small Business Travel Assoc全球欺骗损失每年约12B - 资料来源:Comm Fraud Control Assoc到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,Single Sign-on)是一种方便用户访问多个系统的技术,用户只需在登录时进行一次注册,就可以在多个系统间自由穿梭,不必重复输入用户名和密码来确定身份。

单点登录的实质就是安全上下文(AISSO Context)或凭证(Credential)在多个应用系统之间的传递或共享。

当用户登录系统时,客户端软件根据用户的凭证(例如用户名和密码)为用户建立一个安全上下文,安全上下文包含用于验证用户的安全信息,系统用这个安全上下文和安全策略来判断用户是否具有访问系统资源的权限。

图2.1 SSO原理示意图2.2 国内外的研究概况身份认证、单点登录方面常用的技术规范或协议有Kerberos、SAML。

Kerberos 协议(RFC 1510)是由MIT开发的一种网络安全应用标准,提供了一种全方位的SSO解决方案。

在采用Kerberos的平台中,登录和认证是由操作系统本身维护;认证凭证也由操作系统保存,操作系统中的各个应用只需要通过配置就能加入到SSO中。

Kerberos 通过安全的密钥算法,可以做到用户密码不需要直接在网络中传输,因而传输的信息十分安全。

相关主题