【问题标题】:What are the perceived/actual advantages of Kerberos? Are there any viable alternatives to the technology?Kerberos 的感知/实际优势是什么?该技术是否有任何可行的替代方案?
【发布时间】:2010-10-28 00:22:23
【问题描述】:

我们计划在我们的架构中使用 kerberos。我想知道这项技术有哪些感知或实际优势,以及是否有任何替代方案。

请注意,我们有一个 .net 客户端和 java 服务器端。通信将通过消息总线和 SOA 进行

【问题讨论】:

  • 在不了解您的要求的情况下,我认为没有人可以提出有意义的替代方案。

标签: authentication protocols network-protocols kerberos


【解决方案1】:

如果您在主要是 Windows 环境(即 Windows Server 2k3、域控制器、Active Directory 等)中工作,特别是您可以通过 .NET 将impersonation 与分离的 Web 服务器和数据库服务器一起使用.使用较旧的 NTLM 方法,您无法进行“双跳”。


我们来看一个例子:

  • 您有一个 Web 服务器 (WEB1)
  • 您在单独的计算机 (DB1) 上有一个数据库服务器
  • 您有一个用户访问您的网站 (USER1)

USER1 点击显示订单列表的页面。您的 WEB1 服务器必须向 DB1 查询此信息才能显示在页面上。您希望根据用户的凭据和访问权限来限制看到的订单。因此,您可以设置活动目录组并相应地分配用户。在您的数据库中,您为不同的组提供不同的安全性(例如,GROUP1 可能只有选择,而 GROUP2 可能会获得选择、插入和更新)。

NTLM 不支持执行此操作所需的双跳。 WEB1 必须将 USER1 的凭据发送到 DB1(否则 WEB1 必须使用硬编码到 web.config 中的已知专用用户 ID 和密码登录 DB1,例如,通常必须具有完全访问权限才能支持所有可能的用户角色)。您可以想象,如果 WEB1 受到威胁,这可能是一个安全隐患,所以您不能这样做,否则任何获得 WEB1 控制权(可能通过 sql 注入)的人都可以做任何专用用户帐户可以做的事情,或者冒充他们想要的任何人。 Kerberos,通过 Windows Server 上的委托,支持通过保持来自域服务器的加密凭据密钥完整并传递,以及验证这是允许的(在两端,请参阅下文以在您的服务器上进行设置)来执行第二个跃点因为必须明确允许)。

在开发具有数据库后端的 Intranet Web 应用程序(99% 的情况下,对吗?)并且您希望通过 Windows 集成安全性控制授权和身份验证时,这样做非常有用。 Kerberos 确实是您唯一的选择,除非您的 Web 服务器和数据库服务器位于同一台计算机上,这意味着无需传输凭据,也无需模拟。

另见:

【讨论】:

  • 这如何回答 OP 关于 Kerberos 优势的问题?鉴于 Active Directory 是 Kerberos 实现这一事实,它也几乎不能替代 Kerberos。
猜你喜欢
  • 2013-12-11
  • 2011-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-28
  • 1970-01-01
  • 2010-09-14
相关资源
最近更新 更多