共用方式為


Kerberos 用戶端允許在服務主體名稱 (SPN) 中使用 IPv4 和 IPv6 位址主機名稱

從 Windows 10 版本 1507 和 Windows Server 2016 開始,Kerberos 用戶端可以設定為支援在 SPN 中使用 IPv4 和 IPv6 主機名稱。

根據預設,如果主機名稱是 IP 位址,Windows 便不會嘗試進行主機的 Kerberos 驗證, 而會回復為其他已啟用的驗證通訊協定,例如 NTLM。 但應用程式有時會進行硬式編碼來使用 IP 位址,這表示應用程式會回復為 NTLM,而不會使用 Kerberos。 若環境轉為停用 NTLM,這可能會導致相容性問題。

為了降低停用 NTLM 的影響,已引進一項新功能,讓系統管理員在服務主體名稱中使用 IP 位址作為主機名稱。 此功能可透過登錄機碼值在用戶端上啟用。

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\Parameters" /v TryIPSPN /t REG_DWORD /d 1 /f

若要設定在 SPN 中使用 IP 位址主機名稱的支援,請建立 TryIPSPN 項目。 此項目依預設不存在於登錄中。 建立該項目後,請將 DWORD 值變更為 1。 若要透過 IP 位址存取受到 Kerberos 保護資源的每部用戶端電腦,皆須設定此登錄值。

將服務主體名稱設定為 IP 位址

服務主體名稱是在 Kerberos 驗證期間用來識別網路服務的唯一識別碼。 SPN 由服務、主機名稱和選擇性的連接埠所組成,格式為 service/hostname[:port],例如 host/fs.contoso.com。 當電腦加入 Active Directory 時,Windows 會將多個 SPN 註冊到電腦物件。

由於 IP 位址通常是暫時項目,因此通常不會使用 IP 位址來取代主機名稱。 位址租用到期並更新時,這可能會導致衝突和驗證失敗。 因此,註冊 IP 位址型 SPN 是手動程序,只有在無法切換至 DNS 型主機名稱時才應該使用。

建議的方法是使用 Setspn.exe 工具。 請注意,SPN 一次只能註冊到 Active Directory 中的單一帳戶,因此若使用 DHCP,建議 IP 位址為靜態租用狀態。

Setspn -s <service>/ip.address> <domain-user-account>

範例:

Setspn -s host/192.168.1.1 server01