针对wcf安全体系结构的建议

时间:2013-01-16 16:07:23

标签: wcf security architecture

在WCF中保护网络服务

背景

  • 我们希望创建一个对数据进行加密/解密的安全WCF服务。要加密和解密的数据的性质要求最高级别的安全性。
  • 此服务的消费者将成为我们网络中的应用程序。将是asp.net网站,其他wcf服务,控制台应用程序以及可能在linux上运行的基于Java的应用程序
  • 消费者将在没有域成员资格的本地计算机帐户上运行。

我已经做了很多关于wcf安全性的阅读,并且在很大程度上理解了这些概念。我正在寻找一种适用于有类似需求的其他人的参考架构。

问题

  1. 我应该使用什么身份验证方法,因为新的wcf服务不能依赖任何数据库等来存储凭据,也不能依赖于消费者成为Windows域的成员。我应该能够在服务中正确识别消费者,因为功能会稍微改变,具体取决于谁是消费者。
  2. 我应该使用什么类型的转移安全 - 传输/消息/混合?这些都有性能方面的考虑吗?
  3. 我还应该考虑什么?

1 个答案:

答案 0 :(得分:0)

  1. 使用客户端证书进行身份验证。使用自定义标头标识客户使用消息合同。每个客户端都应在标题中添加一些唯一值。
  2. 我建议您使用传输安全性。使用消息安全性有两个主要缺点:性能,对您来说更重要的是互操作性,正如您所说,您可能需要支持Java客户端。你说你已经阅读了很多关于WCF安全性的内容,但是如果你错过了它,这里有一篇关于Transport and Message安全性的好文章。
  3. 注意您的服务绑定。我建议使用basicHttpBinding考虑可能的Java客户端。
  4. 希望它有所帮助!

    <强>编辑: 标头值应该是私有的。只有您和您的客户应该了解它。就像我知道您的Gmail密码一样,查找您的登录信息不会花费很长时间。 如果您认为它不够安全,则可以跳过自定义标头并将每个客户端映射到IP或一组IP。例如,IP 12.32.456.10对应于客户端A.然后,您可以将此映射存储在自定义配置文件部分中,您可以加密此部分,以便即使访问您的服务文件的人也无法获取映射。

    如果是,请不要忘记将答案标记为有用;)