分享方式:


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

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

關於 SPN

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

若要建立 SPN,可以使用 SetSPN 命令列公用程式。 如需詳細資訊,請參閱

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

語法

當您使用 SetSPN 操作 SPN 時,必須以正確的格式輸入 SPN。 HTTP SPN 的格式為 http/host。 使用 SetSPN 公用程式來建立報表伺服器之 SPN 的命令語法如以下範例所示:

Setspn -s http/<computer-name>.<domain-name> <domain-user-account>

Windows Server 上提供 SetSPN-s 引數會在確認沒有重複存在之後加入 SPN。

注意

從 Windows Server 2008 開始已可於 Windows Server 中使用 -s

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

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

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

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

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

  3. 開啟命令提示字元。

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

    Setspn -s http/<computer-name>.<domain-name> <domain-user-account>
    

    例如: Setspn -s http/MyReportServer.MyDomain.com MyDomainUser

  5. 執行命令。

  6. 開啟 RsReportServer.config 檔案,並找出 <AuthenticationTypes> 區段。

  7. 新增 <RSWindowsNegotiate> 當作此區段的第一個項目,以便啟用 Kerberos。