内部WCF的架构,调用连接到Internet的哑DMZ版本
本文关键字:Internet 的哑 DMZ 版本 连接 调用 WCF 内部 | 更新日期: 2023-09-27 17:53:23
如果这是重复的,请原谅,我没有找到答案。
我们有以下网络设置
Internal | DMZ | Internet
我相信这是安全标准。
然后我有一个内部WCF服务,它具有业务逻辑和持久性。
由于理想情况下不应该将数据托管在DMZ中,因此我认为最好的解决方案是将同一服务的"哑" shell部署到DMZ,并传递与Internet通信所需的参数。
我想应该是这样的:
Internal | DMZ | Internet
WCF_Full <---> | <-- WCF_Thin --> | <----> (Third party)
- 最好的方法是什么?
我的解决方案是
- 在WCF_Full中有一个指向WCF_Thin的服务引用。
- 具有相同的接口,而WCF_Thin仅将消息传递到internet
挑战来了,我必须传递更多的数据(配置+业务消息)沿着线,让WCF_Thin工作,我不会做,否则如果我有持久性在WCF_Thin。
- 这是值得的权衡,还是我做错了?
1)"最佳方法"是主观的,它总是取决于上下文
2)我已经看到它完成了你所描述的,但只针对外部发起的流量。DMZ托管服务的"中继"版本,正如您所描述的,它只是将流量传递到完整版本。在我们的例子中,完整版本托管在一个"内部"网络上,然后访问数据存储并将其返回到链中。不确定为什么需要为内部发起的流量这样做。
这个"中继"解决方案增加了相当多的复杂性,我们最终用一个应用层网关(ALG)取代了它,它基本上做了同样的事情,但复杂性更低。ALG将流量代理到服务的完整版本,并且"中继"版本已退役。如果你在谷歌上搜索"应用层网关",你会发现一堆信息。
同样的代理也可以用于内部发起的外部调用。考虑一个负载测试场景,在这个场景中,您不想加载供应商的服务,或者每次通话都要付费。为此,您可以将ALG设置为识别消息的签名,并以您确定的任何方式进行响应。
HTH