无需客户端身份验证即可加密WCF消息

时间:2014-09-15 13:24:36

标签: wcf authentication encryption

我想在WCF场景中加密消息,其中绑定是tcp.NetBinding并且安全性绑定在传输上。

我发现,如果我不加密消息,我就不必在客户端和服务器之间进行客户端凭证处理。 但如果我想加密,似乎必须有某种形式 客户端身份验证(Windows凭据,证书...)。

WCF服务器无法启动凭据设置为Null并且加密已启用。 是否可以在不验证客户端的情况下加密客户端和服务器之间的消息?

非常感谢

1 个答案:

答案 0 :(得分:0)

是的,该方案称为Transport Security with an Anonymous Client

  

此Windows Communication Foundation(WCF)方案使用传输   安全性(HTTPS)以确保机密性和完整性。服务器   必须使用安全套接字层(SSL)证书进行身份验证,   并且客户端必须信任服务器的证书。客户不是   通过任何机制进行身份验证,因此是匿名的。

裸骨骼绑定设置如下:

var binding = new NetTcpBinding();
binding.Security.Mode = SecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.None;

同样在此特定情况下,安全性由 TLS over TCP 提供,以确保机密性和完整性。同样,所需要的只是让客户端信任服务器提供的证书。客户端未经过服务器身份验证,因此称为匿名客户端