SOA安全性解决方案
2008-01-10 09:39:06 来源:论坛整理 作者:Hugh Taylor 点击:
我们在这谈及了SOA中的安全性问题,大家都需要这方面的信息,因此是时候考虑一些针对这些难题的解决方案了。
我们在这谈及了SOA中的安全性问题,大家都需要这方面的信息,因此是时候考虑一些针对这些难题的解决方案了。简单地说,对于SOA安全性问题,您需要为您的SOA购买或开发一个安全性解决方案。详细来说则取决于具体情况,并且非常复杂。不过好在一个设计正确的SOA安全性解决方案可以解决SOA中的绝大部分安全性问题。解决方案本身可以包含多个分别解决SOA安全性中的某个特定方面的子解决方案。根据具体需求和现有的安全性基础架构,不同的企业需要不同的解决方案。
我的目标是提供一种评估安全性如何影响SOA规划的方式。我是一个SOA安全性产品提供商。而且,您将会感觉到我对于解决方案的一些偏好。与此同时,您应该清楚,我正在与以相同方式实现SOA安全性的其他许多公司进行竞争。实际上,市场已经证明,某些SOA安全性解决方案要优于其他同类产品。
SOAP消息监控
基于SOAP侦听的SOA消息监控是构建高效SOA安全性解决方案基础的一种手段。SOAP侦听

图1 一个用于监控SOAP消息的SOAP拦截器用作这个SOA中的安全性基础。SOAP拦截器分析它监控的SOAP消息的标题头中包含的用户身份,并将其与保存在现有安全性基础架构中的名称相比较。结果就是对SOAP消息发送方和接收方进行了身份验证和授权。
就是在web服务消费者和web服务之间来回传递的SOAP消息的路径中放入一个叫做“SOAP拦截器”的特殊软件块。因为其分类、监控、复制和转发包含大量数据的SOAP消息的能力,SOAP拦截器可以在SOA安全性方面发挥重大作用。如图7所示,一个SOA安全性解决方案“监视”着到达web服务的SOAP调用消息和对这些服务调用的响应。当它“看见”一条消息时,SOA安全性解决方案就会进行检查,以确保发出请求的实体是经过身份验证和授权可以使用web服务的。SOA安全性解决方案通过检查SOAP消息标题头中包含的数据实现了这一点。
在大多数情况下,SOA安全性解决方案是对现有安全性解决方案的扩展,而现有安全性解决方案是在迁移到SOA之前为保护整个企业而部署的。因此,SOA安全性解决方案很可能不得不与现有安全性基础架构进行连接和通信。如图7所示,SOA中的用户身份验证和授权发生在基于企业的授权用户数据库检查用户证书的时候。侦听SOAP消息,并把消息标题头中列出的用户与保存在现有安全性基础架构中的用户进行比较,便可实现身份验证和授权。
SAML和联邦身份验证
当需要对企业外部的SOA用户进行身份验证和授权时,又会怎么样呢?SOA的开放性使得上述情况比以往任何时候都更可能出现。您可能会面临这样一个难题:在一组在现有安全性基础架构中没有记录的用户中,搞清楚每个用户的身份。为了解决保护第三方过程中固有的安全性问题,SOA安全性解决方案可以使用联邦身份验证。联邦身份验证是这样一个过程:通过这个过程,多方可以达成一致,使用一组给定的标准来对一组指定的用户进行身份验证。联邦身份验证方法的使用者可以创建一个联邦身份管理系统(Federated Identity Management System),这是一个已验证用户的库。SOA安全性解决方案可以通过检查联邦身份管理系统来对某个用户进行身份验证。换句话说,一些相互通信的系统的“联邦”,可以一致同意某个用户是合法的。
在某些情况下,身份验证过程会导致在SOA安全性解决方案中创建安全断言标记语言(Security Assertion Markup Language,SAML)断言,用于以一种可为用户调用的web服务所接受的方式表达用户的真实性。SAML是一种基于XML的标准,它为以标准方式描述安全性信息提供了一个框架。WS-Security是迄今为止得到认可的安全性标准集合的总称。许多SOA安全性解决方案都利用了这些新兴的安全性标准。如图8所示,SOA安