我有两个叫做app cluster和data cluster的ambari集群。两者都由kerberos保护。两个集群都有自己的kdc服务器。但是相同的域名(由管理团队配置)。
现在我想从app cluster访问datacluster的name节点。但是app cluster没有数据集群的名称节点主体。所以我犯了个错误
tgs请求结果:-1765328377/服务器nn/machine@realm 在kerberos数据库中找不到。
我检查了跨域身份验证。它说两个领域的名称应该是不同的。
如何使用具有相同域名的两个不同的主kdc服务器实现跨集群kerberos身份验证?
1条答案
按热度按时间toe950271#
当有两个具有相同领域名称的kdc主机时,我看到的问题是每个主机有两个不同的kerberos数据库,这意味着它们有不同的数据,使用不同的主密钥加密,使用不同的salt,甚至可能使用不同的加密类型(例如,如果从不同的发行版安装)。
例如,您可以通过在两个主机上执行以下命令来确保数据不同,然后比较输出:
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是有意义的。这就引出了一个问题——为什么要把第二个kdc主机放在第一位呢?
是因为担心吗?那么,确实需要将kdc的一个主kdc设置为从kdc。
两者都是吗
app-cluster
以及data-cluster
在不同的领域?那么拥有不同的领域是有意义的。如果到目前为止还没有高可用性问题(例如,这两个集群都还在开发阶段),另一种选择可能是只使用一个kdc主节点,而不使用任何从属节点,并配置所有集群中的节点与这个kdc进行通信。
关于领域配置的一般建议:
https://web.mit.edu/kerberos/krb5-1.12/doc/admin/realm_config.html