我的场景:
- 许多 WCF 客户端位于我无法控制的环境中
- 服务器要么是我的,要么在我无法控制的环境中
所以最坏的情况是客户端和服务器不在我的控制范围内。更具体地说,我可能假设托管此代码的人可能会尝试恶意冒充服务器或客户端(服务器更有可能)。但是,客户端需要验证服务器是我的代码,服务器需要验证客户端是我的代码。我已经看过所有使用证书的建议;但是,考虑到我的情况,这是一个选择吗?
我考虑过的一种方法是编写 IClientMessageInspector 和 IDispatchMessageInspector 来设置和验证双方的自定义 SOAP 标头。我将根据源代码中包含的密钥创建一个 HMAC 签名(假设我有办法将其隐藏),然后根据消息正文验证摘要。
我觉得这行得通;但是,我觉得这里可能缺少一些开箱即用的东西。我很接近,偏离轨道了吗?感谢您的任何指导!