了解Kerberos主体

时间:2016-11-04 18:57:24

标签: authentication kerberos spn mit-kerberos keytab

我试图了解Kerberos的基本概念。我读到了主要over here,通常看起来像:

primary/instance@REALM

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

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

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

1 个答案:

答案 0 :(得分:6)

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

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

  2. instance = FQDN(通常)需要在DNS中 - 它会是 服务器的FQDN即" primary" (服务)在

  3. 上运行
  4. REALM =通常以大写形式写入(虽然不是强制性的) - 这(虽然不总是)与要进行Kerberos身份验证的环境的DNS域名匹配。它是一组共享公共命名空间和Kerberos数据库的计算机。
  5. 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&# 34 ;. Kerberos严重依赖DNS。我认为技术上可能有一个非完全限定的Kerberos领域名称虽然我从未在实践中看到它。你只是要求遇到重大麻烦。对于您的3个服务相互交流,是的,每个服务都必须拥有自己的SPN,它们必须在Kerberos数据库中单独描述,否则客户将如何找到它们?在这种情况下,三个不同的服务都需要自己的keytab文件。但是每个keytab都没有其他服务的主体。不要像你自己喜欢的那样使用" principal"这个词。委托人是可能拥有SPN的安全对象,也可能不是。这取决于。有不同类型的安全主体,例如用户,而不是UPN。服务是SPN。计算机是第三类。如果您在Microsoft Active Directory环境中,建议您在此处阅读更多内容,这是目前最流行的Kerberos实施版本。 http://social.technet.microsoft.com/wiki/contents/articles/4209.kerberos-survival-guide.aspx