我将启动一个新项目,在该项目中,我将向外部合作伙伴公开一个SOAP服务。主要目标是确保从端到端交换消息的安全性。我们的主要安全要求:
我听说过一种新的协议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>使用WS安全的优点是什么?使用我自己的解决方案比WS-Security有什么缺点?
我使用的是Java8和完整的Spring堆栈。
谢谢你的帮助。
发布于 2018-02-24 02:36:59
WS-Security是一种国际标准,因此它为您提供了所有web服务客户端/服务器之间的互操作性,使用的是与WS安全兼容的软件栈,在大多数主要编程语言中都可以找到,例如Apache或Glassfish Metro for Java;WCF用于.Net。例如,WCF驱动的.Net客户端可以使用SOAP+WS-Security与它们的Java对应方进行通信。作为OASIS标准化进程的一部分,他们进行了互操作测试。
您还可以使用在服务的WSDL中直接表达您的安全需求,这样您的使用者就可以自动(在某种程度上)发现它们,以便安全地与您的服务进行通信。
除了互操作性外,获取安全标准还需要时间,让国际社会的安全专家对其进行审查、挑战、改进等等。因此,如果您想要达到相同的功能和健壮性水平,那么使用现有的成熟标准就更安全了。
https://stackoverflow.com/questions/48933589
复制相似问题