关于wcf安全体系结构的建议



WCF中的安全web服务

    我们想要创建一个安全的WCF服务,它可以对数据进行加密/解密。加密和解密数据的性质需要尽可能高的安全性。
  • 此服务的消费者将是我们网络中的应用程序。这将是asp.net网站,其他wcf服务,控制台应用程序和可能基于java的应用程序在linux上运行
  • 消费者将在没有任何域成员的本地计算机帐户上运行。

我读了很多关于wcf安全性的书,并且在很大程度上理解了这些概念。我正在寻找一个参考架构,它已经为其他有类似需求的人工作得很好。

  1. 考虑到新的wcf服务不能依赖于任何数据库等来存储凭据,也不能依赖于消费者是windows域的成员,我应该使用什么身份验证方法?我应该能够在服务中正确地识别消费者,因为功能会根据谁是消费者而略有变化。
  2. 我应该使用哪种类型的传输安全-传输/消息/混合?这些都有性能方面的考虑吗?
  3. 我还应该考虑什么?
  1. 使用客户端证书进行认证。要识别客户,请使用带有自定义标头的消息契约。每个客户端应该在报头中放置一些唯一的值。
  2. 我建议在你的情况下使用运输安全。使用消息安全性有两个主要缺点:性能和对您更重要的是互操作性,正如您所说,您可能需要支持Java客户机。你说你已经读了很多关于WCF安全的内容,但以防万一,这里有一篇关于传输和消息安全的好文章。
  3. 注意你的服务绑定。我建议使用basicHttpBinding考虑到可能的Java客户机。

希望有帮助!

编辑:头值应该是私有的。只有你和你的客户知道这件事。这就像如果我知道你的Gmail密码,很快就能找到你的登录名。如果您认为它不够安全,您可以跳过自定义报头并将每个客户端映射到一个IP或一组IP。例如,IP 12.32.456.10对应于客户端a,那么你可以将这个映射存储在自定义配置文件部分,你可以加密这个部分,这样即使是访问你的服务文件的人也不能得到映射。

如果答案是有用的,不要忘记标记;)

最新更新