使用NetTcpBinding在WCF中进行Windows身份验证/加密

时间:2009-12-17 16:50:53

标签: wcf nettcpbinding

我正在尝试了解Windows身份验证/加密如何与WCF中的NetTcpBinding一起使用。我需要确切地知道使用什么加密算法来加密通过线路传输的数据(以及一些证明它的文档)。如果客户端和/或主机不在域上,Windows身份验证/加密是否仍然有效?

2 个答案:

答案 0 :(得分:6)

使用Windows凭据的netTcpBinding要求调用者和服务位于同一个域上 - 或者至少在相互信任的域上。否则,服务器将无法验证Windows凭据,并将拒绝服务调用。

至于加密:您甚至可以选择您喜欢的加密! :-) TripleDES,AES - 您可以使用不同的密钥长度来命名。

参见Fundamentals of WCF Security文章 - 它讨论了安全性和加密的所有方面;另请参阅Securing Services上的MSDN文档,其中有更详细的内容;可以找到一个很好的概述here,显示basicHttp传输安全元素的属性。

答案 1 :(得分:2)

去年,我不得不使用wcf实现分布式系统,该系统需要在系统的所有层都安全且高效的机制。我们决定通过创建二进制加密令牌来创建自己的安全架构。加密的令牌包含给定用户拥有的所有权限。

因此,例如,用户将登录到系统,如果成功通过身份验证,则会收到加密的令牌。此令牌本地存储在Web客户端上。用户的所有进一步请求都将包含该令牌。令牌用于架构的多个级别。 Web服务器将使用它来决定启用或禁用哪些可视元素。由于服务层已暴露于互联网,因此每个打开的门都会检查令牌以进行身份​​验证,并检查该令牌是否具有执行给定任务的适当权限。业务层可以再次检查令牌中包含的更具体的权利。

优点:

  • 如果我们使用NetTcpBinding或任何其他类型的绑定并无关紧要(我们确实使用了多种类型的绑定)。
  • 我们为数据库保存了很多往返旅程
  • 我们可以在不同平台上使用相同的令牌

我知道它可能没有回答您的具体问题,但是当您仍在决定系统的层内架构时,它可能会给您一些值得思考的东西。