首先,使用setspn命令为用户注册服务主体名称。
setspn -a CS /dummy@abc.com dummyuser
setspn -l dummyuser
将输出显示为
CS/dummy@abc.com
接下来,当使用/ mapUser选项执行ktpass命令时,将修改用户帐户的服务主体名称,以便删除域组件。
ktpass / pass Password @ 123 -out dummy.1.keytab -princ CS /dummy@abc.com -crypto DES-CBC-MD5 + DumpSalt -ptype KRB5_NT_PRINCIPAL + desOnly / mapOp set / mapUser dummyuser
setspn -l dummyuser
将输出显示为
CS /虚设
以下两个命令是否都正确并且以相同的方式工作?
setspn -a CS / dummy dummyuser
setspn -a CS /dummy@abc.com dummyuser
在SPN中指定服务名称时,是否也必须包含域组件?你能澄清一下吗?
答案 0 :(得分:2)
正如您未提及的那样,我假设您处于Windows Active Directory域环境中?我这样说是因为你的例子中给出的命令“ktpass”是Windows原生的。基于此,我将假设您的Active Directory DNS域名是abc.com,Kerberos域名是ABC.COM。
所以,在你的情况下,基于我提到的一切,你可以使用:
setspn -a CS/dummy dummyuser
最好这样做:
setspn -s CS/dummy.abc.com dummyuser
为了额外的功劳,我还相应地修改了你的keytab创建命令,尽管保留了DES部分以免进一步混淆。
ktpass +rndPass -out dummy.1.keytab -princ CS/dummy.abc.com@ABC.COM -crypto DES-CBC-MD5 +DumpSalt -ptype KRB5_NT_PRINCIPAL +desOnly /mapOp set /mapUser dummyuser@ABC.COM