技术开发 频道

为SOA保驾护航(上)

    数字证书是类似网上护照的电子文件。它们由可信的第三方即证书认证中心(CA)颁发,该机构负责验证证书持有者的身份。

    作为W3C的一项备忘录,XKMS简化了使用公钥基础设施(PKI)和数字证书来保护基于XML的因特网事务安全的工作。它为分发及注册适合于结合W3C的XML签名语法和处理标准使用的公钥规定了协议。XKMS由两部分组成:XML密钥信息服务规范(X-KISS)和XML密钥注册服务规范(X-KRSS)。

    我们已从前面举例的供应链使用实例知道,通过因特网访问信息的功能对解决方案来说至关重要。Web服务可以实现这种功能,因为它们允许通过网络交换信息。Web服务基于以下三项重要标准:

    简单对象访问协议(SOAP):数据传输协议。
    Web服务描述语言(WSDL):Web服务描述语言。
    通用描述、发现和集成(UDDI):确定Web服务位置的注册中心。

    请注意:所有上述标准都可以用XML来定义。不过,我们举例的供应链解决方案必须具体解决两个问题:

    一、只允许授权用户可以访问基于XML的Web服务,这可以通过可扩展访问控制标记语言(XACML)和Web服务策略(WS-Policy)两个标准来解决;

    二、保护Web服务环境中交换的XML消息的完整性和机密性,这可以通过Web服务安全(WSS)和安全声明标记语言(SAML)来解决。

    本文基本介绍了Web服务策略、WSS、SAML、XACML以及XQuery和XML数据库如何赋予安全。WSS在SOAP环境下提供了消息保护。SAML和XACML支持授权,并且大力支持大规模分布式系统。最重要的是,所有这些标准都可以使用XML表示信息。Web服务策略、WSS、SAML和XACML都有一些共同之处。虽然所有这些标准都能够使用前些年使用的安全服务,但各自都有具体的特性,旨在适用于大规模分布式环境,譬如因特网。另外,这些标准可以使用及集成原先就有的安全标准。

    正如前文所述,这些标准使用XML。XML使诸多技术可以轻松扩展,以满足特殊需求,而使用旧格式不可能做到这点。另外,XML允许实施者使用现有的许多软件工具进行处理。以WSS为例,它旨在与SOAP的语法和处理模型紧密集成,该模型用XML来定义。

    另外,XML是一门标记语言,能够标记不同数据源的信息内容,包括结构化和半结构化文档、关系数据库和对象储存库。由于这么多采用XML格式的重要数据可供使用,这些数据可以查询及挖掘,以获得进一步的适用性,就显得极其重要。查询语言是XQuery,它能够理解XML,并且针对各种XML数据表示查询,无论是不是实际保存在XML中,还是通过中间件作为XML来浏览。XQuery广泛适用于许多类型的XML数据源。

    为XML数据添加持久性的推荐方法就是,使用这样的本地XML数据库技术:不但可以把XML作为另一个关系工件来对待,还可以作为自然的XML工件来对待。XML数据库管理服务器(XDMS)是企业级XML持久性机制,它具有传统关系数据库随带的所有功能。具有功能强大的XML索引、分析及加速等特性的XDMS是一大有利因素。

    Web服务策略

    Web服务策略框架提供了通用模型和相应语法,以描述及传达Web服务的策略。Web服务策略定义了一套基本的构件,可由其他Web服务规范使用及扩展,从而描述一系列广泛的服务需求、选项及功能。

    Web服务策略为表示基于XML Web服务的系统里面实体具有的功能、需求和一般特性提供了灵活、可扩展的语法。Web服务策略定义了一个框架和模型,用于把这些属性表示成策略。策略表达式允许简单的说明性声明,也允许比较复杂的条件声明。

    Web服务策略定义的策略是一个或者多个策略声明的集合体。有些声明规定了最终在传输过程中予以显示的传统需求和功能(譬如验证方案和传输协议选择)。有些声明规定了不在传输过程中予以显示、但对服务的合理选择及使用至关重要的需求和功能(譬如隐私策略和服务质量特性)。Web服务策略提供了单一的策略语法,以便能一致地考虑这两种声明。

    请注意,新成立的OASIS Web服务安全交换(WS-SX)技术委员会是OASIS为负责Web服务策略及其他相关标准而新设的工作组。
用XML表示策略声明称为策略表达式。只要使用策略操作符:All、ExactlyOne和OneOrMore等,就可以合并策略声明。

    下面演示了一项策略的简单示例:
<policy Priority="200">
   <All>
      <Language Usage="Required" Language ="it" />
         <ExactlyOne>
            <SecurityToken TokenType="UsernameToken" Usage="Required">
               <Claims>
                  <Username>Claudio</Username>
                  <UsePassword/>
                </Claims>
            </SecurityToken>
            <SecurityToken TokenType="X509" Usage="Required">
               <Claims>
                  <SubjectName>Role=Student</SubjectName>
               </Claims>
            </SecurityToken>
         </ExactlyOne>
   </All>
</policy>

    与策略相关的其他规范是:Web服务策略声明语言;Web服务安全策略语言;Web服务策略附件;针对Web服务策略、Web服务授权和Web服务可靠消息传送等其他技术的策略。

0
相关文章