1

我正在尝试理解 Kerberos 的基本概念。我在这里读到了关于校长的信息,通常看起来像:

primary/instance@REALM

我想问到底什么是主、实例和领域。当然,上面的页面和互联网上的其他几个地方都有定义,但是有人可以举个例子吗?

我的理解是:主要是消费者(用户或服务)。实例是用于访问控制的东西。主实例可以是多个实例的一部分。Realm 是实例的集合?如果我错了,请纠正我。

如果我有一个服务器:foo.bar.com
,我可以有 2 个领域:REALM1, REALM2。这些可以这样命名吗?或者我可以在这里只有 1 个领域作为FOO.BAR.COM吗?
现在我说 3 个服务:s1、s2、s3相互交谈。由于启用了 kerberos,他们每个人都必须有一个带有自己的 keytab 文件的主体?或者由于每个服务都在与其他服务通信,每个 keytab 文件是否需要为其他服务提供主体?

4

1 回答 1

6

在您给出的示例中:primary/instance@REALM

  1. primary = 服务名称(例如在目标服务器上运行的 HTTP)

  2. instance = FQDN(通常)需要在 DNS 中 - 它是运行“主要”(服务)的服务器的 FQDN

  3. REALM = 通常以大写形式编写(尽管不是强制性的) - 这(尽管并非总是)与将发生 Kerberos 身份验证的环境的 DNS 域名相匹配。它是一组共享公共命名空间和 Kerberos 数据库的计算机。

SPN 示例:HTTP/server1.acme.com@ACME.COM。在这个例子中,它可以被缩短为 HTTP/server1.acme.com 假设 DNS 在机器环境中正确设置。

对于您的示例 foo.bar.com,领域可能是 FOO.BAR.COM。它不一定是。您绝对可以在另一个名称的 Kerberos 领域中存在 foo.bar.com 的 DNS FQDN,但该领域名称必须是完全限定的,您不能只将其作为“REALM1”。Kerberos 严重依赖 DNS。我想技术上可以有一个非完全限定的 Kerberos 领域名称,尽管我从未在实践中看到过它。你只会自找大麻烦。对于您的 3 个相互通信的服务,是的,它们中的每一个都必须有自己的 SPN,它们必须在 Kerberos 数据库中单独描述,否则客户将如何找到它们?在这种情况下,三个不同的服务都需要自己的 keytab 文件。但是每个密钥表都没有其他服务的主体。不要像您那样单独使用“主要”一词。主体是一个安全对象,它可能有一个 SPN,也可能没有。这取决于。有不同类型的安全主体,例如用户,它们具有 UPN。服务是 SPN。计算机是第三类。如果您在 Microsoft Active Directory 环境中,建议您在这里阅读更多内容,这是当今最流行的 Kerberos 实施版本。计算机是第三类。如果您在 Microsoft Active Directory 环境中,建议您在这里阅读更多内容,这是当今最流行的 Kerberos 实施版本。计算机是第三类。如果您在 Microsoft Active Directory 环境中,建议您在这里阅读更多内容,这是当今最流行的 Kerberos 实施版本。 http://social.technet.microsoft.com/wiki/contents/articles/4209.kerberos-survival-guide.aspx

于 2016-11-04T19:58:47.390 回答