我们需要创建一个WCF服务(.NET 4.0),该服务将由我们组织外的客户端使用。
案例是我们有两个服务器位于负载均衡器后面,终止SSL。这是让我感到困惑的地方。 我们如何能够并且应该处理身份验证?
以前关于WCF的经验仅与内部使用的服务有关。如果我理解正确,我们应该使用basicHttpBinding来保证与基于Java的客户端的互操作性。我不知道这是否是基于JAX-WS的客户端的问题。
只有这一个客户端将使用该服务。
到目前为止,我找到的最好的文章是 http://devproconnections.com/net-framework/wcf-and-ssl-processing-load-balancers
几乎没有建议如何做到这一点。
可以配置WCF服务以进行基本身份验证,并通过HTTP清除接收凭据。这可以工作;但是,它排除了在消息中传递凭证,以及使用更有趣的凭证(例如发行的令牌)。
我们在我们的网站上使用表单身份验证,在该网站上托管服务。我认为使服务然后使用基本身份验证并不容易甚至不可能。
可以配置WCF服务以伪造传输安全性的存在,以便运行时允许接收消息凭证而无需传输或消息保护
这是否可行,将使用basicHttpBinding吗?
答案 0 :(得分:2)
客户端和服务器绑定将不同。客户端绑定将使用eitehr消息中的用户名auth或具有传输安全性的传输级别(ssl):
<bindings>
<basicHttpBinding>
<binding name="NewBinding0">
<security mode="Message" />
</binding>
</basicHttpBinding>
</bindings>
然后服务器配置将使用相同的配置但没有传输安全性。如果您选择使用邮件安全性,请查看WCF ClearUsernameBinding。如果您使用trasnport安全性(基本http),则设置mode =“TransportCredentialOnly”。