【问题标题】:How to secure WCF web services hosted from a Windows Service?如何保护从 Windows 服务托管的 WCF Web 服务?
【发布时间】:2012-03-27 17:28:56
【问题描述】:

我有一个关于 WCF Web 服务安全性的问题。目前,我们正在开发一个 android 移动项目并使用 wcf Web 服务进行数据传输和操作。 我们使用 basicHttpBinding 并将 Web 服务托管为 Window Service

我们目前没有任何安全模式,恐怕每个人知道服务地址就可以使用我们的网络服务。 例如,我们有一个服务方法,它将返回字符串值。目前,我可以将该服务添加到其他 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();

我的问题是如何为真实客户保护我的网络服务?我不希望其他项目和人员使用我们的网络服务。

【问题讨论】:

  • 这里有很多帮助:google.com/#q=securing+wcf+web+services
  • 我已经尝试过了,但大多数答案都是针对托管在 IIS 中的 Web 服务。这就是为什么我把问题放在这里。无论如何,谢谢你的帮助。

标签: wcf web-services wcf-security wcf-client


【解决方案1】:

最简单的方法是使用基于 SSL 的基本身份验证。基本身份验证要求客户端有一个用户名/密码对,只有您的应用程序知道。如果身份验证纯粹是为了知道您的客户端是否正确(而不是知道哪个用户正在连接),那么您可以使用单个硬编码的用户名/密码。

也应该使用 SSL,这样凭据就不会以纯文本形式通过网络传输,并且可能被嗅探。

【讨论】:

    【解决方案2】:

    使用 ssl 证书是最安全的方式。

    【讨论】:

    • ssl 证书如何防止错误的用户访问服务?
    • 我们将服务托管为窗口服务,我们不使用 IIS 服务器。是否可以通过这种方式使用 SSL 证书?
    • 是的,您可以通过配置文件或将服务编码为需要 HTTPS 来实现。如果您在运行 windows 服务的服务器上安装了证书,它应该绑定到证书。
    • 感谢 mellamokb。您能分享一些链接或示例吗?我是网络服务和安全方面的新手。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2013-08-06
    • 2012-04-28
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    相关资源
    最近更新 更多