我的情景:
最糟糕的情况是客户端和服务器不受我的控制。更具体地说,我可能会认为托管此代码的人可能会试图恶意冒充服务器或客户端(服务器更有可能)。但是,客户端需要验证服务器是否为我的代码,服务器需要验证客户端是否为我的代码。我已经看到了使用证书的所有建议;但是,根据我的情况,这是一个选项吗?
我考虑过的一种方法是编写IClientMessageInspector和IDispatchMessageInspector来设置和验证双方的自定义SOAP标头。我会根据源代码中包含的密钥创建一个HMAC签名(假设我有办法隐藏它),然后根据消息体验证摘要。
我觉得这会起作用;但是,我觉得可能会有一些我在这里缺少的开箱即用的东西。我离近了吗?谢谢你的指导!
答案 0 :(得分:1)
证书绝对是您的理想选择。
您的服务器很容易通过客户端进行身份验证,因为它将提供每个客户端都知道的证书,SSL是一个不错的选择。
服务器还可以通过请求每个客户端都应提供证书来验证客户端(服务器可以检查证书的特定颁发者 - 在这种情况下是您自己的颁发者)。
现在您只需要正确管理/保护您的证书服务器,以确保它不会受到损害。
答案 1 :(得分:0)
我认为没有任何开箱即用的功能,只是因为服务器验证调用该服务的客户端上的代码是授权的代码是一个不寻常的要求
通常,建立信任就足够了:
您正在尝试采取额外步骤来验证不仅验证了用户/计算机,还验证了运行的代码已经过验证 - 这实在是太过分了。如果正在运行的代码未经过验证,请执行以下操作: