.net 使用不同的X509证书配置WCF SOAP请求/响应的加密和签名

.net 使用不同的X509证书配置WCF SOAP请求/响应的加密和签名,.net,wcf,ssl,encryption,soap,.net,Wcf,Ssl,Encryption,Soap,以下是我们想要的: 客户端使用证书A的私钥签署SOAP请求 客户端使用证书B的公钥加密SOAP请求 服务器使用的公钥验证签名 服务器使用证书B的私钥解密请求 服务器确实工作 服务器使用证书C的私钥对SOAP响应进行签名 服务器使用证书D的公钥加密SOAP响应 客户端使用证书C的公钥验证响应签名 客户端使用证书D的私钥解密响应 除了上述消息安全性之外,客户端在与服务器通信时还将使用SSL客户端证书 我们已经做了一些尝试,并找出如何为上述场景配置WCF,但仍然存在一些问题 一些问题: 我们假设WC

以下是我们想要的:

  • 客户端使用证书A的私钥签署SOAP请求
  • 客户端使用证书B的公钥加密SOAP请求
  • 服务器使用的公钥验证签名
  • 服务器使用证书B的私钥解密请求
  • 服务器确实工作
  • 服务器使用证书C的私钥对SOAP响应进行签名
  • 服务器使用证书D的公钥加密SOAP响应
  • 客户端使用证书C的公钥验证响应签名
  • 客户端使用证书D的私钥解密响应
  • 除了上述消息安全性之外,客户端在与服务器通信时还将使用SSL客户端证书

    我们已经做了一些尝试,并找出如何为上述场景配置WCF,但仍然存在一些问题

    一些问题:

    • 我们假设WCF不支持开箱即用,这是正确的吗?在WCF XML配置中没有声明性的方式来配置它
    • 我们已经读了这篇文章,但对于如何解读这篇文章,我们有点不确定。最重要的是:
    安全绑定元素必须在双工模式下运行,以允许 为请求和请求提供不同的安全令牌提供程序 响应。一种方法是使用支持双工的传输或 要使用CompositedPlexBindingElement,如下所示 代码

    • 如果我理解正确的话,WCF双工绑定意味着我们的客户机必须公开服务器可以调用的端点?这是正确的吗
    • 如果是这样的话,WCF怎么会这样?为什么仅仅为了以一种特定的方式对消息进行加密和签名,就必须扰乱传输通道
    • 在不使用WCF双工模式通信的情况下,有没有办法实现上述功能

    (如果您想知道,此集成场景是用于传输敏感医疗信息的)

    我们也遇到了同样的问题,通过使用双工绑定,客户端打开了一个临时端口,服务器必须在该端口发送响应。它工作得很好,但是客户端拒绝使用另一个端口进行响应,因此我们还没有找到一个有效的解决方案。

    我们也遇到了同样的问题,通过使用双工绑定,客户端打开了一个临时端口,服务器必须在该端口发送响应。它工作得很好,但客户端拒绝使用另一个端口进行响应,因此我们还没有找到一个可行的解决方案。

    我们目前正在使用ws-security进行测试,看起来很有希望。我们目前正在使用ws-security进行测试,看起来很有希望。