我需要托管一个 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。