2016-05-12 120 views
0

SOAP安全头(WSSE)和一般SOAP头之间的区别是什么?如果我只使用简单的肥皂头来发送我的凭证会怎么样?提前SOAP安全头和SOAP头之间的区别

<S:Header> 
    <Username xmlns="http://ws.enterprise.com/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next"> 
     Username text 
    </Username> 
</S:Header> 

感谢:

为什么要使用这样的:

<soapenv:Header> 
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
    <wsse:UsernameToken wsu:Id="UsernameToken-1"> 
     <wsse:Username>login</wsse:Username> 
     <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXX</wsse:Password> 
    </wsse:UsernameToken> 
    </wsse:Security> 

,不应该用这个!

回答

1

两者都会满足传递用户名和密码的功能需求。

两者同样简单。

其中一个是open standard(实际上是从认证,消息机密性,不可否认性等端到端SOAP消息安全需求的经过深思熟虑的标准的一小部分in a set)。另一个是针对您的应用程序的;专有的,但可能是你所需要的。

使用WS-Security的可能的优点:

  • 已经记录在案(你少工作只是记录您使用WS-Security UsernameToken,客户可以Google休息)
  • 已经实施(较少的工作为您的消费者,甚至可能为您的Web服务实施)。库框架的地段(Java的:阿帕奇WSS4J,阿帕奇CXF,JavaScript的:Node.js,巨蟒:suds)的JavaEE应用服务器,如IBM WebSphere,甲骨文WebLogic,红帽JBoss AS,和其他企业平台,如.NET - 都已经预先建立,在许多情况下,这种特定开放标准(WS-Security UsernameToken)用于保证Web服务安全的配置技术。
  • 成长空间。这只是many related standards之一。需要/需要通过用户名/密码认证一些客户,但其他人通过数字签名认证?那里有一个相关的标准。不需要创建一个,其中不仅包括所需的XML语法,还包括考虑各种攻击媒介。开放标准已经有很多目光审查它们。

可能的缺点:

  • 学习曲线:选择使用预建的东西,意味着你(和你的客户)必须了解它在一定程度上。
  • 某些边缘案例的矫枉过正。我在这里伸展一下。假设这是一个原型Web服务,从未针对商业或生产使用。构建一个Web服务和一个Web服务客户端?丢弃的代码,你只是不想离开“开放”一段时间?去吧。