如果IIS设置为协商证书,是否需要使用传输安全性配置wcf?

时间:2013-03-01 17:39:33

标签: wcf iis ssl-certificate

即使有可用的所有文档指示我如何配置WCF以允许通过SSL的证书,我也很难辨别IIS的责任在哪里以及WCF的职责所在。

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

之后,另一位开发人员告诉我,因为IIS管理员以这种方式设置它,我只需要在我的web.config中将security = none和client auth设置为none,因为IIS现在将为我的应用程序处理此问题。

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

谢谢。

2 个答案:

答案 0 :(得分:2)

嗯,您肯定需要安装证书并在IIS中启用SSL绑定,然后才能运行。您还必须将“安全”模式设置为“传输”,将“clientCredentialType”设置为“无”。这可能是您的开发人员朋友所得到的,但他暗示WCF在IIS中设置安全性时不需要做任何事情是错误的。

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

然后,您将在服务端点配置中引用此绑定。 This page有一个非常明确的分步指导,但你显然需要访问IIS才能设置它。

基本思想是IIS安装和管理证书,IIS也处理身份验证。所有WCF都会说服务将使用/期望什么样的安全性。 This page 对HTTP上的传输安全性以及为此设置IIS的链接进行了很好的讨论。希望这有帮助!

答案 1 :(得分:0)

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

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

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

我希望我能给你更多我的情况对于安全而言并不那么重要,所以我在路线上扮演了重要角色。