首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指定SPN的正确格式是什么?

指定SPN的正确格式是什么?
EN

Stack Overflow用户
提问于 2016-06-10 09:03:35
回答 1查看 2.1K关注 0票数 6

首先,使用setspn命令为用户注册服务主体名称。

setspn -a CS/dummy@abc.com虚拟用户 setspn -l虚拟用户

将输出作为

CS/dummy@abc.com

接下来,当使用/mapUser选项执行ktpass命令时,将修改用户帐户的服务主体名称,以便删除域组件。

ktpass /pass密码@123 -out dumy.1.keytab -princ CS/dummy@CBC.com -crypto DES-CBC-MD5 +DumpSalt KRB5_NT_PRINCIPAL +desOnly /mapOp set /mapUser虚拟用户 setspn -l虚拟用户

将输出作为

CS/假人

以下两个命令是否正确并以相同的方式工作?

setspn -a CS/虚拟虚拟用户 setspn -a CS/dummy@abc.com虚拟用户

在SPN中指定服务名称时,是否也必须包含域组件?你能澄清一下吗?

EN

回答 1

Stack Overflow用户

发布于 2016-11-06 14:37:54

正如您没有提到的那样,我假设您在Windows Active域环境中?我这样说是因为在您的示例中给出的命令"ktpass“是Windows的本地命令。基于此,我将假设您的域名是ABC.COM,而Kerberos域名是abc.com。

  1. 当您创建一个keytab时,SPN将被映射到用户或计算机对象(以Kerberos术语表示),因此您以后不需要调整该主体的SPN,除非将它们添加为辅助SPN。
  2. 帮自己一个忙,并将Kerberos领域名称放在keytab creation命令中的大写字母中。最好把密码随机化,这样就没人知道了。Kerberos SSO功能可以很好地工作。并且Kerberos领域名称需要附加到"/mapUser“参数。我已经把你的例子修改成了你应该使用的更好的例子。
  3. 这超出了您问题的范围,但是不要再使用DES加密了。这个行业早就不受欢迎了。我不会说更多,因为这不是你要问的。
  4. 不要使用"setspn -a“语法在主体上添加或创建SPN,而是使用"setspn -s”作为"-s“检查重复SPN,而"-a”不使用(参见:“setspn -s” vs. “setspn -a”)。
  5. 确保您完全限定SPN的主机部分(即dummy.abc.com,而不仅仅是虚拟的)。否则,身份验证机制可能会立即尝试NTLM而不是Kerberos,这不是您想要的。
  6. 在一个简单的环境中,只包含一个DNS域和单个Kerberos域,并且已经设置了Kerberos领域到DNS域的映射(在UNIX/Linux上,通常由/etc/krb5.conf来设置/etc/krb5.conf),Windows会自动处理这一点,但如果没有,Windows将尝试C:\Windows\krb5.ini (如果存在的话),而当运行"setspn -a“或"setspn -s”时,不需要将Kerberos领域限定为SPN的一部分,您应该在您的Kerberos创建命令中这样做。

因此,在您的例子中,基于我提到的所有内容,而您可以使用:

代码语言:javascript
复制
setspn -a CS/dummy dummyuser

这样做会更好:

代码语言:javascript
复制
setspn -s CS/dummy.abc.com dummyuser

另外,我还相应地修改了keytab创建命令,但保留了DES部分,以避免进一步混淆。

代码语言:javascript
复制
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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37744163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档