5

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

4

2 回答 2

6

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

至于加密:你甚至可以挑选你喜欢的!:-) TripleDES, AES - 你的名字,也有不同的密钥长度。

请参阅WCF 安全性基础文章 - 它讨论了安全性和加密的各个方面;另请参阅 MSDN Docs on Securing Services,其中包含更多详细信息;可以在此处找到一个很好的概述,其中显示了 basicHttp 传输安全元素的属性。

于 2009-12-17T17:18:58.150 回答
2

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

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

优点:

  • 如果我们使用 NetTcpBinding 或任何其他类型的绑定(并且我们确实使用了不止一种类型的绑定),这并不重要。
  • 我们节省了很多往返数据库的次数
  • 我们可以在不同的平台上使用相同的令牌

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

于 2009-12-17T17:10:06.420 回答