RSS订阅
RSS订阅TT SOA
您现在的位置:TT SOA > SAML > 揭开安全标准的神秘面纱

揭开安全标准的神秘面纱

2008-3-17  选择字号:  | |
打印本文章

导读:其中最为人们所认可的是Web Services安全性(WSS)、安全性断言标记语言(SAML)和可扩展访问控制标记语言(XACML)。

关键词:Web Services WSS SAML XACML

正在加载数据...

  在过去的三年中,人们开发出了许多关于信息安全(Information Security)的新标准。其中最为人们所认可的是Web Services安全性(Web Services Security,WSS)、安全性断言标记语言(Security Assertion Markup Language,SAML)和可扩展访问控制标记语言(Extensible Access Control Markup Language,XACML)。本文会简单介绍这三者,包括它们是如何开发出来的、为什么需要它们、如何使用它们、它们之间以及它们与现有各种安全性标准之间的关联。以后的文章会对这些内容进行更详细的介绍。

  WSS、SAML和XACML之间有许多共性。或许最明显的就是它们都使用XML表示信息。其次是,因为这三种可用的安全服务都已经在计算机系统中应用多年了,为了更加适用于大型分布式环境,如互联网,它们都具有一些特定的功能。此外,三者都参考并结合了现有的安全性标准,并尽量减少对已有功能的重复。

  两个主要原因促使三者都采用了XML技术。第一,XML使它们便于扩展,以便可以以一种原有格式无法实现的方式来满足某种特殊需求。第二,XML支持采用大量可用的软件工具进行处理的实现。对于WSS来说,还有一个原因,即,WSS被设计为支持与SOAP的语法和处理模型进行紧密集成,而SOAP是用XML定义的。

  SAML

  授权和审计跟踪是常见的安全服务。以前,大多数系统设计时都假设做出访问控制决定所必需的所有信息都由单个系统来处理,并且所有要记录的数据都放在审计跟踪中。但是,大规模分布式系统通常是由多个组织使用各种产品建立的。这意味着用户可能要由不同的验证方使用不同的方法进行验证。此外,不同的验证方还要保存有关用户特性和属性的不同信息。集中管理所有这些能力和信息是不现实的。SAML提供了标准格式来表示身份验证、用户属性以及请求和接受该标准的协议。这被称为身份联盟(Identity Federation)。

  在OASIS的最初开发阶段,SAML只指定了该身份信息的生产者与消费者之间的通信。SAML定义了如何创建有关用户属性和身份验证事件的断言,以及如何以一种灵活而可扩展(以便满足其它需求)的方式获得这些信息。SAML还详细定义了一些常见场景(如:Web单点登录)来确保互操作性。

  Liberty Alliance Project和Internet2 Shiboleth group进一步地增强和扩展了SAML。增加了许多新功能,以便支持SAML验证方之间的通信,更加详细地描述身份验证方法,注销用户并保护隐私。这些工作又提交给OASIS,并合并到SAML2.0中,SAML2.0在2005年3月成为一个OASIS标准。SAML被设计为用于多种不同的环境,支持使用不同的身份验证和加密方法。它支持各种不同的消息流,甚至可以用于不使用XML的遗留环境中。

  XACML

  XACML,也是由OASIS开发的,是一种表示访问控制策略的语言。大多数计算机专业人士都熟悉基于权限或访问控制列表(ACL)的访问控制。但是,这些机制缺少表示复杂策略(在现实系统中经常需要用到)的能力。因此,访问控制策略通常会嵌入应用程序代码中。这使得更改策略(或者只是找出哪些策略正在实施)变得很困难。

  XACML能够实际地使用任何可用的信息来决定是否该许可对一个资源的访问。也可以关联附加的动作、被调用的契约和决定,例如,要求请求的数据在90天后删除。

  XACML可以根据资源的属性做出决定,包括资源的内容或环境因素,如日期、时间或位置。它也会考虑到与请求关联的各方的特性,比如角色或组成员关系。这可能不只包括请求方,还包括其他方,比如接受数据方或请求中转方。

  XACML 2.0在2005年2月成为一个OASIS标准。它在具有多个创建策略的管理员的大规模环境中运行良好。因为SAML可用于任何访问控制系统,XACML可以与SAML一起使用,或者单独使用。有专门的支持它们一起工作的特性。

  WSS

  WSS指定了如何保护通过网络传递的SOAP消息。它包括身份验证、完整性保护和保密性。它没有指定如何实现访问控制,但提供了可以用于访问控制的信息。在WSS出现之前,最常见的保护消息的方法是使用SSL或TLS协议。这些协议仍然适用于许多应用程序,但WSS提供了更多的功能和灵活性。

  SSL和TLS是对整个消息进行加密,而WSS允许有选择性地实现加密。例如,它允许应用程序防火墙检查没有加密的部分。此外,WSS还支持复杂的多方交互,这是处理复杂的电子商务事务所需要的。

  此外,WSS在基础架构选择方面提供了更大的灵活性。同SSL和TLS一样,它也支持X.509技术,还可以使用Kerberos、SAML或以前的普通用户名和密码。因为WSS作用于SOAP层,在信息在网络上传输甚至在对消息进行排队或存储时,它都能发挥作用。

  WSS采用W3C所开发的XML数字签名(XML Digital Signature)和XML加密(XML Encryption)标准。WSS通过将称为Security的XML元素插入SOAP标题中而发挥作用。其中包含所有有关应用于消息的身份验证、数字签名和加密的信息。它向接受方提供解密和验证消息所需的信息。密钥和身份验证信息可以使用X.509证书、Kerberos ticket、SAML断言或其他方法进行定义。

  2004年,WSS 1.0成为一个OASIS标准。现在,WSS 1.1就要完成了。由于WSS所提供的灵活性,不同产品间的互操作可能会比较困难。为了解决这个问题,Web Services Interoperability Organization组织(WS-I)正在开发一个配置文件,以便减少可变性,并给出使用WSS(以及SSL和TLS)的最佳实践。这个Basic Security Profile (BSP)的草案已经公布,并预计于2006年初完成。WS-I成员还构建了一个示例应用程序来说明WSS和测试工具(可以检查消息是否服从BSP)的正确使用。

  结束语

  上面介绍的三个安全性标准在设计时就被赋予了极大的灵活性,这是通过使用XML而实现的。SAML和XACML在几乎所有的环境中都支持身份验证服务,但更适用于大规模分布式系统。在SOAP环境中,WSS提供了明确的消息保护,但是在软件基础架构方面,它提供了很多选择。有XML作为其共同的基础,这三个标准可以有效地共同使用,或者也可以单独使用。

来源:dev2dev    作者:Harold Lockhart    
相关的白皮书
我们试图在一个巨大的电信级产品上执行Web服务。数据需要在线路上传输是很关键的,并且要保证数据安全。
其中最为人们所认可的是Web Services安全性(WSS)、安全性断言标记语言(SAML)和可扩展访问控制标记语言(XACML)。
向业务合作伙伴开放公司的服务导向架构(SOA),是否值得冒险一试?
SAML已经被结构化信息标准促进组织(OASIS)批准为Web 单点登录的执行标准。SAML连同Web单点登录共同构成了现代网络环境中的必备条件。
当今,越来越多的系统通过Web服务、门户和集成化应用程序彼此链接,对于保证欲共享的信息安全交换的标准的需求也随之日益显著起来。
虚拟化和SOA之间是一种间接的、相辅相成的关系。也许在IT及业务转型中,两者的结合使用会发挥最大的优势。虚拟化有助于更快地显示部署基础设施的投资回报率(ROI)。
云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。
安全对于许多的IT部门来说都是一个重要的问题之一,但是SOA安全问题完全是在另一个新的纬度上了。对于SOA为一个机构所带来的许多的好处,例如具有在许多不同的提供者和供应商的情况下混合和匹配服务。
最新更新
专家答疑
技巧
Ron Schmelzer,Jason Bloomberg
你认为通过遵循IT组织步骤可以演变为SOA吗?ZapThink公司明确SOA实行肯定是一个挑战——也不应被视为这一倡议应得到执行的一个步骤就是整个企业的基础……
Dana Gardner
您能解释什么是“私有云”吗,能否举例说明?这是供应商需要建立的基础吗?作为托管服务供应商和服务供应商寻求最有效和最强大的基础设施,作为他们的“云”支持能力……
Andrew Pollack
我们正在寻找一种从主机选择SOAP服务器的请求。我们希望制造一个远程程序呼叫(RPC)从CICS程序的SOAP服务器,其中进程请求,使错误或成功后的反应……