如何从.Net 2.0客户端调用WCF服务时配置安全性

Jas*_*onS 15 security wcf .net-2.0

我启动并运行了WCF服务,并且能够使用basicHttpBinding在服务和.Net 2.0客户端之间进行通信.

我现在需要锁定WCF服务,以便它只能由经过身份验证的客户端调用.

我可以控制将要调用我的服务的客户端.客户端是一个产品的一部分,将安装在野外和"打电话回家"推送和拉取数据.客户端应用程序是为.Net 2.0框架编写的,目前无法升级到3.0或3.5.我无法将Windows用户帐户添加到客户端计算机.

我有什么选择来保护WCF服务并能够从我的.Net 2.0客户端进行身份验证?此外,数据需要通过https传递.

我一直在网上搜索,感觉我正在疯狂追逐.

Enr*_*lio 10

您可以将WCF端点配置为使用双向SSL身份验证.这意味着您可以要求客户端提供X.509证书,以便在向服务发出请求时确认其身份.

在服务器端,您可以使用WCF中的一个内置验证方案,或提供您自己的验证逻辑来​​检查X.509证书.
如果您在IIS中托管服务,那么配置SSL以在传输级别要求客户端证书将是微不足道的.但是,您可以在此处找到有关如何在自托管WCF服务中实现此行为的良好指南:

http://leastprivilege.com/2007/08/25/certificate-based-authentication-and-wcf-message-security/

我自己没有尝试过,但是,由于这会在消息级别创建安全性要求,我认为您必须使用wsHttpBinding在WSDL合同中强制执行它,因为强制要求访问Web服务的安全要求是WS-*标准.

如果必须使用basicHttpBinding,则可以尝试使用此解决方案,以便在传输级别上移动:

http://leastprivilege.com/2007/08/26/certificate-based-authentication-and-wcf-mode-independent/

希望这可以帮助


use*_*039 0

使用 SSL 证书是 .NET 2.0 客户端访问 WCF 服务的唯一选择,因为 basicHttpBinding 不提供安全性。通过使用 SSL,您可以保护整个传输通道。

检查链接http://www.codeplex.com/WCFSecurityGuide/Release/ProjectReleases.aspx?ReleaseId=15892。它涵盖了涵盖所有场景的 WCF 安全性。

要获得免费的 SSL 证书,请访问http://www.comodo.com/http://www.instantssl.com/并在您的应用程序中试用。