共用方式為


服務如何組成其 SPN

服務可以使用兩個函式來撰寫其SPN:DsGetSpn 是撰寫SPN和 DsServerRegisterSpn 的一般用途函式,是撰寫和註冊主機型服務的簡單SPN的特製化函式。

服務安裝程式通常會使用 DsGetSpn 函式來撰寫 SPN,然後使用 DsWriteAccountSpn 函式,在服務的登入帳戶上註冊。 DsGetSpn 可以執行下列函式。

  • 使用主機型服務的 「<服務類別>/<主機>」 格式建立簡單的 SPN。
  • 建立複雜的SPN,其中包含可複製服務所使用的“<服務名稱>”元件,或「<埠>」元件,以區別單一主機上服務的多個實例。
  • 使用 「<主機>」 元件建立單一 SPN,預設會設定為指定主機的名稱或本機計算機的名稱。
  • 針對將在整個樹系中多個主機上執行的多個服務實例建立SPN陣列。 每個SPN都會指定服務實例的主機名稱。
  • 針對將在相同主機上執行的多個服務實例建立SPN陣列。 每個SPN都會指定主機的名稱,以及服務實例的埠號碼。

DsGetSpn 所傳回的名稱陣列,必須藉由呼叫 DsFreeSpnArray 函式來釋出。

請注意,DsGetSpnDsWriteAccountSpnDsServerRegisterSpn 函式不會確認 SPN 是唯一的。 因為如果客戶端呈現非唯一的SPN,則相互驗證會失敗,請在註冊SPN之前先確認唯一性。 若要這樣做,請在全域編錄 (GC) 中搜尋 servicePrincipalName 符合 SPN 的屬性。 如需搜尋 GC 的詳細資訊,請參閱 搜尋全域編錄