我找不到直接答案。基本上我有MainService和SubService服务。我们的想法是客户端软件调用MainService中的一些方法,但SubService调用MainService中的另一部分服务。
我正在部署到Azure,我想在MainService中有两个独立的接口,一个用于客户端,一个用于SubService,我不希望Client服务有机会访问SubService使用的接口。
鉴于我是WCF服务的新手,我不知道如何解决这个问题。我是否需要多个Web角色用于访问同一数据库并处理并发问题等的不同接口,或者我可以以某种方式包含多个接口,但通过例如证书来限制可用性。我不确定Azure防火墙规则,但如果MainService中用于SubService的接口可以映射到防火墙规则后面的单独端口,那么这也是一个可行的解决方案。
tl; dr:在WCF服务中需要两个独立的接口,一个用于客户端软件(对外部世界开放),一个用于子系统服务。这两项服务都将在Azure中运行。我有什么选择?
答案 0 :(得分:1)
您可以使用标准WCF授权和身份验证。例如:http://msdn.microsoft.com/en-us/library/ff647503.aspx
如果要将Azure Service Bus与中继消息一起使用,可以使用Service Bus提供的一些身份验证和授权。但是,与在网络角色中托管您的WCF相比,我不确定是否有任何额外的价值(在任何一种情况下您都必须这样做,但是通过服务总线将对客户的访问权限进行分离)。