共用方式為


唯一SPN的名稱格式

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

<service class>/<host>:<port>/<service name>
元素 描述
“<service class>” 識別服務一般類別的字串;例如,“SqlServer”。 有已知的服務類別名稱,例如 Web 服務的 「www」 或目錄服務的 「ldap」。 一般而言,這可以是服務類別唯一的任何字串。 請注意,SPN 語法會使用正斜線 (/) 來分隔專案,因此此字元不能出現在服務類別名稱中。
“<host>” 服務執行所在的計算機名稱。 這可以是完整 DNS 名稱或 NetBIOS 名稱。 請注意,NetBIOS 名稱不保證在樹系中是唯一的,因此包含 NetBIOS 名稱的 SPN 可能不是唯一的。
“<port>” 選擇性埠號碼,可區分單一主計算機上相同服務類別的多個實例。 如果服務使用其服務類別的預設埠,請省略此元件。
“<service name>” 選擇性名稱,用於可複製服務的SPN,以識別服務所提供的數據或服務,或服務所提供的網域。 此元件可以有下列其中一種格式:
  • Active Directory 網域服務 中對象的辨別名稱或 objectGUID,例如服務連接點 (SCP)。
  • 服務之網域的 DNS 名稱,提供整個網域的指定服務。
  • SRV 或 MX 記錄的 DNS 名稱。

 

服務 SPN 中的元件取決於服務的識別和複寫方式。 有兩個基本案例:主機型服務和可複製的服務。

主機型服務

若為主機型服務,則會省略「<服務名稱>」元件,因為服務是由服務類別和安裝服務的主計算機名稱唯一識別。

<service class>/<host>

僅服務類別就足以識別服務所提供的功能用戶端。 您可以在許多計算機上安裝服務類別的實例,而且每個實例都提供以其主計算機識別的服務。 FTP 和 Telnet 是主機型服務的範例。 如果服務使用非預設埠,或主機上有多個服務實例,則主機服務實例的SPN可以包含埠號碼。

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

可複製的服務

針對可複製的服務,服務可以有一或多個實例(複本),而用戶端不會區分它們所連線的複本,因為每個複本都提供相同的服務。 每個復本的SPN具有相同的「<服務類別>」和「<服務名稱」元件,其中「<服務名稱>>」會更具體地識別服務所提供的功能。 只有「<主機>」和選擇性「<埠>」元件會因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>” 元素。