我认为我的 WCF 身份验证心智模型存在差距,希望有人可以帮助我填补它。
所以,我正在创建一个 WCF 服务,并希望让客户端使用证书和消息级安全性进行身份验证。我希望服务使用链信任来验证这些,这样我就不需要在服务上安装每个客户端证书。目前,我对让服务向客户端进行身份验证不感兴趣。
这是我对执行此操作所需的理解:
- 客户端需要由服务端信任的 CA 签名的证书。
- 该服务需要为该 CA 安装 CRL。
- 服务配置应启用消息安全性,指定 clientCredentialType="Certificate",并为客户端证书验证指定链式信任。
- 客户端配置应启用消息安全性,指定 clientCredentialType="Certificate",以及告诉如何在存储中查找客户端证书的端点行为。
客户端向服务发出请求,发送其证书。该服务看到客户端的证书由其受信任的 CA 签名并允许请求通过。
现在,我发现的此过程的所有演练还包括为服务创建证书的步骤。他们都没有解释这是为了什么,这让我很生气。如果我只想对客户端进行身份验证,为什么需要服务证书?