我有点问题。
我们有一个集中的接口引擎,它将与一个提供信息补充并允许向外部系统提交请求的 Web 服务通信。在我们必须将其与该提供商所需的安全性集成之前,所有这些都很好。
他们颁发通过智能卡(USB 密钥)分发的证书,最终用户必须使用这些证书让软件与所述系统(Web 服务)进行交互。他们坚持对最终用户的 USB 密钥上的证书进行(有时是多个)签名。当然,私钥是受密码保护的。
如何将最终处理所有这些的 Axis2 连接到最终用户计算机上的证书。
该系统主要是 Delphi 5 中遗留的胖客户端应用程序,接口引擎主要与数据库交互。现在我们已经成功地连接了一段代码,该代码通过一个简单的 TCP 套接字有效地将最终用户的站点连接到接口服务器。
----编辑----
我们在 CXF(我们从 Axis 更改)中使用定制的签名拦截器实现了解决方案,它将消息内容转发到签名代理,该代理会找到并连接在原始请求来自的用户交互会话上运行的正确签名服务。
我接受了 Eugene 的回答,因为即使我们没有使用他指定的组件,我们也确实按照他的建议的一般准则实施了解决方案。
由于 USB 令牌,签名必须在用户交互会话中完成,这是无可避免的事实。由于我们使用遗留系统以及需要让系统在共享环境(远程桌面服务器)中工作,因此施加了额外的限制。尽管 Web 服务框架或加密库可能不自然地支持它。