2010-08-25 72 views
3

这是我的场景,我有一个WCF服务,位于防火墙后面的内部服务器上。WCF需要哪种类型的安全

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

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

当我搜索这个时,我发现所有服务都被客户端通过互联网使用,并使用Windows身份验证或提示输入用户名和密码。

我只需要我们在Web服务器上的应用程序来与Web服务交谈。任何建议表示赞赏。 谢谢!

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

+0

你想用你的安全保护什么?银行业务?未经授权的帖子到论坛?或者是什么? – 2010-08-25 19:01:15

+0

这是用户的交易历史记录。基本上只有购买历史是全部。没有太大风险,但我们希望有些安全。基本上我们不想被破解。 – twal 2010-08-25 19:23:29

+0

Web服务作为控制台应用程序运行?这听起来不像是好的生产架构。 – 2010-08-25 20:32:24

回答

1

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

  • 这是一个.NET特异性结合,所以 你不会对互操作性 (但既然你有通信双方 两端的控制,这听起来像 这不是一个问题)。
  • 它的性能比WSHttpBinding绑定的 更快,并且导致发送较小​​的消息的结果为 。

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

Here很好地描述了每个内置WCF绑定的安全特性。 NetTcpBinding的描述大约是下一页的1/3。

我希望这会有所帮助。

+0

太好了,谢谢你,我会看看这个。我感谢您的帮助! – twal 2010-08-25 21:43:57

+0

希望它适合你。如果还有其他问题,请添加评论,我会相应地更新我的答案。祝你好运! – 2010-08-25 21:57:19

+0

对不起,如果这些都是哑巴的问题,我想在这种情况下使用什么安全模式?运输? – twal 2010-08-25 22:11:01

0

如果您从可能受到攻击的地方开始,然后尝试并保护它。 3 obvoius攻击它是:

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

这解决了一些问题,总是有更多的事情可以做。