请原谅我,如果这是重复,我没有找到答案。
我们有以下网络设置
Internal | DMZ | Internet
我认为这是安全的标准。
然后我有一个具有业务逻辑和持久性的内部WCF 服务。
由于数据不应理想地托管在DMZ中,我认为最好的解决方案是将相同服务的“哑” shell部署到DMZ并传递通信所需的参数使用互联网
我相信它看起来像这样:
Internal | DMZ | Internet
WCF_Full <---> | <-- WCF_Thin --> | <----> (Third party)
我的解决方案是
挑战来了,我必须传递更多数据(配置+业务消息),以使 WCF_Thin 工作,如果我坚持 WCF_Thin
答案 0 :(得分:1)
1)“最佳方法”是主观的,它总是取决于背景
2)我已经看到它按照您的描述完成,但仅适用于外部发起的流量。 DMZ托管了该服务的“Relay”版本,正如您所描述的那样,它只是将流量传递到完整版本。在我们的例子中,完整版本托管在“内部”网络上,然后访问数据存储并将其返回链。不知道为什么你需要为内部启动的流量执行此操作。
这种“中继”解决方案增加了相当大的复杂性,我们最终用应用层网关(ALG)取而代之,基本上做了同样的事情,虽然复杂性较低。 ALG将流量代理到服务的完整版本,并且“Relay”版本已停用。如果你使用谷歌的“应用层网关”,你会发现一堆信息。
可以针对发往外部的内部发起的呼叫执行相同的代理。考虑负载测试场景,您不希望加载供应商的服务或每次调用付费。为此,您可以设置ALG以识别邮件的签名,并以您确定的任何方式进行响应。
HTH