【问题标题】:web service security at different level不同级别的 Web 服务安全性
【发布时间】:2018-02-01 10:44:43
【问题描述】:

我刚刚开始使用 SOAP Web 服务,偶然发现了 Web 服务安全性。

根据以下用例,我需要知道两件事:-

假设,有一个网络服务接受国家名称作为请求并返回状态列表作为响应。

根据我上面的简单用例,什么是传输级安全性和消息级安全性。它们有何不同?

【问题讨论】:

  • 取决于您实施的内容
  • 这是否意味着如果实现了传输安全性,那么要在浏览器中打开 wsdl 文件我必须提供用户名密码

标签: java web-services webservice-client


【解决方案1】:

根据我上面的简单用例,什么是传输级安全性和消息级安全性。它们有何不同?

有多种方法可以保护您的传输通道和数据。这完全取决于需要采取哪些安全措施。

SOAP/WSDL 有一个扩展WS-Security,它定义了多个标准选项如何保护通信。请注意,并非所有框架都支持所有选项,我真的建议您使用一些成熟的 Web 服务框架(CXF、Axis2、..)来实现 Web 服务安全性。你不想自己做。

传输级安全

基本是 TLS/SSL(简单或带有客户端证书)。此安全层绑定到 HTTP 传输层,并且通常假定为已授权,因此未在 WSDL 本身中配置。

这是否意味着如果实现了传输安全性,那么要在浏览器中打开 wsdl 文件我必须提供用户名密码

我假设您在谈论 HTTP 基本身份验证。它是选项之一(恕我直言,这是一个可怜的选项,它与 HTTP 传输层紧密绑定)

您也可以使用 UsernameToken 选项。它看起来类似于基本身份验证 - 在 SOAP 标头中有用户名和密码(或摘要),作为优势,我认为此扩展可以作为 WSDL 或安全策略定义的一部分进行定义和实施。

消息级安全性

在此级别下,我们考虑对消息进行签名和/或加密。

【讨论】:

  • 所以,到目前为止我所了解的,如果实现了传输级别的安全性,那么就会有一个用户名+密码或安全证书。发送者和接收者都必须拥有这些用户名+密码或安全证书才能访问携带的 msg。实际上,任何拥有凭据和 url 的人都可以使用底层 Web 服务。并且在消息级别安全的情况下,底层消息是加密的。我的理解正确吗?两种安全性可以同时实施吗?
  • 我认为在大多数情况下你有正确的@ofortuna 但事情可以分开,你可以只拥有基于用户名和密码的身份验证,在这种情况下是的,可以共享用户凭据,或者你可以具有 TLS 安全性,因为它使用私钥、公钥和证书,因此更难以妥协,或者您可以将它们结合起来并使用带有用户/密码的 TLS。根据 gusto2 所说,您可以像俄罗斯娃娃一样将所有三种组合在一起;-) 请记住,在添加加密时,服务器和客户端会有开销
猜你喜欢
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-20
  • 2013-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多