0

即使所有可用的文档都指导我如何配置 WCF 以允许通过 SSL 的证书,我仍然很难辨别 IIS 的职责所在以及 WCF 的职责所在。

例如,我对我的 IIS 服务器没有权限。我要求管理员设置我的虚拟目录(应用程序)以通过 ssl 要求证书。我这样做是因为当我尝试通过 web.config 配置此安全性时,它告诉我 IIS 未设置为允许这样做。

之后,另一位开发人员告诉我,由于 IIS 管理员是这样设置的,我只需在 web.config 中将 security = none 和 client auth 设置为 none,因为 IIS 现在将为我的应用程序处理这个问题。

这是真的?此外,是否有文档解释配置 IIS 和 WCF 的选项以及显示这些身份验证过程发生位置的某种类型的管道?

谢谢你。

4

2 回答 2

2

好吧,您肯定需要安装证书并在 IIS 中启用 SSL 绑定,然后才能正常工作。您还必须将“Security”模式设置为“Transport”,并将“clientCredentialType”设置为“None”。这可能是您的开发人员朋友的意思,尽管如果在 IIS 中设置了安全性,他暗示 WCF 不需要做任何事情是错误的。

<bindings>
  <basicHttpBinding>
    <binding name="secureHttpBinding">
      <security mode="Transport">
        <transport clientCredentialType="None"/>
      </security>
    </binding>
  </basicHttpBinding>
</bindings>

然后,您将在服务端点配置中引用此绑定。这个页面有一个非常清晰的分步指南,虽然您显然需要访问 IIS 来设置它。

基本思想是证书由 IIS 安装和管理,IIS 也处理身份验证。WCF 所做的只是说明服务将使用/期望的安全类型。此页面对 HTTP 上的传输安全性进行了很好的讨论,以及为此设置 IIS 的链接。希望这可以帮助!

于 2013-06-05T18:58:49.377 回答
0

我最近为外部公司设置了 wcf 服务来访问我们的数据。安全实践很难配置。我最终绕过了证书并编写了一个自定义身份验证类,该类对标头中的用户名和密码进行身份验证。我在旅途中找到的有用参考资料。

http://wcfsecurityguide.codeplex.com/releases/view/15892

http://msdn.microsoft.com/en-us/library/aa702565.aspx

我希望我能给你更多我的情况对安全来说不是那么重要,所以这在我采取的路线中起着重要作用。

于 2013-03-01T18:49:44.510 回答