了解Kerberos主体

rga*_*ber 1 authentication spn kerberos keytab mit-kerberos

我试图了解Kerberos的基本概念.我在这里读到了关于这里的原理,通常看起来像:

primary/instance@REALM
Run Code Online (Sandbox Code Playgroud)

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

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

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

T-H*_*ron 6

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

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

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

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

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

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