在WCF服务中公开多个特定于客户端的端点的最佳实践?

在WCF服务中公开多个特定于客户端的端点的最佳实践?,wcf,wcf-security,x509certificate,Wcf,Wcf Security,X509certificate,在使用WCF重新设计web服务体系结构方面,我们的团队一直在讨论如何公开端点。示例:我有一个标准端点,所有用户都可以使用适当的令牌,但我也有一些端点将使用证书安全性。所有端点最终将使用相同的实现,因此这实际上只是进入系统的不同方式 证书端点必须指向存储中的特定证书,因此只能用于一个特定的客户端。我们的想法是,我们的标准服务可以存在于,证书端点类似于。这里的问题是,我正在有效地将客户机列表放入WSDL中,这是不可取的 这里的最佳实践是什么?是否有一种方法可以通过单个证书端点引导多个客户端,并在代码

在使用WCF重新设计web服务体系结构方面,我们的团队一直在讨论如何公开端点。示例:我有一个标准端点,所有用户都可以使用适当的令牌,但我也有一些端点将使用证书安全性。所有端点最终将使用相同的实现,因此这实际上只是进入系统的不同方式

证书端点必须指向存储中的特定证书,因此只能用于一个特定的客户端。我们的想法是,我们的标准服务可以存在于,证书端点类似于。这里的问题是,我正在有效地将客户机列表放入WSDL中,这是不可取的


这里的最佳实践是什么?是否有一种方法可以通过单个证书端点引导多个客户端,并在代码端获取证书(如果没有特定端点,我们如何知道正在处理哪个客户端)?隐藏客户列表的最佳方式是什么?有没有一个更好的解决方案我没有看到?

您不需要为每个客户端创建单独的端点。使用基于客户端证书的身份验证创建单端点,并使用您自己的身份验证逻辑实现您自己的身份验证。

将您的服务行为配置为:

       <behavior name="CertBeh">

            <serviceCredentials>

                <clientCertificate>

                    <authentication certificateValidationMode="PeerTrust" />

                </clientCertificate>

            </serviceCredentials>

        </behavior>

其他可能的选择