【问题标题】:Encrypt WCF messages without authentication from the client加密 WCF 消息,无需来自客户端的身份验证
【发布时间】:2014-09-15 13:24:35
【问题描述】:

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

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

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

非常感谢

【问题讨论】:

    标签: wcf authentication encryption


    【解决方案1】:

    是的,场景叫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 提供了安全性,以确保机密性和完整性。同样,所需要的只是让客户端信任服务器提供的证书。客户端未经服务器验证,因此称为匿名客户端

    【讨论】:

    • 非常感谢,我会尝试使用 netTcp 绑定 :)
    • 我已经编辑了我的答案以包含NetTcpBinding 设置而不是WSHttpBinding 设置。
    • 您在采用这种方法时遇到过什么问题吗?
    • 谢谢很多人。我还有一些问题,但现在它可以与我自己的证书和匿名客户端的跨机器一起使用:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 2013-10-07
    • 2010-11-21
    • 2015-06-13
    • 1970-01-01
    • 2018-02-12
    • 2015-01-10
    相关资源
    最近更新 更多