SOA安全性:足够好而且越来越好

安全性不是远离SOA的理由。尽管SOA的安全性还没有完全成熟,但现在有30%的组织使用SOA与客户和合作伙伴进行外部集成。对于使用SOAP的标准Web服务,WS-Security作为基础标准已经达到了临界质量。另一方面,高级SOA安全性(包括合作伙伴之间的联合、不可否认性以及跨多个服务实现层的用户身份传播)还处于早期阶段。要引导高级SOA安全从现在的实用走向未来,请建立一个迭代设计过程,以改进您的SOA安全体系结构,该过程考虑您当前和未来的安全需求、新兴行业规范、SOA安全的产品功能重叠,以及定制安全集成的可能性。

关于SOA安全性的更多信息:基本SOA定义和解决方案SOA安全性:爱尔兰的运气有多好你对SOA安全性不安全吗?

作为设计SOA安全性的基准,保护SOA请求和响应的最简单方法是将它们放置在虚拟专用网(VPN)中。外部SOA安全最常用的方法是双向安全套接字层(SSL),它:1)允许每个通信伙伴对另一个进行身份验证,2)设置了一个高安全标准:黑客甚至无法连接到基于SOA的服务,除非他们从服务使用者处窃取证书和密钥。尽管VPN相对容易建立,但基于VPN的SOA安全是粗粒度的,不能支持高级功能,例如:跨多个服务实现层的用户身份传播;多个安全域之间的协调和联合;以及严格的不可否认性。此外,证书的持续管理可能会成为管理负担。

SOA安全性的其他主要替代方案包括利用Java或.NET应用程序平台中现有的SOA安全功能,并将SOA安全性集中在SOA专业产品(如企业服务总线、SOA和Web服务管理解决方案、SOA安全服务器或SOA设备)中。设备为SOA安全性提供了最简单、最集中的“drop-in”解决方案,但是在构建整个SOA平台时,需要在SOA专业产品之间考虑复杂的权衡。

即使有应用服务器和SOA专业产品的新兴特性,简单的SOA安全解决方案也可能是引人注目的,从历史上看,组织一直不愿解决实现高级应用程序安全需求的困难。随着SOA安全实现的成熟,以及更广泛的安全联合体系结构,实现高级安全场景将变得更容易。许多用户组织会发现,高级SOA安全成为强制性的—尤其是随着数据隐私和其他法规的增加。因此,即使您从一个简单的SOA安全解决方案开始,根据业务需求和SOA安全成熟度的需要,预测构建附加的、更深入的安全功能的需求并保持路径畅通也是很重要的。

Forrester强烈建议您设计一个不需要应用程序开发人员进行安全相关编码的解决方案。即使有强有力的指导方针和代码审查,将安全性嵌入到应用程序代码中也是有风险的,无论是在实现一致的安全性方面,还是在允许应用程序安全性的未来灵活性和增强方面。请注意,让开发人员不必为安全性编写代码并不能消除培训应用程序开发人员使用安全编码实践的需要。安全编码是应用程序安全实践的一个独立领域,涉及到确保应用程序故障不会打开安全漏洞等问题。

为您的安全策略找到行业标准、产品、集成和框架的正确组合是一个迭代过程,您可以:

1.确定您的安全要求。根据广泛的、战略性的安全功能列表来评估您的需求。这为设计SOA安全策略和解决方案奠定了基础。根据基于SOA的解决方案的主要设计焦点组织需求。Forrester使用一个围绕服务使用者、请求-响应、服务提供者和安全环境组织的模型。当您继续进行SOA安全性设计的迭代过程时,您可能需要重新考虑所选的需求,因为您了解了更多关于标准、产品以及您的组织为您的需求所暗示的SOA安全性付费的能力的信息。

2.确定您对SOA安全规范的使用。您的SOA安全需求为确定可能满足您的需求的SOA安全规范的范围奠定了基础。然而,在选择您将使用的实际规范时,您必须说明您的基础结构中的产品(现有产品,以及您可能为SOA购买的新产品)将支持哪些规范。核心规范包括WS-Security、WS-I基本安全概要、XML加密和XML签名。高级规范包括WS-Trust、WS-SecurityPolicy、WS-Federation、XACML和WS-SecureConversation。

3.选择将提供核心SOA安全功能的产品。SOA安全解决方案中的许多功能(例如使用WS-security头执行身份验证)可以由不同产品类别中的多个产品类型执行。您的设计过程必须考虑每个选项,评估权衡,并选择一个产品(或一组协调的产品)来提供SOA安全的核心功能。可能有助于您的SOA安全解决方案的关键产品类别包括:SOA设备、SOA管理解决方案、企业服务总线、SOA安全服务器、应用程序服务器、安全令牌服务器、授权管理服务器以及身份和访问管理解决方案。

4.配置和集成产品以协同工作。很可能您将拥有多个执行给定SOA安全功能的产品,并且这些产品必须集成在一起才能协调一致地工作。大部分集成可能是通过产品配置选项完成的(例如,配置SOA设备以将身份验证委托给特定的单点登录产品),但可能需要使用产品编程接口构建集成组件。

5.用框架填充孔洞。产品集成完成后,为应用程序开发人员构建helper框架可能很有用,这样他们就不必在基于SOA的应用程序中编写安全代码。

Forrester建议使用迭代过程有两个主要原因。首先,通常不是所有的应用程序都需要您的所有安全需求;初始应用程序在构建SOA安全解决方案时可能需要更轻量级的传递,而稍后的应用程序则需要您在解决方案中添加其他功能。第二,每次通过时,您将更多地了解如何利用现有的部分构建最有效的SOA安全解决方案。

SOA领导者仍在为其他人铺路。对于某些组织,可能存在高级安全性具有很高价值的业务场景。这样的组织可以证明构建高级SOA安全解决方案的成本是合理的。这些领导者将一路帮助巩固行业规范,并帮助供应商成熟他们的产品。如果您的组织迫切需要高级SOA安全性,那么有许多可用的产品和标准可供构建,但请谨慎行事:您应该在项目计划中为原型设计、产品调试以及性能和可伸缩性测试留出额外的时间。

RandyHeffner是Forrester Research的副总裁,为企业架构专业人士提供服务。他是构建企业应用程序的体系结构和设计方法方面的领先专家,这些应用程序在面对不断的业务和技术变化时是安全和有弹性的。

你发微博吗?跟随一切CIO.com网站在Twitter@cionline上。

这个故事“SOA安全:足够好并且越来越好”最初由

首席信息官。