安全断言标记语言SAML的应用研究

安全断言标记语言SAML的应用研究
安全断言标记语言SAML的应用研究

网络通讯与安全

本栏目责任编辑:冯蕾

1引言

随着互联网软件技术和应用模式的不断演变,基于Web服务的分布式计算模式正在成为发展的潮流。许多企业和政府部门已开始基于Web服务在互联网上提供信息共享与应用服务。由于用户完成一次活动/交易所要访问的服务可能分布在不同的应用系统中,用户在进入不同的系统边界时都需要进行登录(如多次输入用户名和口令),这将影响执行效率并使用户失去耐心,影响其对服务提供商的信心。如何解决这个问题,就引出了单点登录的概念。

单点登录(SingleSign-On,SSO),即用户在访问多个系统和多种受限资源时,只需进行一次登录和身份验证,不用重复登录,用户安全信息转换为电子身份后自动地传递到多个系统,从而提高工作效率和安全性。

同时随着Web服务技术爆炸性地广为传播,典型的Web服务正面临着各种新的问题,传统的安全保护技术方法已经不能胜任,而一些常用的安全通信机制(如SSL,TLS,IPsec等)也不能满足Web服务的安全通信,如何提供安全可信的Web服务已成为Web服务应用必须解决的关键问题。

SAML是一个基于XML的框架,用于在不同的实体间交换有关主体的安全断言信息,可以提供分布式环境下不同的安全服务的互操作性。本文讨论了SAML两个最重要的用途:实现Web单点登录和保证Web服务安全性。

2安全断言标记语言(SAML)

SAML(SecurityAuthenticationMarkupLanguage)是由两项较早的安全提议派生而来,即安全服务标记语言(SecurityServicesMarkupLanguage,S2ML)和授权标记语言(AuthorizationMarkupLanguager,AuthXML)。2002年11月,SAML1.0被批准为OASIS(OrganizationforAdvancementofStructuredInformationStandards)标准,OASIS于2003年9月发布SAML规范1.1版,2005年3月,OASIS批准SAML2.0为标准规范。SAML2.0融合了以前的SAML版本、LibertyAlliance的身份联合框架(IdentityFederationFramework,ID-FF)1.2和Shibboleth。

2.1SAML的参与者

主体(subject):可以是一个人也可以是其它类型的实体,比如

一个公司或者一个计算机。

身份提供者(IdentityProvider,也叫SAML断言方):负责创建、维护和管理主体的身份信息,对信任圈内的其他服务提供者进行主体认证的系统实体。

服务提供者(ServiceProvider,也叫SAML信任方):向主体提供业务服务或工具的实体。

2.2SAML规范的组成

SAML规范由断言、

请求/响应协议、绑定和概要这四个部分组成。

断言是SAML的基本数据对象,是对主体(用户、计算机)的安

全信息(身份、权限等)的XML描述形式。SAML断言能够传递三种

信息:主体完成认证行为的信息、

主体的属性信息以及关于主体是否允许访问特定资源的授权决策信息。因此对应SAML断言包括三种形式:认证断言(AuthenticationAssertion)、属性断言(At-tributeAssertion)和授权决策断言(AuthorizationAssertion)。其中认证断言描述与认证成功事件相关的信息(如认证的机构、方式和有效期等);授权决策断言描述许可权查询和检查的结果,此结果可以是接收或拒绝主体对资源的访问请求;属性断言描述与主体的

认证和授权决策相关的信息(如主体的标志、

所属用户组、角色、可访问的资源及权限等)。断言就是一组由签发者提供的包含认证、属性和授权决策信息的集合[1]。

每个断言都包含version,assersionID,Issuer,IssuerIstant(断言创建时间)等必要信息。断言中的<Conditions>元素用来描述断言的有效时间、特定接收者。<Statement>元素可包含<SubjectState-ment>用来描述认证对象的相关信息;<AuthenticationStatement>记录了认证方式、认证时间、IP地址等内容;<AuthorizationDecision-

Statement>记录了授权的依据、

权限等信息。请求/响应协议(Protocol)规定了两点间共享SAML数据(断言)所需交换的消息种类和格式,而两点间的消息传输通过与具体传输协议的绑定来实现。

SAML绑定(Bindings)确切地详细描述了SAML请求应如何映射到诸如HTTP上的SOAP消息交换之类的传输协议。

概要(Profiles)控制在底层通信协议中嵌入和提取SAML信息的一组规则。

3SAML的应用

3.1实现Web单点登录3.1.1单点登录(SSO)

传统的单点登录解决方案[2]根据应用程序的登录方式可以分为两类,一种是基于脚本(Script)的SSO解决方案,一种是基于

访问票据(AccessTicket)的SSO解决方案。

基于脚本的解决方案的优点在于实现容易,可以在不需要修改目标系统的代码的情况下把一个目标系统加入SSO解决方案;缺点在于需要安装客户端软件,其安全性还有待提高,由于目标系统不用修改,实现SSO的一

些除登录外的其他功能(如单点注销、

目标系统间用户数据的安全交换、用户身份的集中管理等)也是难以解决的问题。对于基于

收稿日期:2007-08-10

作者简介:胡静瑶(1977-),女(汉族),山东临沂市平邑县人,讲师,学士,研究方向:网络安全,软件工程。

安全断言标记语言SAML的应用研究

胡静瑶

(临沂师范学院信息学院,山东临沂276005)

摘要:SAML是一项基于XML的交换安全性信息的框架,实现Web单点登录和保证Web服务安全性是SAML最重要的用途。本文讨论了SAML实现这两个用途的方法。

关键词:安全断言标记语言;单点登录;Web服务安全中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)17-31247-02

TheResearchOfApplicationOfSAML

HUJing-yao

(DeptOfInformation,LinyiNormalUniversity,Linyi276005,China)

Abstract:SAMLisaXML-basedframeworkforexchangingsecurityinformation.WebSingleSign-OnandsecuringWebServicesistheimportantusageofSAML.Howtoimplementtheaboveusageisdiscussedinthispaper.

Keywords:SAML;SingleSign-On;WS-Security

1247

网络通讯与安全本栏目责任编辑:冯蕾

访问票据的SSO解决方案,其主要目标是通过要求目标系统进行改造接受访问票据来实现SSO,对用户的验证工作由SSO服务器负责,目标系统的责任只是向SSO服务器验证访问票据的有效性。这种解决方案的倾向于形成一个SSO的标准(包括:访问票据的表示、用户与SSO服务器间通信、目标系统与SSO服务器间通信等),各个需要进行SSO的目标系统必须遵循这个标准。

3.1.2SAML实现WebSSO的模式

根据身份提供者和服务提供者的交互方式,SAML可以分为两种模式:Browser/Artifact方式和Browse/Post方式[3]。两种方式都有用户浏览器、身份提供者和服务提供者组成。

图1Browse/Artifact方式图2Browse/Post方式

3.1.2.1Browser/Artifact方式

Browser/Artifact方式是主体从身份提供者接收Artifact。其中Artifact是标识,用来唯一指向一个SAML断言。而Web服务提供者则使用该Artifact来获取SAML身份验证断言。这种模式可以提供更多的安全性,因为SAML身份验证断言并不随主体一起传输,相反,服务提供者必须通过其他的通道来单独获取该断言。

Browser/Artifact方式的认证过程如图1所示。认证过程分为六个步骤:

(1)用户浏览器访问身份提供者进行身份验证。身份提供者为用户创建代表登录上下文的SAML断言,并创建唯一指向这个断言的Artifact。

(2)用户浏览器访问身份提供者信任域内的服务提供者。身份提供者将用户重定向到服务提供者。

(3)用户浏览器访问服务提供者,并将Artifact以查询字符串的形式包含在目标站点的URL。

(4)服务提供者通过收到的Artifact想身份提供者请求认证所需要的SAML断言。

(5)身份提供者想服务提供者回复所请求的SAML断言。

(6)服务提供者根据所收到的SAML断言及相关安全策略,决定是否向用户提供所访问的资源。

3.1.2.2Browse/Post方式

Browse/Post方式比较简单,用户的认证信息以form的形式提交给服务提供者。认证过程如图2。

具体认证过程如下:

(1)用户浏览器访问身份提供者进行身份验证。身份提供者为用户创建代表登录上下文的SAML断言。

(2)用户浏览器访问身份提供者信任域内的服务提供者。身份提供者将用户重定向到服务提供者,并将其产生的SAML断言以htmlform的形式发送给用户浏览器。

(3)用户浏览器访问服务提供者,并将SAML断言提交给服务提供者。

(4)服务提供者根据所收到的SAML断言及相关安全策略,决定是否向用户提供所访问的资源。

在Browser/Artifact方式中,身份提供者和服务提供者之间传输断言的过程对用户是透明的。Browse/Post方式中所有的安全信息都是通过浏览器进行传送,因此安全性很难得到保证。此外,在步骤(2)中身份提供者将用户认证的断言发送给用户浏览器,这使得断言创建后很难由身份提供者控制,因此在实现WebSSO时,最好采用第一种方式。

3.2保证Web服务安全

3.2.1WS-Security

WS-Security是OASIS提出的一个WebServices安全规范,它定义了一组SOAP标准扩展,以满足保护Web服务的安全以及实现消息验证、消息完整性、消息机密性和安全令牌传播等需求。它还定义了用于支持各种安全令牌、签名、加密机制以及基于标准的安全技术(包括PKI和Kerberos)的机制。其主要目的之一是实现端到端(end-to-end)的安全,保证SOAP消息通过不安全的中间节点,安全可靠地从请求者到达提供者。为实现这一目的,WS-Se-curity不再依赖传输层安全机制,而是直接在SOAP消息中嵌入安全标记,并对需要保密的数据进行加密。SOAP消息到达目的结点后由服务提供者直接验证这些安全信息的真伪并解密相关数据。这样就避免了中间结点的依赖,从而实现端对端的安全性。

WS-Security规范为Web服务应用的安全提供了3种保证[4]:消息完整性、消息加密和单消息认证。

(1)消息完整性:WS-Security使用XML签名对SOAP消息进行数字签名,保证SOAP消息经过中间结点时不被篡改。

(2)消息加密:WS-Security使用XML加密对SOAP消息进行加密,保证SOAP消息即使被监听,监听者也无法提取出有效信息。

(3)单消息认证:WS-Security引入安全令牌的概念,代表服务请求者的身份。通过与数字签名结合,服务提供者可以确认SOAP消息由合法的请求者产生。OASISWS-SecurityTC开发了一种SAML令牌概要(SAMLTokenProfile),该概要定义了在WS-Se-curity中使用SAML1.1和SAML2.0断言的规则。

3.2.2在WS-Security中使用SAML令牌

在WS-Security中使用SAML令牌的过程如图3,具体步骤如下:

(1)发送者获取SAML断言。

(2)发送者构造SOAP消息,其中SOAP头中包含WS-Securi-ty。SAML断言作为WS-Security令牌放到security头中。SAML断言中包含的密钥(key)用来对SOAP消息体中的信息进行数字签名,签名信息同样放到security头中。

(3)接收者验证数字签名。

(4)SAML断言中的信息可以用作访问控制或者审计日志等。

图3在WS-Security中使用SAML令牌

4结束语

SAML作为一种面向Web服务,基于XML的安全信息交换和共享语言,支持单点登陆(SingleSign-On),通过SAML,用户访问某个信任域的所有Web服务时,只需要一次登录。同时SAML还可以用于保证Web服务安全性。

参考文献:

[1]ScottCantor,JohnKemp,RobPhilpott,etal.AssertionsandProtocolsfortheOASISSecurityAssertionMarkupLanguage(SAML)V2.0[EB/OL],http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf,200.

[2]林满山,郭荷清.单点登录技术的现状及发展.计算机应用[J],2004,24(6):248-250.

[3]ScottCantor,FrederickHirsch,JohnKemp,etal.BindingsfortheOASISSecurityAssertionMarkupLanguage(SAML)V2.0[EB/OL],http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf,2005.

[4]王凡,李勇,朗宝平,等.基于WS-Security构筑安全SOAP消息调用[J].计算机应用,2004,24(4):121-

123.1248

电脑知识与技术

超文本标记语言

第1章HTML基础 HTML(超文本标记语言)是制作网页的基础。HTML标记是HTML的核心与基础,用于修饰、设置HTML文件的内容及格式。 一个HTML文件中包含了所有将显示在网页上的文字信息。其中也包括对浏览器的一些指示,如文字应放置在何处,显示模式如何等。如果还有一些图片、动画、声音或是任何其他形式的资源,HTML文件也会告诉浏览器到哪里去查找它们,以及它们将放置在网页中的什么位置。 教学目标 通过对本章的学习,读者应了解和掌握HTML的各种标记和语法,并能够使用HTML 设计简单的静态网页。 教学重点与难点 ●使用HTML设计静态网页 ●编辑网页文本格式 ●创建超链接 ●使用表格 ●使用列表 1.1 网页基础知识 Internet是从Interconnected Networks延伸而来的,是跨国界的网络。Internet把世界各地数以千万计的计算机和传输线路连接在一起构成一个网络。通过它可以交换信息、共享资源,并以此为基础实现各种计算机通信应用项目。在Internet中,网页是它的重要组成部分,本节首先介绍一些与网页相关的名词和概念。 1.1.1 万维网——WWW WWW(World Wide Web)即环球信息网,也可以称为Web,中文名字为“万维网”。 用户在使用浏览器来访问Web的过程中,无须关心一些技术性的细节即可得到丰富的信息资料。WWW 是Internet上发展最快和目前使用最广泛的一种服务。

简单的说,WWW是漫游Internet网的工具,它把Internet上不同地点的相关信息聚集起来,通过WWW浏览器(比如IE,Internet Explorer)检索,无论用户所需的信息在什么地方,只要浏览器为用户检索到之后,就可以将这些信息(文字、图片、动画、声音等)“提取”到用户的计算机屏幕上。 1.1.2 超文本传输协议——HTTP HTTP(HyperText Transfer Protocol)即超文本传输协议,它是WWW服务器上使用的最主要协议。通过这一跨平台的通信协议,在WWW任何平台上的电脑都可以阅读远方服务器(Server)上的同一文件。 HTTP协议经常用来在网络上传送Web页。当用户以http://开始一个超链接的名字时,就是告诉浏览器去访问使用HTTP协议的Web页。 HTTP协议不仅能保证正确传输超文本文档,还可以确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等等。 1.1.3 统一资源定位器——URL URL(Uniform Resource Locator)即统一资源定位器,它使用数字和字母来代表网页文件在网上的地址。URL好比Internet的门牌号码,它可以帮助用户在Internet的信息海洋中查找到所需要的资料。 Web上所能访问的资源都有惟一的URL。URL包括所用的传输协议、服务器名称、文件的完整路径。例如:在浏览器的URL处输入https://www.360docs.net/doc/169677632.html,/index.html就可以访问搜狐网站的主页。 URL的第一部分http://表示要访问的资源类型。其他常见资源类型中,ftp://表示FTP 服务器,gopher://表示Gopher服务器,new://表示Newgroup新闻组。 第二部分https://www.360docs.net/doc/169677632.html,是主机名,它说明了要访问服务器的Internet名称。其中,www表示要访问的文件存放在名为www的服务器里,多数公司都有指定的服务器作为对外的网上站点,叫做www;sohu则表示了该网站的名称;.com则指出了该网站的服务类型。 目前,常用的网站服务类型的含义如下:.com特指事务和商务组织;.edu表示教育机 构;.gov表示政府机关;.mil表示军用服务;.net表示网关,由网络主机或Internet 服务提 供商决定;.org一般表示公共服务或非正式组织。 另外,有些域名后面会带有本国和地区的域名。例如:新浪的网址 https://www.360docs.net/doc/169677632.html,中的cn就代表该网站属于中国。另外,au代表澳大利亚、ca代表加拿大、fr代表法兰西、uk代表英国、jp代表日本等。 第三部分/index.html表示要访问主机的哪一个页面文件,可以把它理解为该文件存放

html超文本标记语言

… 表示该文档是html文档 … 头部标记 网页的标题标记