2016-06-10 67 views
3

首先,使用setspn命令爲用戶註冊服務主體名稱。什麼是指定SPN的正確格式?

SETSPN -a CS/[email protected] dummyuser

SETSPN -l dummyuser

給出的輸出作爲

CS/[email protected]

接下來,當使用/ mapUser選項執行ktpass命令時,th用戶帳戶的e服務主體名稱被修改,以便域組件被刪除。

的ktpass /傳密碼@ 123 -out dummy.1.keytab -princ CS/[email protected] -crypto DES-CBC-MD5 + DumpSalt -ptype KRB5_NT_PRINCIPAL + desOnly/mapOp設置/ mapUser dummyuser

SETSPN -l dummyuser

給出的輸出作爲

CS /虛設

以下兩個命令是否正確並以相同的方式工作?

SETSPN -a CS /虛設dummyuser

SETSPN -a CS/[email protected] dummyuser

雖然在SPN指定服務名稱,是強制性的包含域成分太?你能澄清一下嗎?

回答

1

正如你沒有提到它,我會假設你在Windows Active Directory域環境中?我這樣說是因爲在你的例子中給出的命令「ktpass」是Windows原生的。基於此,我將假定您的Active Directory DNS域名是abc.com,Kerberos域名是ABC.COM。

  1. 當你創建一個密鑰表時,SPN被映射到當時的用戶或計算機對象(本金,Kerberos中的術語),所以你不需要調整SPN是主要的事後除非你將它們添加爲輔助SPN。
  2. 幫你一個忙,把Kerberos域的名字放在你的keytab創建命令裏面。最好隨機化密碼,所以沒有人知道它。 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進行設置時,Windows會自動處理該域但如果不存在,那麼它將嘗試C:\ Windows \ krb5.ini),而在運行「setspn -a」或「setspn -s」時,您不需要將Kerberos領域限定爲SPN的一部分,您應該在Kerberos創建命令中執行此操作。

所以,你的情況,根據我所提到的一切,而你可以使用:

setspn -s CS/dummy.abc.com dummyuser 

對於額外的:

setspn -a CS/dummy dummyuser 

這將是更好的這種方式,而不是去做我相信我也修改了你的keytab創建命令,儘管保留了DES部分以免進一步混淆。

ktpass +rndPass -out dummy.1.keytab -princ CS/[email protected] -crypto DES-CBC-MD5 +DumpSalt -ptype KRB5_NT_PRINCIPAL +desOnly /mapOp set /mapUser [email protected] 
相關問題