Share via


如何:為報表伺服器註冊服務主要名稱 (SPN)

如果您在使用 Kerberos 通訊協定進行相互驗證的網路中部署 Reporting Services,當您想要將報表伺服器服務設定為以網域使用者帳戶的身分執行時,必須為此服務建立服務主要名稱 (SPN)。此外,當您將網域使用者設定成服務帳戶時,就必須將報表伺服器設定成使用 NTLM 驗證。

關於 SPN

SPN 是使用 Kerberos 驗證之網路上某項服務的唯一識別碼。它是由服務類別、主機名稱和通訊埠所組成。在使用 Kerberos 驗證的網路上,伺服器的 SPN 必須在內建的電腦帳戶 (如 NetworkService 或 LocalSystem) 或使用者帳戶下註冊。內建帳戶會自動註冊 SPN。但是,當您在網域使用者帳戶下執行服務時,您必須針對您想要使用的帳戶手動註冊 SPN。

若要建立 SPN,您可以使用 SetSPN 命令列公用程式。如需詳細資訊,請參閱 Microsoft Windows Server TechCenter 上的<Setspn 概觀>(英文)。

您必須是網域管理員,才能在網域控制站上執行此公用程式。

語法

使用 SetSPN 公用程式來建立報表伺服器之 SPN 的命令語法如下:

Setspn -a http/<computername>.<domainname>:<port> <domain-user-account>

Windows Server 2003 Service Pack 1 支援工具套件中有提供 SetSPN,您必須個別下載此套件。-a 引數是用來向特定的帳戶註冊服務主要名稱。

HTTP 為服務類別。報表伺服器 Web 服務會在 HTTP.SYS 中執行。依據產品建立適用於 HTTP 的 SPN 就是指相同電腦上在 HTTP.SYS 中執行的所有 Web 應用程式 (包括 IIS 內主控的應用程式) 都將根據網域使用者帳戶來被授與票證。如果這些服務在不同的帳戶下執行,驗證要求將會失敗。為了避免這個問題,請務必在相同的帳戶下設定所有要執行的 HTTP 應用程式,或是考慮為每一個應用程式建立主機標頭,然後再為每一個主機標頭建立個別的 SPN。當您設定主機標頭時,不論 Reporting Services 組態為何,都需要進行 DNS 變更。

您為 <computername>、<domainname> 和 <port> 指定的值會識別主控報表伺服器之電腦的唯一網路位址。這個值可以是本機主機名稱或完整網域名稱 (FQDN)。如果您只有一個網域,而且您使用通訊埠 80,就可以在命令列中省略 <domainname> 和 <port>。<domain-user-account> 是用以執行報表伺服器服務以及必須註冊 SPN 的使用者帳戶。

[!附註]

注意:如果您正在使用 Internet Explorer 和 Kerberos 驗證,建議您不要在命令列中指定通訊埠。如需詳細資訊,請參閱<Internet Explorer 無法使用 Kerberos 驗證通訊協定來連接至網站>(機器翻譯)。

為網域使用者帳戶註冊 SPN

若要以網域使用者的身分為報表伺服器服務註冊 SPN

  1. 以網域使用者帳戶的身分安裝 Reporting Services,並設定要執行的報表伺服器服務。請注意,要等到您完成下列步驟以後,您才能夠連接報表伺服器。

  2. 從下載中心下載並安裝 Windows Server 2003 Service Pack 1 支援工具

  3. 以網域管理員的身分登入網域控制站。

  4. 開啟 [命令提示字元] 視窗。

  5. 複製下列命令,使用對您的網路有效的實際值來取代預留位置值:

    Setspn -a http/<computer-name>.<domain-name>:<port> <domain-user-account>
    
  6. 執行此命令。

  7. 開啟 RsReportServer.config 檔並找出 <AuthenticationTypes> 區段。加入 <RSWindowsNegotiate/> 當做此區段的第一個項目,以便啟用 NTLM。