1

我很难过。我想问一下我如何真正知道真实的客户端正在连接到我的 Web 服务。我已经在我的 web 服务和我的 apache tomcat 服务器上成功地设置了一个 HTTPS 协议。但是,如果没有他给我用户名和密码,我如何真正动态地验证客户端。例如,谷歌通过给他们一个 api 密钥来验证它的客户,有了这个密钥,他们就可以使用它的网络服务。

我想做类似的事情,我该怎么做?希望你们能帮助我解决这个问题。

提前致谢!

4

2 回答 2

0

我们在这种情况下尝试的是真正面向服务。

即我们有一个身份验证服务,它将输入作为用户凭据并返回一个会话 id。对于所有其他服务调用,会话 ID 被添加到 soapheader 块中。

soapHeader.addAttribute()

使用这种方法

  1. 我们避免每次在服务调用中使用用户凭据详细信息。
  2. 此外,服务的签名没有任何身份验证数据。

在这种方法中,客户端应用程序必须首先进行身份验证并将输出、会话 ID 用于其他服务调用。

请求:我们还没有完全分析这种方法的安全威胁。任何建议/批评将不胜感激

于 2013-08-22T06:13:25.110 回答
0

或许您应该研究一下 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

于 2013-08-20T15:23:25.673 回答