2017-09-13 100 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

這一切對我來說都是正確的。 –