面向公众的服务器安全性上的内部WCF服务

时间:2012-05-25 15:45:06

标签: wcf web-services security iis

我需要托管一个WCF服务,该服务将使其客户端能够访问面向公众的Web服务器上的内部业务系统。显然,我必须确保这一点,以便来自外部世界的任何人都不知道服务存在,更不用说能够调用方法并访问它公开的数据。

总体思路是托管在同一台机器上的面向公众的网站将调用WCF服务,然后WCF服务将为其提供所需的数据......

Public Facing Web Site <-> WCF Service <-> Business Systems / Databases

因此,我需要了解如何保护服务,以便只能通过面向公众的网站进行访问。

我的想法......

  • IIS过滤,以便托管WCF服务的IIS站点只接受来自某个IP地址的请求。
  • 不允许通过面向公众的防火墙的端口模糊。
  • NetTCP或NamedPipes等协议

但实际的WCF安全性如何设置呢?由于Public Facing Site和服务都在同一台机器上,因此Windows身份验证是可选的吗?我对此有疑问的是......

  • 服务客户端和服务是否应仅使用Windows身份验证?

  • 我是否需要特定的用户帐户而不是网络服务?如果网站在网络服务下运行,那么它会自动对服务进行身份验证吗?

我的目标是外界的某个人不应该知道存在的服务或能够访问它。

提前致谢。

技术环境是:IIS7,.Net 4和WCF 4。

1 个答案:

答案 0 :(得分:0)

我建议您创建一个http处理程序'.ashx'并将其用作客户端请求的端点。

如果你使用asp.net,你可以通过使用简单的表单身份验证来保护它,并从请求标头中检索用户名和密码来验证请求。

然后执行对您的业务Web服务的任何请求,这些请求也受到表单身份验证的保护。

干杯