【问题标题】:Security of web services (REST & SOAP) [closed]Web 服务的安全性(REST 和 SOAP)[关闭]
【发布时间】:2013-04-28 02:44:24
【问题描述】:

我在这里的第一篇文章!我想在网络服务安全方面获得一些社区帮助。

我正在研究最先进的 Web 服务安全性。我需要一个解决方案来解决关于识别、访问控制、传输相关问题(如数据完整性、保护、不可否认性)的所有问题。

所以我获取了一些现实世界的解决方案来满足这些需求,我找到了基于 SOAP 的 Web 服务的解决方案:

  • 标识:WS-Security 框架
  • 身份验证:可扩展访问控制标记语言 (XACML)
  • 授权
    • 可扩展权限标记语言 (XrML)
    • XML 密钥管理 (XKMS)
    • 安全断言标记语言 (SAML)
    • .NET Passport
  • 机密
    • WS-安全框架
    • XML 加密
    • 安全套接字层 (SSL)
    • WSS

几乎所有这些都可以使用 spring-security 实现

另一方面,RESTful Web 服务的安全性较低。基于网络的 SSL/TLS 是一种很好的加密解决方案,但确实存在其他安全协议,例如:

  • OAuth:由 facebook、twitter 使用,无需令牌交换
  • OpenID:被谷歌使用
  • CAS
  • LDAP、Kerberos
  • 角色,浏览器 ID

另一种解决方案可能是将安全性集成在企业总线中作为服务(Security as a Service)..

所以我的问题是:还有其他我应该知道的解决方案吗?还有其他框架吗?

非常感谢

【问题讨论】:

标签: web-services security rest soap spring-security


【解决方案1】:

只是补充一点,关于restful webservices,开发者可以使用tomcat servlet 容器提供的安全性。这可以通过在 server.xml 和 tomcat-users.xml 中配置领域来完成。 详细配置在这里->http://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html

最适合的可以是基于表单的身份验证。 参考:http://www.onjava.com/pub/a/onjava/2001/08/06/webform.html?page=2

【讨论】:

  • 我想说基于表单的身份验证对于 REST 或 SOAP API(通常是无状态的)来说通常是一个糟糕的选择。
【解决方案2】:

如果您想更好地控制 REST Web 服务的安全性,那么您可以考虑实现自己的身份验证和 RBAC(基于角色的访问控制)。只需通过 HTTPS 在标头中的每个请求中获取用户名和密码,然后在 REST Web 服务层上实现 RBAC。您基本上可以添加 Servlet 过滤器来在请求实际移交给 Web 服务之前进行身份验证和授权。

选择权在您手中,显然有不同的安全框架可供选择,但您必须选择最符合您要求的框架。

【讨论】:

    猜你喜欢
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多