如何保护从Windows服务托管的WCF Web服务?
问题描述:
我有一个关于WCF web服务安全性的问题。目前,我们正在开发一个android移动项目,并使用wcf web服务进行数据传输和操作。 我们使用basicHttpBinding作为Window服务承载Web服务。如何保护从Windows服务托管的WCF Web服务?
目前我们没有任何安全模式,如果知道服务地址,我恐怕每个人都可以使用我们的Web服务。 例如,我们有一个服务方法,它将返回字符串值。目前,我可以将该服务添加到其他Visual Studio项目和移动项目中,我们可以随时使用。
//WCF Service Method
public string DoWork()
{
return "This is return string!";
}
//We can consume it like below from other dot net project by adding service reference.
//Actually, those are not real client.
ServiceReference1.WebServiceClient serv = new TestingPrj.ServiceReference1.WebServiceClient();
string result = serv.DoWork();
我的问题是我如何确保我的网络服务真正的客户?我不希望其他项目和人员使用我们的Web服务。
答
最简单的方法是使用基于SSL的基本身份验证。基本身份验证要求客户端有一个用户名/密码对,只有您的应用程序才会知道。如果验证纯粹是为了知道您的客户端是否正确(而不是知道哪个用户正在连接),那么您可以使用一个硬编码的用户名/密码。
也应该使用SSL,因此凭据不会以纯文本形式传输线路,并且可能会被嗅探。
这里有很多帮助:https://www.google.com/#q=securing+wcf+web+services – 2012-03-27 17:34:34
我已经尝试过,但大部分答案都是针对IIS中托管的web服务的。这就是为什么我在这里提出问题。无论如何,感谢您的帮助。 – Chong 2012-03-27 17:51:36