两个具有相同kerberos领域的集群

时间:2018-04-05 06:45:15

标签: hadoop authentication hdfs kerberos ambari

我有两个名为app-cluster和data-cluster的ambari集群。两者都由kerberos担保。两个群集都有自己的KDC服务器。但是相同的域名(由管理团队配置)。

现在我想从app-cluster访问数据集群的名称节点。但是app-cluster没有数据集群的名称节点主体。所以kerberos投掷错误就像

  

TGS请求结果:-1765328377 / Kernos数据库中找不到服务器nn / machine @ REALM。

我检查了跨领域身份验证。它说两个领域名称应该是不同的。

如何使用具有相同领域名称的两个不同的主kdc服务器实现跨群集kerberos身份验证?

1 个答案:

答案 0 :(得分:0)

当我有两个具有相同领域名称的KDC主服务器时,我看到的问题是每个主服务器有两个不同的kerberos数据库,这意味着它们具有不同的数据,使用不同的主密钥加密,使用不同的盐,它们可能甚至使用不同的加密类型(例如,如果从不同的发行版安装)。

例如,您可以通过在两个主服务器上执行以下命令来确保数据不同,然后比较输出:

kdb5_util tabdump keydata

跨领域身份验证的正确情况是,当有两个或至少两个KDC主服务器负责不同域中的不同领域时,您仍然希望来自一个领域的用户在另一个领域中进行身份验证:

https://web.mit.edu/KERBEROS/krb5-1.5/krb5-1.5.4/doc/krb5-admin/Cross_002drealm-Authentication.html

如果在一个领域和一个领域中有两个KDC,那么将其中一个作为主KDC而另一个是奴隶是有意义的。这引出了一个问题 - 首先拥有第二个KDC大师的原因是什么?

  • HA有顾虑吗?然后确实需要将其中一个KDC主人设为奴隶KDC。
  • 不同域中的app-clusterdata-cluster都是?那么拥有不同的领域是有意义的。

如果到目前为止还没有高可用性问题(例如,这两个集群仍处于开发阶段),另一种选择可能是仅使用一个没有任何从站的KDC主站,并在所有集群中配置节点以与此通信KDC。

关于领域配置的一般建议:

https://web.mit.edu/kerberos/krb5-1.12/doc/admin/realm_config.html