Authentication 理解Kerberos主体

Authentication 理解Kerberos主体,authentication,kerberos,spn,mit-kerberos,keytab,Authentication,Kerberos,Spn,Mit Kerberos,Keytab,我试图理解Kerberos的基本概念。我读过关于校长的书,通常看起来像: primary/instance@REALM 我想问的是,什么是主要的、实例和领域。当然,上面的页面和互联网上的其他几个地方都给出了定义,但是有人能举个例子吗 我的理解是: 主要是消费者(用户或服务)。 实例是用于访问控制的对象。主实例可以是多个实例的一部分。 领域是实例的集合? 如果我错了,请纠正我 如果我有服务器:foo.bar.com 在这方面,我可以有两个领域:领域m1,领域m2。这些可以这样命名吗?或者我可以在

我试图理解Kerberos的基本概念。我读过关于校长的书,通常看起来像:

primary/instance@REALM
我想问的是,什么是主要的、实例和领域。当然,上面的页面和互联网上的其他几个地方都给出了定义,但是有人能举个例子吗

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

如果我有服务器:foo.bar.com
在这方面,我可以有两个领域:领域m1,领域m2。这些可以这样命名吗?或者我可以在这里只有一个域名作为FOO.BAR.COM

现在我要说的是3个服务:s1、s2、s3,它们相互通信。既然启用了kerberos,它们中的每一个都必须有一个主体及其自己的keytab文件?或者,由于每个服务都在与其他服务通信,每个keytab文件是否需要为其他服务设置主体

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

  • 主=服务名称(例如,在目标服务器上运行的HTTP)

  • instance=FQDN(通常)需要在DNS中-应该是 运行“主”(服务)的服务器的FQDN

  • 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实现版本

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

  • 主=服务名称(例如,在目标服务器上运行的HTTP)

  • instance=FQDN(通常)需要在DNS中-应该是 运行“主”(服务)的服务器的FQDN

  • 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实现版本

    谢谢你的解释,现在好多了!所以,如果对于我的服务s1(它作为自己的用户运行,比如s1user),我想让它访问服务s2,我该怎么做?假设这两个都在同一个实例上。我不为用户创建一个新主体吗/instance@realm然后将其添加到s2的keytab文件中?这不是原始问题的一部分,是一个更高级的主题,我不熟悉如何实现。我在谷歌上搜索了一下,发现了这个:谢谢你的解释,现在好多了!所以,如果对于我的服务s1(它作为自己的用户运行,比如s1user),我想让它访问服务s2,我该怎么做?假设这两个都在同一个实例上。我不为用户创建一个新主体吗/instance@realm然后加上t