9

我认为我的 WCF 身份验证心智模型存在差距,希望有人可以帮助我填补它。

所以,我正在创建一个 WCF 服务,并希望让客户端使用证书和消息级安全性进行身份验证。我希望服务使用链信任来验证这些,这样我就不需要在服务上安装每个客户端证书。目前,我对让服务向客户端进行身份验证不感兴趣。

这是我对执行此操作所需的理解:

  1. 客户端需要由服务端信任的 CA 签名的证书。
  2. 该服务需要为该 CA 安装 CRL。
  3. 服务配置应启用消息安全性,指定 clientCredentialType="Certificate",并为客户端证书验证指定链式信任。
  4. 客户端配置应启用消息安全性,指定 clientCredentialType="Certificate",以及告诉如何在存储中查找客户端证书的端点行为。

客户端向服务发出请求,发送其证书。该服务看到客户端的证书由其受信任的 CA 签名并允许请求通过。

现在,我发现的此过程的所有演练还包括为服务创建证书的步骤。他们都没有解释这是为了什么,这让我很生气。如果我只想对客户端进行身份验证,为什么需要服务证书?

4

1 回答 1

9

你说的对。理论上不需要服务器证书,实际上 wcf 强制您使用一个。好消息是您应该为服务器使用一个虚拟证书,并将 ProtectionLevel 设置为 SignOnly。我建议阅读这篇文章,它讨论了类似的场景并且最相关。

于 2012-06-13T19:14:54.620 回答