1

我们已经为应用程序构建了一个 WCF 服务,并且使用 WSHttpBinding 一切运行良好。我们现在被要求确保 Web 应用程序 -> WCF -> 数据库之间的通信是安全的,并被要求使用 SSL。除此之外,他们还要求我们确保 WCF 服务不能被其他应用程序访问。

如果我们设置 SSL,这是否会阻止其他人尝试进入,或者我们仍然需要在服务上设置 clientCredentialType 设置?此外,整个应用程序(站点、wcf、db)将在公司的网络中,所以如果我们设置 clientCredentialType="Windows" 使用哪个帐户,WCF 怎么知道允许网站与它通信,哪个 Windows 帐户是他们使用,或者这是我们需要设置的帐户?

谢谢。

4

1 回答 1

2

SSL 与身份验证或授权无关。它做了两件事:

  • 防止第三方拦截您的流量。
  • 验证人们是他们所说的那样。

“确保 WCF 服务不能被其他应用程序访问”的要求需要通过某种身份验证/授权机制来处理。您可以根据需要使用 Basic 或 Windows。

由于您在公司的网络中,我会尝试使用 Windows 身份验证。这将强制客户端通过您的域进行身份验证,但是看起来您不希望任何域用户都可以访问。在这种情况下,您需要设置基于角色的授权或基于用户的授权。无论是哪种战争,您都可以将 Web.config 文件放入与 WCF 服务端点相同的文件夹中,指定哪些帐户被授权。其他用户将看到 401 Unauthorized。

这是我会采取的一般方法。

于 2012-12-21T16:50:00.740 回答