Web 服务的安全性(REST 和 SOAP)[关闭]

Posted

技术标签:

【中文标题】Web 服务的安全性(REST 和 SOAP)[关闭]【英文标题】:Security of web services (REST & SOAP) [closed] 【发布时间】: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)..

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

非常感谢

【问题讨论】:

之前的帖子应该对你有帮助 ***.com/questions/853620/… 【参考方案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 服务之前进行身份验证和授权。

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

【讨论】:

以上是关于Web 服务的安全性(REST 和 SOAP)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

SOAP Web 服务介绍

REST API 安全设计指南

比较和对比 REST 和 SOAP Web 服务? [复制]

单个应用程序的 REST 和 SOAP Web 服务

SOAP 和 REST Web 服务有啥区别? SOAP 可以是 RESTful 的吗?

单个应用程序中的 SOAP 和 REST Web 服务