我成功地为1台服务器设置了Kerberos身份验证,并且运行正常。现在我有了一个项目,在这个项目中,我必须向Kerberos配置添加另一个服务器,如下所示:
1) AD服务器
2)运行服务的server1
3)运行相同服务的server2
因此,我执行setspn命令,将这两个命令都释放给单个"spn“用户:
setspn -s serviceX/server1.domain.com@DOMAIN.COM spn
setspn -s serviceX/server2.domain.com@DOMAIN.COM spn
然后我执行逗号ktpass:
ktpass -princ serviceX/server1.domain.com@DOMAIN.COM -ptype KRB5_NT_PRINCIPAL -crypto ese256-SHA1 -mapuser serviceX\spn -out C:\keytab +rndPass
接下来我该怎么做才能让它发挥作用?如何为server2执行ktpass?当我尝试对server2使用相同的命令时,我会收到警告:
警告:未能将UPN /server2.domain.com ptype 1、vno 10 etype 0x12 kinits设置为" serviceX/server2.domain.com“将失败。
你们是如何为同一服务在不同的服务器上设置kerberos身份验证的?您是否创建了2个spn用户和2个键标签?我想当服务需要时,我需要把所有的东西都放在1键标签中。有什么帮助吗?
发布于 2017-10-16 00:40:29
您可以使用相同的密钥选项卡在两个不同的服务器上运行serviceX,方法是使用绑定到目录中的用户帐户的SPN,而不是每个服务器。为此,您可以将SPN绑定到虚拟服务器名(也称为"VIP"),而不是真正的服务器名称。在我目前的组织里,我们一直在这样做。因此,由于SPN将在DNS中使用虚拟服务器名,因此您只需配置负载均衡器,将对该虚拟名称的任何查询发送到它后面的真正服务器“应答”该名称。因此,在这种情况下,不必担心server1和server2都有唯一的键签,您只需为我所指的服务器-vip创建一个键选项卡,然后将相同的键选项卡复制到两个服务器。如果您没有负载均衡器,那么您可以使用DNS循环执行此操作。下面的示例将是您的新keytab创建语法,请注意只有一件事情发生了变化。这是好的另一个原因是因为它对服务器更改具有弹性。当您最终退出server1和server2时,您可以轻松地将键标签复制到server3和server4中。
-princ -princ -ptype KRB5_NT_PRINCIPAL -crypto -crypto 256-SHA1 -mapuser serviceX\spn -out C:\keytab +rndPass
发布于 2019-11-13 23:59:43
朋友..。
当您尝试绑定SPN时
serviceX/server-vip.domain.com@DOMAIN.COM使用UPN
spn错误:连接到"serviceX/server2.domain.com“将失败。指出了一些问题,但没有指明具体的位置或方式。我今天也遇到了同样的问题,但另一条日志揭示了错误的主要原因:
未能设置属性'userPrincipalName'
当我们尝试用ktpass生成keytab时,会显示这条消息,我们无法想象的是,UPN对象有这么多属性,其中一个属性是UserPrincipalName.那么,为什么我们不能用"spn"值设置属性呢?因为它已经在另一个UPN属性中配置了!你需要验证你的UPN的所有属性,搜索"spn“值。
您可以使用adsi编辑进行手动搜索:
adsiedit.msc或者使用用户搜索userPrincipalName属性进行循环:
$users = get-aduser -filter *
foreach ($var in $users) { $var | select Name, UserprincipalName | fl }我解决了我的"UserPrincipalName“属性在另一个UPN中配置错误的问题。
每个UserPrincipalName都需要配置相同的►名称。
UPN=s_user_http,然后是UserPrincipalName=s_user_http@YOUR_DOMAIN,验证一下!
回答您的问题:1 UPN可以是一个倍数的,但它很危险,如果意外地增加kvno,所有其他键标签都将无效。每个SPN使用一个UPN。
我希望这能帮上忙。
https://stackoverflow.com/questions/46198868
复制相似问题