与重新设计使用WCF Web服务架构展望未来,我们的团队一直在讨论我们如何要公开的端点。例如:我有一个标准的终端,所有用户可以使用适当的令牌使用,但我也有将改用证书安全端点的一些数字。所有端点最终将使用相同的实现,所以这是真的到系统中得到的只是不同的方式。

证书端点必须指向一个特定的证书中的存储,以便将仅对于一个特定的客户端工作。这个想法是,我们的标准服务可以住在 http://mysite.com/MyService.svc 和证书端点会像 http://mysite.com/MyService.svc/Acme 。这里关注的是,我把有效我们的客户名单到我们的WSDL,这是不可取的。

什么是最好的做法吗?有没有办法通过一个单一的证书端点直接多个客户端,并获得该代码端证书(我们如何知道哪些客户端,我们正在处理的不特定端点)?什么是隐藏的客户名单的最佳方式?是否有一个完全更好的解决办法,我没有看到?

有帮助吗?

解决方案

您不必为每个客户建立单独的终结点。基于客户端证书身份验证创建单个端点和实现自己的 X509CertificateValidator与自己的验证逻辑。

其他提示

配置您的服务行为,如:

       <behavior name="CertBeh">

            <serviceCredentials>

                <clientCertificate>

                    <authentication certificateValidationMode="PeerTrust" />

                </clientCertificate>

            </serviceCredentials>

        </behavior>

PeerTrust告诉WCF看,如果客户提供的证书是在TrustedPeople店。因此,把所有客户端证书的商店在哪里您的服务所在的框,你会没事的。请参见其他可能的选择这篇文章

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top