使用 setspn 公用程式來指派 SPN

Active Directory 管理員會使用 setspn.exe 公用程式在 URL 中定義所需的 DNS 名稱,就如同在 Active Directory 帳戶中定義 SPN。若要定義帳戶中的 SPN,Active Directory 管理員必須屬於 網域 Admins 群組或 Enterprise Admins 群組,或者必須具有「已驗證寫入服務主體名稱」權限。

執行這項作業的原因和時機

Active Directory 管理員會執行下列步驟:

註: 如果已使用 domspnego.cmd 公用程式,該公用程式會產生輸出指令檔案,內含建議的 setspn 指令,以供 Active Directory 管理員用於定義 SPN。

程序

  1. 驗證 HCL Domino® 伺服器具有有效的「網域名稱系統 (DNS)」配置。例如:

    輸入下列指令,以驗證 DNS 可以擷取 Domino® 服務名稱的 IP 位址:

    nslookup service_fully_qualified_domain_name

    輸入下列指令,以驗證 DNS 可以擷取 Domino® 服務的完整名稱:

    nslookup domino_server_ip_address
    註: 可以透過 DNS 別名存取您的 Domino® 伺服器。如果是這樣,您必須定義別名的 SPN。請參閱本主題結尾的其他資訊。
  2. 驗證 setspn.exe 已安裝,例如在 C:\Program Files\Support Tools 中。如果未安裝,請從 Windows 支援 Tools 套件安裝(可從 Windows CD 或 Microsoft 下載網站取得)。
  3. 執行下列指令,將您在前一程序中記錄的每一個 DNS 主機名稱,在選擇的 Active Directory 帳戶中定義為 SPN:指定 HTTP/,即使 HTTPS URL 也要。
    setspn -a HTTP/dns_name account name

    其中

    dns_name 是前一程序中記錄的 dns 主機名稱,而

    account nameDomino® Windows 服務登入時 Domino® 伺服器使用的帳戶。如果使用「本端系統」帳戶,帳戶名稱將是執行 Domino® 的電腦的簡稱,例如 domino1。

    註: 僅為一個帳戶指派特定的 SPN。如果將一個 SPN 指派給多個帳戶,網路用戶端的 Windows 單一登入將無法作用。
  4. 使用 setspn 指令來驗證已正確定義 SPN:
    setspn -l account name

結果

若要從帳戶中刪除 SPN,請使用 setspn 指令搭配 -d 參數,而非 -a 參數。例如,在指派 SPN 給其他帳戶前,您可能會從某一帳戶中刪除了 SPN。切記只能將 SPN 指派給一個帳戶。

判斷是否可透過 DNS 別名存取 Domino® 伺服器

執行這項作業的原因和時機

可以透過別名存取您的 Domino® 伺服器。在 DNS 中,CNAME (正規名稱) 記錄可定義別名。在某些情況下,當決定要求其 Kerberos 服務通行證的 SPN 時,用戶端瀏覽器可使用 DNS 將 CNAME 別名解析為主機名稱;在此情況下,您需要為別名所代表的已解析主機名稱定義 SPN。

若要調查 Domino® 伺服器所使用別名的 DNS 設定,請在命令提示字元中,以互動模式使用 nslookup 指令搭配除錯設定 (set d2)。例如,若要查看 DNS 資訊,包括別名 www.renovations.com 解析成的主機名稱,請輸入:

C:\>nslookup 
> set d2 
> www.renovations.com  

如果 nslookup 的輸出將 www.renovations.com 識別為主機名稱 server3.ad.east.renovations.com 的 CNAME 別名,則您需要 HTTP/server3.ad.east.renovations.com 的 SPN。