浅析Web单点登录和SAML技术

SAML(安全断言标记语言)已经被结构化信息标准促进组织(OASIS)批准为Web 单点登录的执行标准。SAML连同Web单点登录共同构成了现代网络环境中的必备条件。

  美国在线和eBay是两个知名网站,拥有大量的用户。通过分析,这两个网站发现他们有30%的用户是重合的,也就是说,这些用户在两个网站都有用户名和密码。因此,他们认为有必要找到一种方法,让这30%的用户在登录其中一个网站时,其身份能够自动被另一网站识别,并可以访问另一网站的资源。最终,他们采用了Web单点登录解决方案。

  单点登录:大势所趋

  在大多数计算机连入网络之前,各个系统中像身份验证和授权这类安全服务的实现完全是独立的。因此,执行身份验证所需的全部代码,以及密钥、口令,供授权决策所用的用户信息,以及授权策略本身均存放于使用这些信息的系统上。最初,系统连接到网络上时情况变化不大。每个系统都是一个孤岛,各系统都要求用户拥有一个账户才能访问该系统。

  这种方法有许多明显的缺点。举例来说,设置多个账户,每个账户有一个密码、组或其他属性,这对用户和管理员来说非常不方便。如果一个用户的职责发生变更而修改其账户属性,或有人离开组织时删除其账户,管理员要浪费大量时间。如果出现更强大的认证方法,各系统还必须单独地去升级。

  随着互联网的出现,多台机器作为一个Web站点的主机成为一种普遍现象。但仅仅因为用户要使用不同的机器处理不同的请求而强迫他们多次在网络上进行登录,显然是令人无法接受的。同样,门户也不能要求使用者每访问不同的应用程序就重新登录。于是单点登录(Single Sign-on,SSO)出现了。单点登录最初被视为一种提高生产力的奢侈品,而现在已成为一种必需品。当前有越来越多的身份与访问控制管理(IAM)需求来自Web应用和Web Services,从IDC的市场预测也可以看出,年复合增长率CAGR最高的两个子方向之一就是Web单点登录,达到了20.8%。

  单点登录是一种用于方便用户访问网络的技术。无论多么复杂的网络结构,用户只需在登录时进行一次注册,即可获得访问系统和应用软件的授权,以后便可以在网络中自由穿梭,不必多次输入用户名和口令来确定身份。在此条件下,管理员无需修改或干涉用户登录就能方便地实施希望得到的安全控制。

  实现单点登录后,认证网络用户能够利用连贯且安全的身份识别信息交换机制,在其自身运行环境或业务合作伙伴运行环境下,便捷地在两个应用程序中移动,而无需重新认证。

  SAML:一统Web SSO江湖

  当今,越来越多的系统通过Web服务、门户和集成化应用程序彼此链接,对于保证信息安全交换标准的需求也随之日益增多。安全断言标记语言(Security Assertion Markup Language,SAML)提供了一个健壮且可扩展的数据格式集,在各种环境下交换数据和身份识别信息。SAML的出现大大简化了Web单点登录,并被结构化信息标准促进组织(OASIS)批准为Web SSO的执行标准。这里的一个关键概念是身份联邦,它可满足SAML的定义,也就是说可使用独立、受管理的多个信息来源中的信息。SAML连同Web单点登录共同构成现代网络环境中的必备条件。

  

身份联邦是企业身份和访问管理战略的关键组成部分,提供了多项业务优势。对于企业而言,身份联邦增强了与业务合作伙伴进行合作、管理供应链、为客户提供新型创收服务的能力,并且保护了企业资源,降低了成本。对于最终用户而言,身份联邦使网站访问更加便捷,提高了工作效率;提供了更广泛的访问信息与服务;有效保护了个人信息。

  另外,随着互联网规模的不断扩大,把一个用户的所有信息全部收集到一个地方,既不可能也不需要。不同个人和组织在与不同的对象打交道时会使用不同类型的信息,例如医生掌管病历卡、会计师保存财政和税款记录等等。经常性地将此信息移动到一个地点,只能使保持数据的准确性和及时更新更加困难。同时,移动信息还会增加数据在传输中丢失和被窃的可能性。

  尽管如此,为进行身份验证和授权,还是必须在网络上保留许多类型的信息。这也正是身份联邦的目的。出于授权等目的,身份联邦将来自多个数据源的同一用户数据综合在一起。不同的组织可能希望使用不同的产品去管理其身份数据,那么自然就需要制订一个在网络上传送这些数据(从数据当前所在的地方,到现在正需要数据的地方)的标准。虽然许多产品提供Web单点登录,同样需要一种标准使这种跨不同产品的传送成为可能,这就是SAML关注的领域。

  举一个简单的例子:用户在一个站点上取得认证授权,当用户需要访问另一个相关站点的资源时,目的站点(保护资源的持有者)能够使用SAML从源站点调取用户的证书信息。此时SAML对信息交换的处理发生在后台,因此用户的资源实际上被不同的安全系统进行了定位。

  SAML是什么

  Web安全方面最具挑战性的一个问题是维持一次无缝操作和安全环境时, 使各不相同的安全系统达到一体化。比如在电子商务活动过程中,经常需要通过网络来交换机密的资料或数据,因此,对于安全功能的要求十分严格。

  OASIS建立的安全标准—SAML是基于XML(可扩展标记语言)、面向Web服务的架构。SAML通过互联网对不同安全系统的信息交换进行处理。

  SAML是一种语言,进行单一的XML描述,允许不同安全系统产生的信息进行交换。通常来说,一个企业在物理或逻辑的范围已经界定了企业的IT安全;然而,由于在线合作需要共享更可靠的安全服务环境,因此IT安全越来越成为人们关注的重点问题。

  SAML正是为解决网络安全性问题而发挥其作用。SAML在传统意义上的安全界定与商务站点之间建立了一种安全信息的交换渠道。SAML作为安全信息交换的“中间人”,促使一个站点上的交易业务能够在另一个信任的站点上得到处理完成。由此可见,实现交易双方商业协议或合作的一个先决条件,是要求使用SAML作为共享安全架构的一部分。

  SAML在标准行业传输协议环境里工作,例如HTTP、SMTP和FTP;同时也服务于各种各样的XML文件交换框架,例如SOAP和BizTalk。SAML具备的一个最突出的好处,是使用户能够通过互联网进行安全证书移动。也就是说,使用SAML标准作为安全认证和共享资料的中间语言,能够在多个站点之间实现单点登录。

  SAML是一种基于XML语言用于传输认证及授权信息的框架,以与主体相关的断言形式表达。在这里,主体是一个实体(人或计算机),这个实体在某个安全域中拥有一个特定身份,断言可传递主体执行的认证信息、属性信息及关于是否允许主体访问其资源的授权决定。针对以上不同目的,SAML提供以下几种不同类型的安全断言:

  ● 认证断言(Authentication Assertion):认证断言用来声称消息发布者已经认证特定的主体。

  ● 属性断言(Attribute Assertion):属性断言声称特定主体具有特定的属性。属性可通过URI(统一资源标识)或用来定义结构化属性的一种扩展模式进行详细说明。

  ● 决定断言(Decision Assertion):一个决定断言报告了一个具体授权请求的结果。

  ● 授权断言(Authorization Assertion):授权断言声称一个主体被给予访问一个或多个资源的特别许可。

  SAML断言以XML结构描述且具有嵌套结构,由此一个断言可能包括几个关于认证、授权和属性的不同内在断言(包括认证声明的断言仅仅描述那些先前发生的认证行为)。

  主流标准:SAML 2.0

  在2005年底,随着监控、移动设备、宽带业务以及应用安全领域的四家主要厂商通过了最后一回合的联邦身份互操作性测试,自由联盟(Liberty Alliance)公布了SAML 2.0。

  

 SAML 2.0版在2005年3月刚刚被OASIS批准。Liberty Alliance的目的是让尽可能多的厂商把SAML加入到他们的产品线中。

  通过互操作性测试的有四种产品,分别是IBM的Tivoli Federated Identity Manager、NEC 的Mobile Internet Platform、NTT Communication的I-dLive 宽带与网络服务身份联邦工具以及RSA Security公司的Federated Identity Manager。为了证明其互操作性,每个产品必须能够与至少两个厂商共享一个给定的SAML文件。

  Oracle和Sun公司在2005年7月已经通过了SAML2.0互操作性测试。现在,Liberty宣称已经有超过70种产品被授予了SAML证书。

  Liberty Alliance Conformance Expert Group的主席Roger Sulliva说:“互操作性是必须的。联邦的本质就是需要至少两个公司之间能够进行互操作。只有当你可以在网络中的任何访问点都能做到即插即用,这个标准才能起作用。”

  Sullivan表示,“我们的目标是为联邦制定出事实上的标准。”SAML并非惟一想达到这个目标的标准。OASIS最近在组建一个旨在建立一套新的安全标准的委员会。而尚在开发中的WS-Federation规格说明书却没有加入进来,人们预计它明年会跟进。

  有些人对WS-Federation的出现是否会在与SAML的结合部引起标准之间的争斗存在疑虑,Sullivan认为那将是两败俱伤的结局。他说:“假如标准之间不融合,那么厂商就不得不支持所有的标准。”

  Microsoft和IBM在建立WS-Federation方面很积极。Microsoft的产品现在还没有获得SAML证书,而IBM的Tivoli产品现在已经支持SAML以及WS-Federation。

  随着新的Web 服务安全标准被批准,Sullivan相信SAML会被采纳、赞同并获得优势地位。

  HP公司软件技术顾问王志刚在接受记者采访时表示,目前业界基本上是两大阵营,OASIS/Liberty与WS-*,即SAML2.0与WS-Federation,二者其实有些地方是重复的,未来统一的单一标准究竟会以哪个为基础,还没有定论,或许会建立在二者之上。

  以前,联邦身份一直受到标准过多问题的困扰。5个不兼容的协议(OASIS SAML1.0和1.1、自由联盟ID-FF 1.1和1.2以及Shibboleth)给企业和消费者的应用带来了麻烦,延缓了发展速度,增加了联邦身份部署的费用。寻求部署联邦身份的机构必须与每一位联邦合作伙伴协商选择协议。很多机构必须通过协议映射和转换技术来支持多个协议,而这些技术造成关键特性或功能的支持空隙。

  SAML 2.0消除了阻碍进一步采用联邦身份的最大障碍—多协议复杂性,因而大大改变了联邦身份的局面。SAML 2.0将来自每一个前任协议的各种关键使用情况和特性融入到一项标准中。由于SAML 2.0代表5个前任协议中所有功能性的集合,因此它将淘汰以前的协议。

  SAML 2.0说明实现联邦的两个角色。服务提供者是为用户提供应用或资源的实体,而身份提供商负责认证用户。服务提供者和身份提供者交换信息,以实现单一登录和退出。这些信息交换可以由身份提供者或服务提供者发起。

  在进行单一登录时,身份提供者负责创建包含用户身份的SAML断言,然后安全地将这个断言发送给服务提供者。服务提供者负责在让用户访问应用之前验证SAML断言的有效性。

  优势明显

  利用SAML,网络服务不需要借助安全认证机构就可验证令牌的有效性,不仅简化了单点登录步骤,还带来了许多传统单点登录方式所不具备的优点:

  1.SAML为认证声明和认证属性建立了一个数据格式,其参数取决于安全服务产生的基于政策的认证结果。使用SAML标准作为安全认证和共享资料的中间语言,能够在多个站点之间实现单点登录。

  2. SAML针对不同的安全系统提供了一个共有的框架,允许企业及其供应商、客户与合作伙伴进行安全的认证、授权和基本信息交换。由于SAML是通过XML对现有的安全模式进行描述,因此它是一个中立的平台并且不需要依赖于供应商的基础结构。

  3. SAML的消息格式能够从一个源站点(站点起到SAML认证管理机构的作用)将断言发送给一个接受者。使电子商务合作中的事务处理速度得到加快,并且使认证环境的复杂性得到全面的简化。

  关于单点登录的几点认识

  单点登录是个热门概念,所有身份与访问控制管理(IAM)产品中都有单点登录的身影。但是,众多的单点登录概念和实现技术让我仿佛坠入了五里雾中,在撰写本文之初,我既分不清单点登录之间的区别,也不明白单点登录和SAML之间的关系。还好,通过向专业人士请教,我大概明白了一二。

  根据我的理解,首先,单点登录可以分为企业内部的单点登录和Web单点登录两大类。如果企业内的应用都是B/S架构,或者企业内有C/S架构、B/S架构和Telnet应用,想实现单点登录,就需要采用企业内部单点登录解决方案。如果要在不同域名或不同企业间,或者同一企业的不同分支机构之间实现单点登录,Web单点登录则是更好的选择。

  其次,Web单点登录已经有了统一的标准,就是SAML 2.0。而企业内部的单点登录则没有任何标准,由于各企业内部应用的复杂性和独特性,每个厂商都在按照自己的设计思路和用户需求来提供解决方案。

  第三,国内的Web单点登录应用远远落后于国外。据RSA公司的工程师陈海林介绍,在国内,企业内部单点登录的应用较多,而Web单点登录才刚刚起步,这和国内的互联网发展进程密切相关。

阅读更多
个人分类: 公司网络安全构架
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭