3

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

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

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

所以我需要了解如何保护服务,使其只能通过面向公众的网站访问。

我的想法..

  • IIS 筛选,以便承载 WCF 服务的 IIS 站点将只接受来自特定 IP 地址的请求。
  • 不允许通过面向公众的防火墙的模糊端口。
  • 协议,例如 NetTCP 或 NamedPipes

但是实际的 WCF 安全设置呢?由于面向公众的站点和服务都在同一台机器上,Windows 身份验证是选项吗?我对此的问题是......

  • 服务客户端和服务是否应该简单地使用 Windows 身份验证?

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

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

提前致谢。

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

4

1 回答 1

0

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

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

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

干杯

于 2012-10-02T08:46:25.160 回答