我目前正在研究与另一个实体进行通信的相当奇怪的设置。它们要求我实现客户端和两个SOAP端点的服务端(在我看来这本身就很奇怪)。更重要的是,它们要求消息都经过签名和加密(在普通TLS之上)。
我不是一个庞大的密码学专家,但根据我的理解(以及远程实体的技术人员告诉我的内容),我应该从我的客户签署一条消息给他们使用我的私钥服务,并使用他们的公钥加密消息。他们的反面相反。这对我来说具有逻辑意义。
但是,这就是我的问题:WCF似乎并不容易支持这一点。当我使用Spring在Java之前实现SOAP服务之前,就有KeyManager和TrustManager的概念。通过这种方式,您可以从不同的商店中获取必要的加密位。在WCF中,每个服务/客户端只能指定一个证书。
我发现这篇MSDN文章有一个可能的解决方案: https://msdn.microsoft.com/en-us/library/ms729856(v=vs.110).aspx
但是,对于我认为是一个非常常见的问题,它似乎太复杂了。
在我实施上述怪物之前,我想确保我不会错过任何东西。也许我错过了一个更简单的方法?我试图做的那么独特吗? WCF真的这么糟糕吗?是否有更好的第三方.NET框架可以更好地支持安全SOAP?
提前致谢。我在这里疯了。