Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/web-services/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
面向公共安全的服务器上的内部WCF服务_Wcf_Web Services_Security_Iis - Fatal编程技术网

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

面向公共安全的服务器上的内部WCF服务,wcf,web-services,security,iis,Wcf,Web Services,Security,Iis,我需要托管一个WCF服务,该服务将允许其客户机访问面向公众的web服务器上的内部业务系统。显然,我必须确保这一点,以便外部世界的任何人都不知道该服务的存在,更不用说能够调用方法并访问它公开的数据了 总体思路是,托管在同一台机器上的面向公众的网站将调用WCF服务,然后WCF服务将向其提供所需的数据 面向公众的网站WCF服务业务系统/数据库 因此,我需要了解如何保护该服务,使其只能通过面向公众的网站访问 我的想法 IIS筛选,以便承载WCF服务的IIS站点将仅接受来自特定IP地址的请求 不允许通过

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

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

面向公众的网站WCF服务业务系统/数据库

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

我的想法

  • IIS筛选,以便承载WCF服务的IIS站点将仅接受来自特定IP地址的请求
  • 不允许通过面向公众的防火墙的隐藏端口
  • 协议,如NetTCP或NamedPipes
但实际的WCF安全设置如何?由于面向公众的站点和服务都在同一台计算机上,Windows身份验证作为选项吗?关于这一点,我的问题是

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

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

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

提前谢谢


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

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

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

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

干杯