这就是我们想要的:
-
客户端使用证书A的私钥签署SOAP请求
-
客户端使用证书B的公钥加密SOAP请求
-
Server使用A的公钥验证签名
-
服务器使用证书B的私钥解密请求
-
服务器确实有效
-
Server使用证书C的私钥签署SOAP响应
-
Server使用证书D的公钥加密SOAP响应
-
客户端使用证书C的公钥验证响应签名
-
客户端使用证书D的私钥解密响应
除了上述消息安全性之外,客户端在与服务器通信时将使用SSL客户端证书 .
我们已经做了一些googling试图找出如何为上面的场景配置WCF,但我们仍然有一些问题 .
一些问题/问题:
-
我们是否正确认为这是WCF不支持开箱即用的东西?而且我们没有声明的方式可以在WCF XML配置中配置它?
-
我们已阅读文章How to: Use Separate X.509 Certificates for Signing and Encryption,但我们对如何解释这篇文章有点不确定 . 最重要的是:
安全绑定元素必须以双工模式运行,以允许不同的安全令牌提供程序出现在请求和响应中 . 一种方法是使用支持双工的传输或使用CompositeDuplexBindingElement,如下面的代码所示
-
现在,如果我理解正确,WCF双工绑定意味着我们的客户端必须公开服务器可以调用的 endpoints ?它是否正确?
-
如果是这样,那么WCF怎么样?为什么有必要混淆传输通道只是为了以特定方式加密和签名消息?
-
有没有办法在不使用WCF双工模式通信的情况下完成上述操作?
(如果您想知道,此集成方案是用于传输敏感医疗信息)
1 回答
我们遇到了同样的问题,通过使用双工绑定,客户端打开了一个临时端口,服务器必须在该端口发送响应 . 它工作得很好,但客户端拒绝使用另一个端口进行响应,所以我们还没有提出一个有效的解决方案 .