当前位置:主页>科 研>学术交流>

面向方面技术在Web服务安全组合中的应用研究(3)


    在AO4BPEL框架下,每个BPEL流程的activity都可以作为一个潜在的连接点,一组相关的连接点被一个切入点所标识。一个advice是表述特定非功能需求的BPEL activity。在AO4BPEL中,切入点对连接点的捕获通过XPath[13]技术实现。切入点是一个XPath表达式,XPath支持逻辑操作,因此它可以表达join point的组合。与AOP编程语言Aspectj类似,AO4BPEL也定义了before, after和 around三种advice执行方式。在此基础上,Anis进一步提出了基于AO4PBEL的安全服务组合实现框架,它包括安全服务(security service), 过程容器(process container)和部署描述器(deployment descriptor)三个主要部件。安全服务器(security service)是一个web服务中间件,它确保BPEL流程和各参与方以及客户端间的安全交互,提供包括认证、数据完整性、不可抵赖性等安全功能实现以供Web服务编排(orchestration)引擎调用;过程容器(process container)实现了一组aspects, 它通过部署描述器中对特定安全功能需求的描述自动生成。过程容器中的安全aspect在BPEL流程执行过程中被动态植入。部署描述器(deployment descriptor)是基于XML的,它指定BPEL流程中与特定活动相关联的安全需求,它对服务组合安全需求的描述区分与消息活动相关的消息级(messaging-level)安全需求(如对某个activity的调用时,必须通过消息加密传输)与过程级(process-level)的安全需求(如嵌套了两个invoke的sequence执行,必须满足事务要求)。在基于AO4PBEL的安全服务组合实现中,结合WS-Policy[14]、WS-Security规范来表述服务组合参与方的安全能力、安全需求等。为实现组合过程中的安全需求,过程容器通过截获过程执行,调用特定的中间件服务(Middle Web Service)来实现服务组合安全需求。中间件服务基于WSS4J[15]实现,它在BPEL流程执行过程中被植入,实现对可靠消息和安全性等非功能需求的支持。

  
图2 AO4BPEL安全服务组合框架

    下面以银行转帐场景为例,来说明在部署描述器中如何实现对服务组合安全性的声明。客户访问其银行的在线网站,通过填入必要的信息实现银行转帐。他需要指定目的帐户及其所在银行的编码以及转帐的数额,当用户确认后,一个要求被提交并在银行的Web服务中等待执行,它将要调用银行后端服务的转帐操作。这个操作是以BPEL流程形式实现,其中包括了对“credit”、“debit”等服务的调用。这样的一个组合流程,需要基于消息级(如需要对debit操作进行加密)和基于过程级的(如credit、debit操作必须满足事务要求)的安全保证。这样的安全需求,在部署描述器中声明如下内容所示[12]。 
    <bpel−dd> 
    <selectors> 
    <selector id=”0” name=”credit” type=” activity ”> 
    // invoke[@operation=”credit”]</ selector> 
    <selector id=”1” name=”debit” type=” activity ”> 
    // invoke[@operation=”debit”]</ selector> 
    <selector id=”2” name=”debitcredit” type=”compoundActivity”> 
    // sequence[@name=”debit credit”]</ selector> 
    </ selectors> 
    <services> 
    <service name=”security”> 
    <requirements> 
    <requirement name=”req2” class=” confidentiality ” 
    type=”decryption” selectorid =”1”/> 
    <requirement name=”req1” class=” confidentiality ” 
    type=”encryption” selectorid =”1”> 
    <parameters> 
    <parameter name=”symmetricEncAlgorithm”> 
    xmlenc# tripledes−cbc</parameter> 
    <parameter name=”keyEnc”> 
    http :// www.w3.org/2001/04/xmlenc#rsa−1 5</parameter> 

(责任编辑:adminadmin2008)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

容器是如何让“一切都是代码”成为现实的

容器是如何让“一切都是代码”成为现实的

现代应用的发展在很大程度上要归功于DevOps运动的蓬勃兴起以及该运动所产生的各种自动...[详细]

如何快速掌握一门新技术/语言/框架

如何快速掌握一门新技术/语言/框架

IT行业中的企业特点是都属于知识密集型企业。这种企业的核心竞争力与员工的知识和技能...[详细]

建高效数据中心有径可循

建高效数据中心有径可循

能耗问题一直是各大数据中心的心头之痛。有数据表明,2015年我国数据中心能耗预计将高...[详细]

2015黑帽大会:网络灾难后 重建IT安全

2015黑帽大会:网络灾难后 重建IT安全

在遭遇网络灾难后重建IT安全似乎是不可能完成的任务,但根据安全专家Christina Kubeck...[详细]

面对DNS劫持 企业移动应用该如何防护?

面对DNS劫持 企业移动应用该如何防护?

DNS(Domain Name System)劫持又称域名劫持,是指对正常的域名解析请求加以拦截,转而...[详细]

返回首页 返回顶部