2012-04-16 62 views
2

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

当前,要求将Web服务Web角色设置为内部端点,即只能由UI层访问。有关配置内部端点并从不同部署访问它的文献不太清楚。

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

回答

2

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

您可能想考虑服务总线,以便从您的Web角色实例中获得wcf服务的安全方式。或者...通过输入终端暴露wcf服务,但保护服务。

+0

服务总线中继是否会从Azure服务接口工作?(即,是否可以通过Azure托管的IIS应用*启用服务总线侦听器的自动启动)? – SliverNinja 2012-04-16 14:13:27

1

您是否考虑过使用ACS(Access Control Services)来限制您的WCF端点访问using claims-based authentication

您可以提供多种保护方案via WCF bindings

Internal Endpoints只能与同一部署中的角色间通信。如果您有2个单独的部署(abc.cloudapp.netxyz.cloudapp.net,内部端点将不会帮助您)。

+2

不正确:内部端点会暴露给部署中所有角色的所有实例。 – 2012-04-16 14:00:15

+0

@DavidMakogon - 感谢您的纠正。上面编辑。 – SliverNinja 2012-04-16 14:08:33

1

这里有一个方法,我喜欢称之为虚拟DMZ是前人的精力满足您的需求:http://brentdacodemonkey.wordpress.com/?s=virtual+dmz

它利用ACS和WCF绑定允许您创建访问控制输入端点(然后将其负载平衡)。当然,如果你不想要强大的东西,你可以只使用标准的旧的WCF相互认证方案。

这就是说,大卫说得很好。内部端点只能通过一个部署的服务访问。这是因为该服务表示一个隔离边界(思考虚拟局域网分支),并且可以从该边界之外寻找唯一的输入端点。