代码之家  ›  专栏  ›  技术社区  ›  user2602584

使用WS-Security的优势是什么?

  •  1
  • user2602584  · 技术社区  · 6 年前

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

    1. 身份验证
    2. 诚实正直
    3. 反重放攻击。
    4. 保密性

    我听说了一个新的协议 Web 服务安全性 ,可用于解决此问题。我的替代解决方案是将一些安全元素合并到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>
    

    使用 Web 服务安全性 ? 使用我自己的解决方案比WS-Security有哪些缺点?

    我正在使用 Java8 已满 春天 堆栈

    谢谢你的帮助。

    1 回复  |  直到 6 年前
        1
  •  2
  •   cdan    6 年前

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

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

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