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

使用NetTcpBinding在WCF中进行Windows身份验证/加密,wcf,nettcpbinding,Wcf,Nettcpbinding,我试图了解windows身份验证/加密如何与WCF中的NetTcpBinding一起工作。我需要确切地知道什么加密算法是用来加密数据通过电线(和一些文档证明它)。如果客户端和/或主机不在域上,windows身份验证/加密是否仍然有效?去年,我不得不使用wcf实现一个分布式系统,该系统要求在系统的所有层上都具有安全和性能的机制。我们决定通过创建二进制加密令牌来创建自己的安全体系结构。加密令牌包含给定用户拥有的所有权限 因此,例如,一个用户将登录到系统,如果成功验证,它将收到一个加密令牌。此令牌存储

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

去年,我不得不使用wcf实现一个分布式系统,该系统要求在系统的所有层上都具有安全和性能的机制。我们决定通过创建二进制加密令牌来创建自己的安全体系结构。加密令牌包含给定用户拥有的所有权限

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

优点:

  • 无论我们使用的是NetTcpBinding还是任何其他类型的绑定(我们确实使用了多种类型的绑定),这都无关紧要
  • 我们节省了很多往返数据库的时间
  • 我们可以在不同的平台上使用相同的令牌

我知道它可能无法回答您的具体问题,但在您仍在决定系统的层内体系结构时,它可能会给您一些思考的素材。

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

至于加密:你甚至可以选择你想要的加密方式三元组,AES——你可以说,也有不同的密钥长度


见文章-它讨论了安全和加密的所有方面;另请参阅MSDN文档,其中包含更多详细信息;可以找到显示basicHttp传输安全元素属性的良好概述。

这听起来非常有趣。为了实现这一点,你有什么例子或参考资料可以给我指吗?初始登录数据是否加密?(用户名和密码)