技术开发 频道

为SOA保驾护航(下)

    XACML

    虽然SAML为进行验证和授权声明、使用XML传输这些声明提供了机制,但还需要词汇来表示进行授权决策所需的规则。XML访问控制标记语言(XACML)就是专门为表示授权规则而开发的。

    XACML是表示访问控制策略的语言。换句话说,它可以保护数据交换过程中的内容。访问控制列表(ACL)缺乏表示实际系统中往往需要的复杂策略这一功能。因而,访问控制策略往往嵌入在应用代码当中。这给改变策略、甚至发现哪些策略在执行增添了难度。
XACML能够使用几乎各种现有的信息,从而确定是否允许对某资源的访问。它也可以把额外操作(名为义务)与决策联系起来――譬如说,要求一旦过了某段时间,就销毁请求的数据。

    XACML根据资源属性(包括资源内容)或者环境因素(譬如日期、时间或者位置)来进行决策。它还会把与请求有关的各方具有的属性考虑进来,譬如角色或者群组成员身份。这不但包括提出请求的那一方,还可能包括接收数据的那方或者请求中介。

    XACML的典型使用场景(usage scenario)就是,某主体想对某个资源如文件系统或者Web服务器采取某种操作。该主体向该实体提交查询,以保护资源。该实体名为策略执行点(PEP)。PEP使用XACML请求语言生成请求。然后,PEP把该请求发送到策略决策点(PDP),它会检查请求、检索适用于该请求的策略(用SACML策略语言编写),然后根据评估策略的XACML规则,确定要不要授予访问权。这个响应(用XACML响应语言表示)返回给PEP,然后PEP允许或者拒绝请求方的访问。

    XQuery和XML数据库实现SOA安全

    安全标准和安全文档使用本文讨论的XML及各种XML标记语言来描述。XDMS是为SOA中的安全策略文档和安全消息添加持久性并进行查询的一种理想机制。如前面所述,XQuery可以用来从XML文档提取信息。XQuery基本上是一种函数式语言,它使用表达式作为装配查询的集中部分。每个查询可以描述成一组表达式,该表达式可以嵌套。这项主要特性使XQuery成为操纵XML处理的一种灵活、全面的方法。

    为了有效地访问或者保存XML文档,你需要XDMS。支持XQuery的XDMS能够迅速而方便地从XML安全文档检索信息。XML数据库已趋于成熟,可随时提供XML内容搜索和存储功能。

    譬如说,XDMS能够维护不同版本的安全策略文档,为策略变更提供审查跟踪。此外,也可以为XML安全消息和请求添加持久性,提供SOA中所有安全事务的审查跟踪。

    联合身份管理实现SOA安全

    据《联合身份管理应对电子商务挑战》的两位作者:Jason Rouault和John Worral声称:

    “单单一家组织无法有效地自始至终管理或者控制电子商务计划,如果牵涉多个合作伙伴,更是如此。即便是在一家企业里面,不同的业务部门也往往管理着一系列各不相同的用户和资源。这就是为什么如今组织求助于联合身份管理,以应对电子商务方面的挑战。”

    如果把这些想法运用于牵涉多个不同应用、它们彼此通过Web服务进行协作的典型的供应链使用实例,我们就会发现:要是没有联合身份管理,未授权和不可信的人员访问具有SOA功能的底层业务流程就会导致一片混乱――协作的目的也就无从谈起。

    SAML等联合身份标准和自由联盟等组织可以为不同的系统及各自的安全基础设施创建封装器(wrapper),组成所谓的信任圈(a circle of trust)。这是向跨交易合作伙伴和业务应用系统发展业务关系所迈出的第一步。

0
相关文章