Web服务(REST和SOAP)的安全性

4

这是我在这里的第一篇文章!我想得到社区对web服务安全性的帮助。

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

因此,我找到了一些实际的解决方案来满足这些需求,针对基于SOAP的Web服务,我找到了以下解决方案:

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

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

另一方面,RESTful Web服务被认为不够安全。虽然基于Web的SSL/TLS是加密的好方法,但其他安全协议也存在,例如:

  • OAuth:由Facebook、Twitter使用,无需令牌交换
  • OpenID:由Google使用
  • CAS
  • LDAP、Kerberos
  • Persona、BrowerID

另一个解决方案可能是将安全性作为服务集成到企业总线中(作为服务的安全性)。

因此,我的问题是:是否有其他解决方案我应该了解?是否有其他框架可用?

非常感谢


一篇之前的帖子可能会对您有所帮助 https://dev59.com/e3RA5IYBdhLWcg3wtwWe - AurA
2个回答

4

我认为基于表单的身份验证通常不适用于REST或SOAP API(它们通常是无状态的)。 - Shaun the Sheep

1
如果您想更加掌控REST Web服务的安全性,您可以考虑实现自己的身份验证和基于角色的访问控制(RBAC)。只需在每个请求的头部中使用用户名和密码,并通过HTTPS在REST Web服务层上实现RBAC。您可以添加Servlet过滤器,在将请求实际交给Web服务之前执行身份验证和授权。选择权在您手中,显然有不同的安全框架可用,但您必须选择最符合您要求的框架。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接