站内搜索:
免费注册 登陆     
您现在的位置:TT SOA > 技巧 > SOA安全性基础知识:创建任何人都可以使用的高层次设计
SOA安全性基础知识:创建任何人都可以使用的高层次设计
2008-6-25   | |

  本系列讨论面向服务的体系结构(Service-Oriented Architecture,SOA)安全性实现路线图。本系列共包括三个部分,本文是其中的第二部分,将讨论可帮助SOA安全团队开发成功的高层次设计的规则。

  SOA安全实现和整个SOA一样,应该视为一个长期的过程。就像任何过程一样,如果要成功,您将需要某些特定的东西。

  本系列的第1部分重点讨论路线图,此路线图提供了简单的10步骤流程,可作为SOA安全团队的总体指南。在该流程的第7步“遵循SOA安全实现的SDLC流程”中,SOA安全团队将进行任何SOA安全实现的高层次设计(High-Level Design,HLD)。在此步骤,将期望SOA安全团队遵循软件开发生命周期 (Software Development Life Cycle)。

  软件开发生命周期

  软件开发生命周期 (SDLC) 通常包括四个阶段:

  ·需求
  ·设计
  ·编码
  ·测试

  SDLC的第二阶段(设计阶段)的目标是得到系统的总体设计。设计阶段包括两个子阶段:HLD和详细设计(Detailed-Level Design,DLD)。对于 HLD,您作为安全企业架构师(Security Enterprise Architect,SEA)将对SOA安全实现的功能需求和非功能需求进行检查,并设计总体解决方案体系结构。与企业架构师(Enterprise Architect,EA)类似,SEA负责以下事项:

  ·确定公共模式,以便了解系统之间的高级关系,从而能够对旧系统进行变更来创建新系统。
  ·获得正确的体系结构,这对于软件系统的设计至关重要。错误的体系结构会带来灾难性的后果。
  ·对软件体系结构有详细的了解,将允许团队在设计备选项之间作出明智的决策。
  ·提供体系结构表示形式,这对复杂系统的高级属性的分析和描述非常重要。

  最基本的观念是,对于任意成功的SOA安全实现而言,构造良好的HLD非常关键,SEA对带领SOA安全团队进行其创建工作负有最终的责任。

  创建HLD的简单规则

  尽管SOA安全实现HLD非常重要,但SOA安全团队并不是总能清楚地确定HLD的目标应为什么。在没有专用体系结构资源的情况下,团队成员经常被体系结构概念所淹没,而且不熟悉可帮助其管理整个流程的建模工具。

  这里,除了建议的工具外,还提供有用的提示和规则,供SOA安全团队成员采用和包含到流程中,以创建成功的SOA安全实现HLD。

  在开始编写HLD文档之前,SOA安全团队成员应该记住一些基本的首要规则。实际上HLD应该:

  ·为关系图或关系图组,注释尽可能少。
  ·开始时尽可能简单尽可能抽象。
  ·能够被所有涉众理解。
  ·满足需求文档中列出的整个安全需求集。
  ·使用的关系图数量尽可能少:只有一个关系图最好了,但并非总是可行。
  ·包含所有主要对象,但必须对其进行保护,并以通用的方式对其进行表示。
  ·包含对象间所有的关键安全关系。
  ·用于生成所有安全测试用例。
  ·利用面向对象的概念,如封装、继承和多态性。
  ·作为生成DLD的起点。

  您的重点应该放在提供关键问题的答案,如“我们何时开始?”“我们如何继续?”“我们如何知道何时已经完成了?”

  创建HLD

  SOA安全团队的HLD工作的主要目标是创建可作为沟通工具的文档:文档必须针对整个团队并代表整个团队的立场。在SOA团队成员陷入体系结构文档的细节之前,应该将重点放在对其需求进行全面检查上,了解其总体安全目标是什么。HLD必须清楚地从SOA实现的总体安全性的角度说明其设想。

  将团队就主要涉众SOA安全实现问题达成的协议正式化就是下一步要进行的工作。例如,文档应该包括以下问题:
 
  ·我们需要什么?(安全人员和需求文档)
  ·我们要构建什么?(开发人员)
  ·我们所投资的是什么?(高层管理)

  HLD还必须提供更为复杂问题的答案,如非功能需求等。这些需求包括系统审核与控制、可扩展性、弹性、垂直伸缩性和水平伸缩性、多站点问题以及第三方工具的集成。

  决定何时开始HLD工作并不容易。受到广泛认可的行业指导原则是,将能力成熟度模型集成(Capability Maturity Model Integration,CMMI)3-4 级别(请参见参考资料)作为实现企业SOA安全战略的基础。在开始进行相应的工作前,应该完成很多详细的需求文档。而且,必须同时了解SOA安全服务实现的大部分内容。在开始HLD前,团队应该已经列出了其需求,了解用于满足这些需求的服务,并将这些服务与相应的需求建立了联系。

  标识主体

  在深入开展HLD的工作前,团队应该创建其必须加以保护的所有实体的列表。在安全领域中,必须保护的项目称为主体。以下是典型SOA系统的高级主体:

  ·应用程序或服务
  ·硬件
  ·消息
  ·编排
  ·服务组件
  ·SOA组件(例如,企业服务总线(Enterprise Service Bus,ESB))
  ·用户
  ·实用工具

  此外,SOA安全团队应该生成高级图形表示形式,以说明团队成员将如何保护主体之间的交互。图1显示主体如何进一步划分为参与者 和资源,其中每个参与者可以为调用资源的功能的人员或计算应用程序,而每个资源则是服务功能、数据、组件或实际效果。主体之间的安全中间层可以进一步分解为执行点、决策点、契约和属性。

  图1. 受保护的主体交互
 
  主体交互

  由于上面列出的每个主体可能与其他主体交互,因此图1中所示的中间层要求为每个交互提供一个这样的关系图。对于具有表1中所示的聚合的SOA实现,大约可能会有1000 x 1000个交互。即需要考虑的(至少在HLD中如此)主体间的潜在交互数量为1,000,000。

  表1. SOA主体计数

  SOA主体 计数
  应用程序或服务50
  硬件50
  消息700
  编排50
  服务组件50
  SOA组件(ESB) 1
  用户50
  实用工具49
  共计  1000 

  保护主体交互

  随着对主体间的交互的进一步细分,将出现特定的SOA安全服务来专门负责保护这些交互。在开始SOA HLD前,团队应该创建将服务与主体关联的表格。表2显示了一段需求文本摘录,其中的identification服务与所有主体关联。

  表2. SOA安全需求

  需求编号 服务 描述

  1 Identification 所有主体必须能够唯一进行标识。
  2 Identification 安全性必须提供分配给所有指定主体的唯一标识的机制。
  3 Identification 安全性必须提供记录何时添加、删除或修改主体的标识。
  4 Identification 安全性必须提供用于管理标识的管理接口。

  可以通过主体/服务表对此关联关系进行进一步说明,此表在构造HLD时非常有用。表3所示的就是一个这样的表格。

  表3. SOA安全主体/服务表

  审核 身份验证 凭据 标识
  应用程序或服务   X
  硬件   X
  消息   X
  编排   X
  服务组件   X
  SOA组件 (ESB)   X
  用户   X
  实用工具   X

  请注意,此流程不是静态的,而是动态的:收集了足够的需求后,团队就基本上准备好开始初级HLD的工作了。随着其他需求的添加,将继续影响HLD。而且,随着HLD的不断充实,在达到稳定状态(一个文档中的更改不会对其他文档造成影响)前,也可能会出现其他意料之外的需求。

  首先,团队不应太过于关注一个体系结构概念,因为创建SOA HLD的过程可能变化非常大,涉及到很多涉众。因此,最好使用有助于HLD设计和HLD设计管理流程的工具。SOA安全团队成员应该熟悉“Developing a J2EE Architecture with Rational Software Architect Using the Rational Unified Process”之类在线教程。同样,HLD的目的首先是向SOA安全团队进行清楚地说明。然后,应该与EA合作,确保文档与企业模型的总体体系结构概念一致。

  创建关系图

  让我们从图2所示的简单关系图开始。

  图2. SOA安全集合
 
  这里的“SOA安全集合”代表满足所有SOA安全需求的所有安全服务。它渗透到整个SOA实现中,可以充分满足当前和以后的需求。值得注意的是,此关系图满足前五个规则,即:

  ·为关系图或关系图组。
  ·开始时尽可能简单尽可能抽象。
  ·所有涉众都能够理解。
  ·满足需求文档中列出的整个需求集。
  ·使用的关系图数量尽可能少。(只有一个关系图最好了,但并非总是可行。)

  不过,图2并不满足任何其他规则,因此必须对其进行进一步的优化,不过务必注意,这样的关系图比一张白纸可有用得多。

  通过在下一个关系图(图3)中将图2作为基础关系图使用,可向您的SOA集合添加SOA安全服务、主体和主体交互元素。此外,还可包括第三方工具和电子边界之类的元素。除了主体与安全服务的中间层之间的交互外,还要考虑除了SOA安全性提供的服务外还提供关键服务的第三方工具和服务。

  图3. SOA安全集合(细节)
 
  仔细研究一下这个关系图,会发现此图满足其他规则需求,包括:

  ·包含所有主要对象,但必须对其进行保护,并以通用的方式对其进行表示
  ·包含对象间所有的关键安全关系
  ·利用面向对象的概念,如封装、继承和多态性

  图3保护此实现的所有主要SOA安全服务。可以根据需要包括其他服务,但包括超过三个或四个服务并不会得到更多的信息。图3也包含所有的主体:通过使用不同的形状,可将其用于以多态的方式表示所有主体交互。

  如果假定每个主体的每个边界都是执行点(EP)和决策点(DP),则已在此关系图中包含了HLD所需的所有元素。将不会提供关于这些EP或DP将如何实现的细节:这些细节将在详细设计部分予以介绍。

  创建DLD

  以此HLD为基础,您可以着手生成DLD(首要规则第10条)。在这种情况下,可以使用与产品无关的统一建模语言(Unified Modeling Language,UML)概念来说明SOA安全服务之间的关系,如图4中所示。

  图4. 主要安全组件
 
  在图4中,根据HLD关系图提供了安全服务的详细组件关系图。

  总结

  创建SOA安全HLD时,务必从详细需求开始着手。通过使用正确的工具设计和管理流程,并遵循本文中的首要规则,您和SOA安全团队可以创建所有人都认为清楚的HLD,而不会陷入概念的泥潭中。

  本系列的下一篇文章(最后一篇)将重点讨论创建用于生成SOA安全测试用例的有用概念。为了遵循规则10,您将使用此HLD开始生成测试用例。在此之前,欢迎您提供有用的意见和建议。

  关于作者

  John Betancourt是Intelleges的总裁兼CEO,该公司的业务重点是供应链安全性、大型SOA实现和网络安全性。


SOA安全性基础知识
  SOA安全性基础知识:制定保护大型SOA应用程序的路线图
  SOA安全性基础知识:创建任何人都可以使用的高层次设计
  SOA安全性基础知识:测试SOA安全性
 来源:IBM    作者:John Betancourt    
相关的新闻
安全是当前信息技术应用领域热门话题之一,无论是操作系统,还是应用软件,安全总是作为一项重要考量,特别是在商业应用领域,信息安全是业务运作的基本要求之一。
 
相关的技巧
随着金融公司对面向服务架构(SOA)的兴趣不断增加,他们对于SOA安全问题的关注也在不断增加。SOA正处于金融业务IT服务的尖端……
相关的专家答疑
在面向服务架构中有什么标准是针对端到端安全?为了回答这一问题,首先让我详细说明我所用的端到端安全的含义。让我们举个例子——
 
相关的白皮书
基础架构整合是商业机构为获得灵活性而采取的第一个主要步骤,这种灵活性是将来要具备竞争力并且获得成功所必不可少的。
随着金融公司对面向服务架构(SOA)的兴趣不断增加,他们对于SOA安全问题的关注也在不断增加。SOA正处于金融业务IT服务的尖端……
OpenID杠杆作用于人们广为接受的标识Web服务,用户自我识别的过程在一个应用程序的工作流程中根深蒂固,这个工作流程结合用户名、密码功能,也成为初学者创造软件更为优秀的一部分……
将面向服务架构(SOA)视为发展方向的公司最为关注的内容之一就是安全。其原因部分来自人们的担心, 即当任何形式的网络都能获取IT应用程序和系统时,人们会本能地担心非正当人群也能访问程序和系统。互联网可能对全世界开放,从而更加剧了人们的忧虑。
对于SOA为一个机构所带来的许多的好处,例如具有在许多不同的提供者和供应商的情况下混合和匹配服务,或者以一种独立于平台的形式来授权访问数据……
SOA和Web服务安全问题在大型企业中占据首要位置,来自Burton Group的Chris Haddad在面对媒体的访谈中论述了相关Web服务工具及SOA发展……
不管是服务的质量或是可靠性或是可获得性,所有这些能力服务都必须具有,他们必须以适当的方式工作。

Dana G
商业智能也称作BI,是Business Intelligence的缩写。商业智能的概念最早在1996年提出。当时将商业智能定义为一
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。而且,
最新更新
专家答疑
技巧
Jeff Hanson
我要从.NET客户端调用一个Java Web服务。Java Web Service是基于Apache-Axis使用的JBoss。我怎样转换WSDL创建的Java服务.NET客户端?
Anne Thomas Manes
我需要一个全面的WSDL分析器。是否有任何开放原代码的WSDL分析器可供选择?我要剖析的WSDL并生成客户端……
Dana Gardner
虚拟化不需要SOA,但它可能成为降低总体成本的首选。虚拟化和SOA是分开的,但具有互补性。SOA是实现价值的设计时间,水平和执政水平的服务,虚拟化带来的价值……
TechTarget中国旗下网站群
All Rights Reserved, Copyright 2008, TechTarget中国
TechTarget中国