唯一 Spn 的名稱格式

SPN 在註冊的樹系中必須是唯一的。 如果不是唯一的,驗證將會失敗。 SPN 語法有四個元素:必須有兩個必要元素和兩個額外的元素,才能產生下表所列的唯一名稱。

<service class>/<host>:<port>/<service name>
元素 說明
"" 識別服務之一般類別的字串。例如,"SqlServer"。 有已知的服務類別名稱,例如 web 服務的 "www" 或目錄服務的 "ldap"。 一般而言,這可以是服務類別唯一的任何字串。 請注意,SPN 語法會使用正斜線 (/) 來分隔元素,因此此字元不能出現在服務類別名稱中。
「 < 主機 > 」 正在執行服務的電腦名稱稱。 這可以是完整的 DNS 名稱或 NetBIOS 名稱。 請注意,樹系中可能會有重複的 NetBIOS 名稱,如此包含 NetBIOS 名稱的 SPN 也可能不是唯一的 SPN。
" < port > " 選擇性的埠號碼,可區別單一主機電腦上相同服務類別的多個實例。 如果服務針對其服務類別使用預設通訊埠,請省略此元件。
"" 可複製服務的 Spn 中使用的選擇性名稱,用來識別服務或服務所服務之網域所提供的資料或服務。 此元件可以具有下列其中一種格式:
  • Active Directory Domain Services 中物件的辨別名稱或 objectGUID,例如服務連接點 (SCP) 。
  • 服務之網域的 DNS 名稱,可為整個網域提供指定的服務。
  • SRV 或 MX 記錄的 DNS 名稱。

存在於服務 Spn 中的元件,取決於服務的識別和複寫方式。 有兩個基本案例:以主機為基礎的服務和可複製服務。

以主機為基礎的服務

如果是以主機為基礎的服務,則 < 會省略「服務名稱」 > 元件,因為服務類別會唯一識別服務,以及安裝服務的主電腦名稱稱。

<service class>/<host>

服務類別只是用來識別用戶端服務所提供之功能的用戶端。 您可以在多部電腦上安裝服務類別的實例,而且每個實例都會提供使用其主機電腦識別的服務。 FTP 和 Telnet 是以主機為基礎的服務範例。 如果服務使用非預設的埠,或主機上的服務有多個實例,則主機服務實例的 Spn 可以包含埠號碼。

<service class>/<host>:<port>

可複製服務

若為可複製服務,服務 (複本) 的一或多個實例,而且用戶端不會區分它們所連接的複本,因為每一個都提供相同的服務。 每個複本的 Spn 都有相同的「 < 服務類別」 > 和「 < 服務名稱」 > 元件,其中「 < 服務名稱」 > 更明確地識別服務所提供的功能。 只有 " < host > " 和選擇性的「 < 埠」 > 元件會因 spn 而異。

<service class>/<host>:<port>/<service name>

可複製服務的其中一個範例,就是提供指定資料庫存取權的資料庫服務實例。 在此情況下,「 < 服務類別」會 > 識別資料庫應用程式,而「 < 服務名稱」會 > 識別特定的資料庫。 「 < 服務名稱」 > 可能是服務連接點的分辨名稱 (SCP) 包含資料庫的連接資料。

MyDBService/host1.example.com/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host2.example.com/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host3.example.com/CN=hrdb,OU=mktg,DC=example,DC=com

如果用戶端將使用 NetBIOS 名稱來撰寫服務的 SPN,則每個複本也必須註冊包含 NetBIOS 名稱的 SPN。

MyDBService/host1/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host2/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host3/CN=hrdb,OU=mktg,DC=example,DC=com

可複製服務的另一個範例是提供服務給整個網域。 在此情況下,「 < 服務名稱」 > 元件是所服務之網域的 DNS 名稱。 Kerberos KDC 是這類可複製服務的範例。

請注意,如果電腦的 DNS 名稱有所變更,系統 < > 就會為樹系中該主機的所有已註冊 spn 更新 "host" 元素。