Web services 使用WS-Security的优点是什么?

Web services 使用WS-Security的优点是什么?,web-services,soap,jax-ws,spring-ws,ws-security,Web Services,Soap,Jax Ws,Spring Ws,Ws Security,我将开始一个新项目,在这个项目中,我将向我们的外部合作伙伴公开一个soapweb服务。主要目标是确保端到端交换消息的安全性。 我们的主要安全要求: 认证 完整性 反重放攻击 保密性 我听说有一种新的协议WS-Security,可以用来解决这个问题。我的替代解决方案是将一些安全元素合并到SOAP主体中,如下所示: <soapenv:Body> <nms:Request> <nms:requestor>bankX</nms:requestor&

我将开始一个新项目,在这个项目中,我将向我们的外部合作伙伴公开一个soapweb服务。主要目标是确保端到端交换消息的安全性。 我们的主要安全要求:

  • 认证
  • 完整性
  • 反重放攻击
  • 保密性
  • 我听说有一种新的协议WS-Security,可以用来解决这个问题。我的替代解决方案是将一些安全元素合并到SOAP主体中,如下所示:

    <soapenv:Body>
      <nms:Request>
         <nms:requestor>bankX</nms:requestor>
         <nms:nonce>45465464</nms:nonce>
         <nms:created>12/12/2017</nms:created>
         <nms:hmac256>hmacvalue</nms:hmac256>
         <nms:id>someID</nms:id>
         <nms:amount>5000</nms:amount>
         <nms:currency>EUR</nms:currency>
      </nms:Request>
    </soapenv:Body>
    
    
    班克斯
    45465464
    12/12/2017
    hmacvalue
    某物
    5000
    欧元
    
    使用WS-Security的好处是什么?使用我自己的解决方案比WS-Security有哪些缺点

    我正在使用带有完整Spring堆栈的Java8


    感谢您的帮助。

    WS-Security是一个国际标准,因此它使用符合WS-Security的软件堆栈为您提供了所有web服务客户端/服务器之间的互操作性,您可以在大多数主要编程语言中找到这一点,例如Apache CXF或Glassfish Metro for Java;Net的WCF。因此,例如,一个支持WCF的.Net客户端可以使用SOAP+WS-Security与Java对等方进行通信。作为OASIS标准化过程的一部分,他们进行了互操作测试

    您还可以使用WS-SecurityPolicy直接在服务的WSDL中表达您的安全需求,以便您的消费者能够自动(在某种程度上)发现它们,以便安全地与您的服务通信

    除了互操作性之外,获得正确的安全标准还需要时间,以允许国际安全专家团体对其进行审查、质疑、改进等。因此,如果您想要相同级别的功能和健壮性,使用现有的成熟标准更安全