如果您已经為單點登入身分驗證建立了 keytab 檔案,您可以使用此檔案在代理伺服器上配置 Kerberos 身分驗證。
您可以使用相同的使用者帳戶在叢集的所有節點上進行身分驗證。為此,您必須為這些節點中的每一個建立一個包含服務主要名稱 (SPN) 的 keytab 檔案。建立 keytab 檔案時,必須使用屬性產生salt(雜湊函數修飾字元)。
產生的鹽必須使用您選擇的方法進行儲存,以便隨後將新的 SPN 新增到 keytab 檔案中。
您還可以為要為其配置 Kerberos 身分驗證的每個叢集節點建立單獨的 Active Directory 使用者帳戶。
在您建立 keytab 檔案之前
在建立 keytab 檔案之前,對於每個 SPN,請確保它未在 Active Directory 中註冊。您可以透過執行以下命令來執行此操作:setspn -Q <SPN>
,其中 <SPN>
具有以下結構:HTTP/<叢集節點的完全限定網域名稱 (FQDN)>@<Active Directory 網域的網域名稱(大寫)>
。
該命令應傳回“未找到這樣的SPN”
,這意味著所討論的 SPN 未註冊。如果 SPN 已註冊,在建立 keytab 檔案之前,您需要從帳戶中取消分配 SPN 或在分配了此 SPN 的 Active Directory 中刪除帳戶本身。
檢查一個控制節點和次要節點的 SPN 的範例: setspn -Q HTTP/control-01.test.local@TEST.LOCAL setspn -Q HTTP/secondary-01.test.local@TEST.LOCAL setspn -Q HTTP/secondary-02.test.local@TEST.LOCAL |
建立 keytab 檔案
使用網域管理員帳戶,在網域控制器伺服器或屬於該網域的 Windows Server 電腦上建立 keytab 檔案。
要使用單一使用者帳戶建立 keytab 檔案:
control-user
。control-user
建立 keytab 檔案。為此,請在命令列執行以下指令:C:\Windows\system32\ktpass.exe -princ HTTP/<控制節點的完整限定網域名稱 (FQDN)>@<大寫領域 Active Directory 網域名稱> -mapuser control-user@<大寫領域 Active Directory 網域名稱> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <檔案路徑>\<檔案名稱>.keytab
執行該命令時,公用程式將提示您輸入 control-user
密碼。
具具有角色控制的節點的 SPN 將被新增到建立的 keytab 檔案中。將顯示產生的鹽:帶有鹽“<雜湊值>”的雜湊密碼。
C:\Windows\system32\ktpass.exe -princ HTTP/<節點的完整限定網域名稱 (FQDN)>@<大寫領域 Active Directory 網域名稱> -mapuser control-user@<大寫領域 Active Directory 網域名稱> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <先前建立的檔案路徑和名稱>.keytab -out <路徑和新名稱>.keytab -setupn -setpass -rawsalt "<在第 3 步建立 keytab 檔案時獲得的 salt 雜湊值>"
執行該命令時,公用程式將提示您輸入 control-user
密碼。
將建立 keytab 檔案。此檔案將包含叢集節點的所有已新增的 SPN。
示例: 例如,您需要建立包含以下 3 個節點 SPN 的 keytab 檔案: 要在 C:\keytabs\ 資料夾中建立包含控制節點 SPN 的
假設您獲得了鹽 要新增一個 SPN,您必須執行以下指令:
要新增第三個 SPN,您必須執行以下指令:
這將導致建立一個名為 |
要針對每個節點使用單獨的使用者帳戶建立 keytab 檔案:
control-user
、secondary1-user
、secondary2-user
等的使用者帳戶)。control-user
建立 keytab 檔案。為此,請在命令列執行以下指令:C:\Windows\system32\ktpass.exe -princ HTTP/<控制節點的完整限定網域名稱 (FQDN)>@<大寫領域 Active Directory 網域名稱> -mapuser control-user@<大寫領域 Active Directory 網域名稱> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <檔案路徑>\<檔案名稱>.keytab
執行該命令時,公用程式將提示您輸入 control-user
密碼。
具有角色控制的節點的 SPN 將被新增到建立的 keytab 檔案中。
C:\Windows\system32\ktpass.exe -princ HTTP/<節點的完整限定網域名稱 (FQDN)>@<大寫領域 Active Directory 網域名稱> -mapuser secondary1-user@<大寫領域 Active Directory 網域名稱> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <先前建立的檔案路徑和名稱>.keytab -out <路徑和新名稱>.keytab
執行該命令時,公用程式將提示您輸入 secondary1-user
密碼。
將建立 keytab 檔案。此檔案將包含叢集節點的所有已新增的 SPN。
示例: 例如,您需要建立包含以下 3 個節點 SPN 的 keytab 檔案: 要在 C:\keytabs\ 資料夾中建立包含控制節點 SPN 的
要新增一個 SPN,您必須執行以下指令:
要新增第三個 SPN,您必須執行以下指令:
這將導致建立一個名為 |
在您建立 keytab 檔案之後
在建立 keytab 檔案之後,對於每個 SPN,請確保它已註冊並指派給相關帳戶。您可以透過執行以下命令來執行此操作:setspn -Q <SPN>
,其中 <SPN>
具有以下結構:HTTP/<叢集節點的完全限定網域名稱 (FQDN)>@<Active Directory 網域的網域名稱(大寫)>
。
該命令必須傳回“找到現有的 SPN”
以及分配了 SPN 的帳戶。
此外,建立 keytab 檔案後,您可以檢查指派給相關帳戶的 SPN 清單。為此,您可以執行以下命令:setspn -L <帳戶>
,其中<帳戶>
具有以下結構:<使用者名稱>@<Active Directory 網域的網域名稱(大寫)>
。
如果使用一個帳戶建立了 keytab 檔案,則該命令應傳回為其建立 keytab 檔案的所有 SPN 的清單。如果為每個節點建立了單獨帳戶的 keytab 檔案,則該命令應傳回一個指派給特定帳戶的 SPN。
針對一個帳戶的範例指令: setspn -L control-user@TEST.LOCAL 每個節點單獨帳戶的範例命令: setspn -L control-user@TEST.LOCAL setspn -L secondary1-user@TEST.LOCAL setspn -L secondary2-user@TEST.LOCAL |