我正在使用Java开发基于Soap的Web服务。谁能让我知道如何认证使用Web服务的客户端?
谢谢。
最好但最复杂的可能是带有各种身份验证方法的WS- Security。但是它是最复杂的,并且对企业环境有利。它允许您创建端到端身份验证,并且有很多选项。您可以在简单情况下使用Web服务安全性UsernameToken配置文件
<S12:Envelope xmlns:S11="..." xmlns:wsse="..." xmlns:wsu= "..."> <S12:Header> ... <wsse:Security> <wsse:UsernameToken> <wsse:Username>NNK</wsse:Username> <wsse:Password Type="...#PasswordDigest">weYI3nXd8LjMNVksCKFV8t3rgHh3Rw==</wsse:Password> <wsse:Nonce>WScqanjCEAC4mQoBE07sAQ==</wsse:Nonce> <wsu:Created>2003-07-16T01:24:32</wsu:Created> </wsse:UsernameToken> </wsse:Security> ... </S12:Header> ... </S12:Envelope>
我不知道您使用什么库,但是这是一篇不错的文章,介绍了如何将Rampart安装到Axis2中并实现UsernameToken处理。
但是在某些简化的情况下,您可以简单地对Web服务器进行HTTP基本身份验证(通过SSL)。这可能是最糟糕的解决方案,但有时可能最容易实现。另一个不与soap连接的解决方案可以是相互认证的SSL(使用客户端身份验证)。