WCF需要哪种类型的安全性

时间:2010-08-25 15:50:08

标签: c# wcf wcf-binding wcf-security

这是我的方案,我有一个托管在防火墙后面的内部服务器上的WCF服务。

客户端是驻留在DMZ中的Web服务器上的Web应用程序。 防火墙在两个节点之间的端口上打开,因此可以从客户端连接到服务器。

我需要在此处使用什么类型的绑定来实现安全性。你知道一个示例程序或教程吗?

当我搜索这个时,我发现所有这些都是客户在互联网上使用服务的地方,并使用Windows身份验证或提示输入用户名和密码。

我只需要在Web服务器上使用我们的应用程序与Web服务进行通信。任何建议表示赞赏。 谢谢!

此外,我的Web服务作为控制台应用程序运行。

2 个答案:

答案 0 :(得分:1)

如果您控制解决方案的两端(DMZ中的Web服务器(客户端)和后面的控制台应用程序(服务器)),那么为什么不使用NetTcpBinding

  • 这是一个特定于.NET的绑定,所以 你不打算实现互操作性 (但既然你可以控制两者 通讯结束,听起来 这不是问题)。
  • 它的性能比它快 WSHttpBinding绑定和结果 传输的小消息。

听起来您不需要与消息一起传递的凭据(除了用户ID或消息中传递的某种类型的标识符),因此您可以使用TcpClientCredentialType.None来使用此绑定。

Here很好地描述了每个内置WCF绑定的安全功能。 NetTcpBinding的描述约为页面的1/3。

我希望这会有所帮助。

答案 1 :(得分:0)

如果你从可能被攻击的东西开始,然后尝试保护它。 3 obvoius是攻击它是:

  • 收听服务器之间的流量。使用加密协议,例如ws-httpbinding和邮件加密。 Nettcp绑定在这里也很有用。
  • 直接调用WCF服务。删除MEX以便他们无法获得您的服务签名,需要对服务进行身份验证。
  • 从Web服务器获取服务的身份验证信息。不要在配置文件中以明文形式存储用户名和密码。例如,使用您正在运行的服务的安全上下文。

这解决了一些问题,你可以做的更多。