0

我们需要创建一个 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?

4

1 回答 1

2

客户端和服务器绑定会有所不同。客户端绑定将在 eitehr 消息或具有传输安全性 (ssl) 的传输级别中使用用户名身份验证:

   <bindings>
        <basicHttpBinding>
            <binding name="NewBinding0">
                <security mode="Message" />
            </binding>
        </basicHttpBinding>
    </bindings>

那么服务器配置将使用相同的配置,但没有传输安全性。如果您选择使用消息安全性,请查看WCF ClearUsernameBinding。如果您使用 trasnport 安全性(基本 http),则设置 mode="TransportCredentialOnly"。

于 2013-09-04T09:23:27.197 回答