2017-09-13 101 views
1

我设法为1台服务器设置Kerberos身份验证,并运行正常。现在我有一个项目,我必须到另一台服务器添加到Kerberos配置如下:Kerberos和多个SPN

1)AD服务器

2)server1的地方服务运行的位置相同的服务将运行

3)服务器2

所以执行SETSPN命令assing既单个 “SPN” 用户:

SETSPN -s serviceX/[email protected] SPN

SETSPN -s serviceX/[email protected] SPN

然后我执行comman的ktpass:

的ktpass -princ serviceX/server1.domain。 [email protected] -ptype KRB5_NT_PRINCIPAL -crypto AES256-SHA1 -mapuser serviceX \ SPN退房手续C:\密钥表+ rndPass

什么建议立即进行删除d我旁边做它的工作? 如何执行server2的ktpass? 当我试图相同的命令Server2上我得到警告:

警告:无法设置UPN serviceX/server2.domain.com p型1 VNO 10 VLAN时0×12 kinits为 “serviceX/server2.domain.com”将失败。

你们为同样的服务,但在不同的服务器上设置kerberos身份验证? 你是否创建了2个spn用户和2个keytabs? 我想我需要在1个keytab中拥有所有的东西,因为服务需要它。 有什么帮助吗?

+0

FWIW,Cloudera的管理器为每个SPN(使用随机名)生成一个AD帐户与特定的密钥表进行每。它的工作原理。 –

+0

你的意思是什么_“该服务需要... 1 keytab”_?理论上,每个节点都可以具有特定的XML配置,并具有特定的密钥表名称/位置。在实践中,它会是地狱,所以keytab名称在所有节点上都是相同的 - 但内容不同。 –

回答

0

您可以使用相同的密钥表通过使用目录,而不是每个服务器绑定到用户帐户的SPN的两个不同的服务器上运行serviceX。为此,您将SPN绑定到虚拟服务器名称(又名“VIP”),而不是真正的服务器名称。我们一直在我目前的组织中这样做。因此,由于SPN将在DNS中使用虚拟服务器名称,因此您只需将负载均衡器配置为将对该虚拟名称的任何查询发送给其后的“回答”该名称的真实服务器。因此,在这种情况下,不必担心server1和server2都有唯一的密钥标签,只需为我所指的server-vip创建一个keytab,然后将该keytab复制到两台服务器。如果您没有负载均衡器,那么您只需使用DNS循环就可以完成此操作。所以下面的例子将是你的新的keytab创建语法,注意只有一件事情发生了变化。为什么这是好的另一个原因是因为它对服务器更改具有弹性。当你最终停止server1和server2时,你可以很容易地将密钥表复制到server3和server4。

ktpass -princ serviceX/server-vip .domain.com @ DOMAIN。COM -ptype KRB5_NT_PRINCIPAL -crypto AES256-SHA1 -mapuser serviceX \ SPN -out C:\密钥表+ rndPass

+0

这一切对我来说都是正确的。 –