我很难过。我想问一下我如何真正知道真实的客户端正在连接到我的 Web 服务。我已经在我的 web 服务和我的 apache tomcat 服务器上成功地设置了一个 HTTPS 协议。但是,如果没有他给我用户名和密码,我如何真正动态地验证客户端。例如,谷歌通过给他们一个 api 密钥来验证它的客户,有了这个密钥,他们就可以使用它的网络服务。
我想做类似的事情,我该怎么做?希望你们能帮助我解决这个问题。
提前致谢!
我很难过。我想问一下我如何真正知道真实的客户端正在连接到我的 Web 服务。我已经在我的 web 服务和我的 apache tomcat 服务器上成功地设置了一个 HTTPS 协议。但是,如果没有他给我用户名和密码,我如何真正动态地验证客户端。例如,谷歌通过给他们一个 api 密钥来验证它的客户,有了这个密钥,他们就可以使用它的网络服务。
我想做类似的事情,我该怎么做?希望你们能帮助我解决这个问题。
提前致谢!
我们在这种情况下尝试的是真正面向服务。
即我们有一个身份验证服务,它将输入作为用户凭据并返回一个会话 id。对于所有其他服务调用,会话 ID 被添加到 soapheader 块中。
soapHeader.addAttribute()
使用这种方法
在这种方法中,客户端应用程序必须首先进行身份验证并将输出、会话 ID 用于其他服务调用。
请求:我们还没有完全分析这种方法的安全威胁。任何建议/批评将不胜感激
或许您应该研究一下 Apache Santuario 项目,该项目旨在为 XML 提供主要安全标准的实现。
-> 这个库包括一个成熟的数字签名和加密实现。它还包括标准 JSR 105(Java XML 数字签名)API。应用程序可以使用标准 JSR 105 API 或 Apache Santuario API 来创建和验证 XML 签名。
您可以在以下网址找到更多信息 http://santuario.apache.org/index.html
您还可以在这里找到一个示例: https ://svn.apache.org/repos/asf/santuario/xml-security-java/trunk/samples/org/apache/xml/security/samples/signature/
专门研究 KeyResolver 功能
Apache Santuario 项目是 Apache Axis 推荐的项目。 http://axis.apache.org/axis/java/security.html#Authenticating_the_caller