我的情景:验证主叫/服务器在WCF
- 许多WCF客户端这是在环境中我控制范围之外的
- 服务器要么是我的还是我的控制之外的环境
因此,最糟糕的情况是客户端和服务器超出了我的控制范围。更具体地说,我可能会认为托管此代码的人可能会尝试恶意地模拟服务器或客户端(服务器更可能)。但是,客户端需要验证服务器是我的代码,服务器需要验证客户端是我的代码。我已经看到所有使用证书的建议;然而,这是一个选择给我的场景?
我考虑的一种方法是编写IClientMessageInspector和IDispatchMessageInspector来设置和验证双方的自定义SOAP头。我将根据源代码中包含的密钥创建一个HMAC签名(假设我有一种方法可以将其隐藏),然后根据消息正文验证摘要。
我觉得这样会工作;不过,我觉得我可能会有更多现成的东西,我在这里失踪了。我关门了吗?感谢您的任何指导!
要清楚的是,我的服务器将托管在可能不受信任的各方的基础设施上,这意味着如果我使用SSL或其他证书,不受信任方也可以访问此证书。虽然我可能在这里错过了一些东西...... – toddkitta 2011-02-01 16:17:39