【发布时间】:2015-12-05 10:27:15
【问题描述】:
这是我们想要的:
- 客户端使用证书 A 的私钥签署 SOAP 请求
- 客户端使用证书 B 的公钥加密 SOAP 请求
- 服务器使用 A 的公钥验证签名
- 服务器使用证书 B 的私钥解密请求
- 服务器正常工作
- 服务器使用证书 C 的私钥签署 SOAP 响应
- 服务器使用证书 D 的公钥加密 SOAP 响应
- 客户端使用证书 C 的公钥验证响应签名
- 客户端使用证书 D 的私钥解密响应
除了上述的消息安全之外,客户端在与服务器通信时还会使用 SSL 客户端证书。
我们已经做了一些googling 来尝试弄清楚如何为上述场景配置 WCF,但我们仍然有一些问题。
一些问题/疑问:
- 我们是否正确地假设这是 WCF 不支持开箱即用的东西?并且没有声明方式可以在 WCF XML 配置中进行配置?
- 我们已经阅读了How to: Use Separate X.509 Certificates for Signing and Encryption 的文章,但是对于如何解读这篇文章我们有点不确定。最重要的是:
安全绑定元素必须在双工模式下运行以允许 为请求提供不同的安全令牌提供者,并且 回应。一种方法是使用支持双工的传输或 使用 CompositeDuplexBindingElement 如下所示 代码
- 现在,如果我理解正确,WCF 双工绑定意味着我们的客户端必须公开服务器可以调用的端点?这是正确的吗?
- 如果是这样,WCF怎么会这样?为什么有必要为了以特定方式加密和签名消息而弄乱传输通道?
- 有没有什么方法可以在不使用 WCF 双工模式通信的情况下完成上述任务?
(如果您想知道,此集成方案用于传输敏感医疗信息)
【问题讨论】:
标签: .net wcf ssl encryption soap