2

目前,我们在 Azure 上运行 UI Web 角色和 Web 服务 Web 角色 (WCF REST)。每个角色包含 2 个实例(用于负载平衡和满足 SLA 要求) 。UI Web 角色和 Web 服务 Web 角色在同一个订阅中,但在不同的部署中。 我们不想合并代码库(可维护性等)。所以 UI 层在 xyz.cloudapp.net 上,Web 服务层在 abc.cloudapp.net 上。

目前,要求是使 Web 服务 Web 角色成为内部端点,即只能由 UI 层访问。关于配置内部端点并从不同的部署访问它的文献不是很清楚。

我假设这两个不同的角色需要成为单个部署的一部分才能正常工作。这可以在不影响部署的情况下完成吗?任何指向正确方向的指针将不胜感激。

4

3 回答 3

2

内部端点只能在单个部署中访问,并且不会通过负载均衡器进行路由(因此,如果您有 2 个 wcf 服务实例可在内部端点上访问,则需要在实例之间分配调用)。当然,这需要您将 web 角色和 wcf web 角色放入同一个部署中。

您可能需要考虑使用服务总线作为从 Web 角色实例访问 wcf 服务的安全方式。或者...通过输入端点公开 wcf 服务,但保护服务。

于 2012-04-16T13:59:48.200 回答
1

您是否考虑过使用 ACS(访问控制服务)来限制使用基于声明的身份验证对 WCF 端点的访问?

您可以通过 WCF 绑定提供多种保护方案。

内部端点只能与同一部署中的角色间通信。如果您有 2 个单独的部署(abc.cloudapp.net并且xyz.cloudapp.net,内部端点对您没有帮助)。

于 2012-04-16T13:59:32.020 回答
1

我喜欢将一种方法称为虚拟 DMZ,它可以满足您的需求:http ://brentdacodemonkey.wordpress.com/?s=virtual+dmz

它利用 ACS 和 WCF 绑定来允许您创建对输入端点(然后进行负载平衡)的访问控制。当然,如果您不想要一些健壮的东西,您可以只使用标准的旧 WCF 相互身份验证方案。

也就是说,大卫提出了一个很好的观点。内部端点只能通过单个部署的服务访问。这是因为该服务代表一个隔离边界(想想虚拟局域网分支),并且唯一的输入端点可以从该边界之外寻址。

于 2012-04-16T14:06:19.520 回答