这是一个架构问题 - 我希望这是一个正确的堆栈交换 - 这似乎没有一个自然的家园... ...WCF wsHttpBinding在数据中心 - 典型的使用模式
我工作的系统分布在数据中心 - DMZ中的Web服务器上,然后在安全区域(通过防火墙)调用Web服务访问数据。目前,这与WSE一起使用asmx服务,在SOAP头中传递用户名和密码凭证。这些通过未加密传递。该观点认为,这提供了一些安全措施(互联网DMZ服务器上的攻击者无法访问从Intranet DMZ服务器访问的服务的凭证)。
我们正在转向使用WCF,但坚持使用Web服务。我们希望使用wsHttpBinding来实现与其他客户端的最佳互操作性以及符合标准。继续使用用户名认证,这似乎要求使用SSL或消息加密,这似乎是很多人在我们自己的数据中心内控制两个端点时加密连接的过度杀手。
我很想知道这是别人做什么和我们有什么替代方案。我考虑过(并在下面排除了几个)
- SecurityMode = None - 不使用任何凭据。我们的安全人员对此并不满意,因为外部网络服务器上的攻击者可以访问他们喜欢的任何服务
- 使用BasicHttpBinding - 我认为可以配置为使用TransportCredentialOnly未加密传递用户凭证。然而,有些担心BasicHttpBinding是作为遗留方法,并且与其他技术的互操作性较差。
- 使用Clear Username Binding - 但是,这是开源的,我的组织因法律原因不想靠近开源地址
- 接受即使在数据中心内我们也必须转向加密消息
- 更改为使用不同的身份验证类型,例如Windows凭据 - 担心这对我们当前如何操作这些服务是一个潜在的重大变化,以及我们是否可以从DMZ访问目录服务器。
其他人如何使用WCF数据中心的安全区域内将是极大的任何想法赞赏
我对WCF的安全性并不十分了解,无法回答您的所有问题,但我知道您可以在哪里找到答案!查阅Juval Lowy编程WCF服务的第10章。这是WCF的圣经,第10章涵盖了您想了解的有关WCF安全的所有内容。 – 2012-02-24 15:40:26
感谢您的评论。有趣的是,我已经有这本书了。 IIRC内联网场景假设一个“平坦”网络,客户端和服务器都在一个网络上,没有防火墙/网络分区等。因此,建议使用netTCP等绑定,而不是我继承的防火墙友好的Web服务方法。我将在周一重新阅读(在我的书桌抽屉里工作!) – Durathor 2012-02-24 16:16:29