我正在使用Spring框架Java开发Web服务并在JBoss AS上部署。此Web服务需要身份验证和授权以及安全解决方案,以便某些方法用户A可以执行,而其他一些用户B可以执行。在客户端,将有一个应用程序调用Web服务,人们可以使用用户帐户A或B登录。
我一直在挖掘互联网,搜索Web服务身份验证,研究WS-Security,但我能看到的只是使用WS-Security。 WS-Security通常提供4种身份验证:
但所有这些事情通常都是预配置的,我找不到任何建议我应该在Web服务中提供登录/注销方法的示例(通过使用有状态的Web服务)。请注意,如果我们使用登录方法,那么即使基础是SSL传输,也存在安全风险。
所以我的问题是:
我非常感谢你的回复,并会投票给任何合理的答案。
答案 0 :(得分:2)
您的方案与EBay Trading API's的方案相同。
基本上,它的工作原理如下。
为了安全起见,所有的WS调用都应该通过SSL进行。
答案 1 :(得分:1)
如果您的服务是点对点的,那么ssl就足够了。 Mutual ssl(Mutual_authentication)广泛用于客户端authN和authZ。
如果你就系统性能发表演讲,请看SAML。 SAML是一个签名的XML文档,其中包含客户端的authN和authZ,这意味着您无需在服务器上循环以获取客户端authN和authZ。