對 Windows Token 服務 (C2WTS) 和 Reporting Services 的宣告

適用於:SQL Server 2016 (13.x) Reporting Services 和更新版本 SharePoint Power BI 報表伺服器

如果您想要在 SQL Server Reporting Services 報表檢視器 Web 組件中檢視原生模式報表,SharePoint 需要對 Windows Token 服務 (C2WTS) 宣告。

如果要針對 SharePoint 伺服器陣列以外的資料來源使用 Windows 驗證,C2WTS 也需要 SQL Server Reporting Services SharePoint 模式。 即使資料來源位於共用服務所在的同一部電腦上,也必須使用 C2WTS。 但此情況無須使用限制委派。

注意

SQL Server 2016 後即不再提供 Reporting Services 與 SharePoint 的整合。

報表檢視器 (原生模式) Web 組件設定

報表檢視器網頁組件是自訂的網頁組件,可用於檢視 SharePoint 網站中的 SQL Server Reporting Services (原生模式) 報表。 您可以在使用網頁組件來檢視、巡覽、列印並匯出報表伺服器的報表。 報表檢視器網頁組件與 SQL Server Reporting Services 報表伺服器或 Power BI 報表伺服器所處理的報表定義 (.rdl) 檔建立關聯。 此報表檢視器網頁組件不能搭配 Power BI 報表伺服器裝載的 Power BI 報表使用。

SharePoint Server 2013、SharePoint Server 2016 和 SharePoint Server 2019 全都使用宣告驗證。 因此,除了必須正確地設定 C2WTS,還必須為 Kerberos 驗證設定 Reporting Services,才能正確地轉譯報表。

  1. 您可以指定 SSRS 服務帳戶、設定 SPN,以及更新 rsreportserver.config 檔案,以使用 RSWindowsNegotiate 驗證類型,為 Kerberos 驗證設定您的 Reporting Services (原生模式) 執行個體。 為報表伺服器註冊服務主體名稱 (SPN)

  2. 遵循設定 c2WTS 的必要步驟中的步驟

SharePoint 模式整合

本節只適用於 SQL Server 2016 Reporting Services 及更早版本。

如果要針對 SharePoint 伺服器陣列以外的資料來源使用 Windows 驗證,SQL Server Reporting Services SharePoint 模式需要 SharePoint 對 Windows Token 服務宣告 (c2WTS)。 使用者若是使用 Windows 驗證來存取資料來源,此要求也適用,因為 Web 前端 (WFE) 與 Reporting Services 共用服務之間的通訊皆會使用宣告驗證。

設定 c2WTS 的必要步驟

C2WTS 建立的權杖只能與限制委派 (僅限於特定服務) 及設定選項 [使用任何驗證通訊協定] (通訊協定轉換) 搭配使用。

如果您的環境會使用 Kerberos 限制委派,則 SharePoint Server 服務及外部資料來源必須位於相同的 Windows 網域。 相依於 Windows Token 服務之宣告 (c2WTS) 的任何服務,都必須使用 Kerberos 限制 委派,才能讓 c2WTS 使用 Kerberos 通訊協定轉換將宣告轉譯成 Windows 認證。 這些需求對於所有 SharePoint Shared 服務都是如此。 如需詳細資訊,請參閱 規劃 SharePoint 2013 的 Kerberos 驗證

  1. 設定 C2WTS 服務網域帳戶。

    最佳做法:C2WTS 應以自己的網域識別身分執行。

    • 建立 Active Directory 帳戶,並在 SharePoint 伺服器中,將此帳戶註冊為受控帳戶。

    • 透過 SharePoint 管理中心 > [安全性] > [設定服務帳戶] > [Windows 服務] - [對 Windows Token 服務的宣告],將 C2WTS 服務設定為必須使用受控帳戶

    將 C2WTS 服務帳戶新增到要使用 C2WTS 之每部伺服器上的本機系統管理員群組。 在報表檢視器 Web 組件,這些伺服器會是 Web 前端 (WFE) 伺服器。 在 SharePoint 整合模式,這些伺服器會是 Reporting Services 服務執行所在的應用程式伺服器。

    • 在 [本機原則] > [使用者權限指派] 下的本機安全性原則中,授與 C2WTS 帳戶下列權限:
      • 作為作業系統的一部分
      • 在驗證後模擬用戶端
      • 以服務登入
  2. 設定 C2WTS 服務帳戶的委派。

    帳戶需要具有通訊協定轉換的限制委派,以及要委派給所需通訊服務 (即 SQL Server 資料庫引擎、SQL Server Analysis Services) 的權限。 若要設定委派,您可以使用 [Active Directory 使用者和電腦] 嵌入式管理單元,且需要成為網域的系統管理員。

    重要

    在 [委派] 索引標籤上,您為 C2WTS 服務帳戶所設定的設定都需要符合 未來使用的主要服務帳戶。 在報表檢視器 Web 組件,這會是 SharePoint Web 應用程式的服務帳戶。 在 SharePoint 整合模式,這會是 Reporting Services 的服務帳戶。

    例如,如果您允許將 C2WTS 服務帳戶委派給 SQL Service,則需要對 SharePoint 整合模式的 Reporting Services 服務帳戶執行相同的動作。

    • 以滑鼠右鍵按一下各服務帳戶,以開啟屬性對話方塊。 選取對話方塊中的 [委派] 索引標籤。

      僅當物件指派有服務主體名稱 (SPN) 時,才會顯示 [委派] 索引標籤。 C2WTS 不需要 C2WTS 帳戶的 SPN,但若無 SPN,即不會顯示 [委派] 索引標籤。 另一種設定限制委派的方法是使用 ADSIEdit這類的公用程式。

    • 這些主要組態選項位於 [委派] 索引標籤上:

      • 選取 [信任這個使用者,但只委派指定的服務]
      • 選取 [使用任何驗證通訊協定]
    • 選取 [加入] ,加入要委派的目標服務。

    • 選取 [使用者或電腦...]*,然後輸入裝載服務的帳戶。 例如,如果使用名為 sqlservice 的帳戶來執行 SQL Server,請輸入 sqlservice。 對於報表檢視器 Web 組件,這帳戶會是 Reporting Services (原生模式) 執行個體的服務帳戶。

    • 選取服務清單。 此選擇會顯示適用於該帳戶的 SPN。 如果您看不到針對該帳戶所列出的服務,則它可能遺失或放置在不同的帳戶上。 您可以使用 SetSPN 公用程式來調整 SPN。 在報表檢視器 Web 組件報表檢視器 Web 組件設定中,會顯示 HTTP SPN 設定。

    • 選取 [確定] 以離開對話方塊。

  3. 設定 C2WTS AllowedCallers

    C2WTShost.exe.config 設定檔必須明確列出 C2WTS 的 'callers' 識別。除非兩者設定一致,否則 C2WTS 將不接受系統中所有經過驗證之使用者的要求。 本例中的 'caller' 是 WSS_WPG Windows 群組。 C2WTShost.exe.confi 檔案儲存在下列位置:

    在 SharePoint 管理中心內變更 C2WTS 服務的服務帳戶時,就會將該帳戶加入 WSS_WPG 群組中。

    \Program Files\Windows Identity Foundation\v3.5\c2WTShost.exe.config

    下列範例顯示設定檔的外觀:

    <configuration>
      <windowsTokenService>
        <!--  
            By default no callers are allowed to use the Windows Identity Foundation Claims To NT Token Service.  
            Add the identities you wish to allow below.  
          -->
        <allowedCallers>
          <clear/>
          <add value="WSS_WPG" />
        </allowedCallers>
      </windowsTokenService>
    </configuration>
    
  4. 從 SharePoint 管理中心的 Manage Services on Server (伺服器上的受控服務 頁面,啟動對 Windows Token 服務的宣告 (若已啟動,請先停止再啟動)。 您應在執行動作的伺服器上啟動該服務。 例如您有一部 WFE 伺服器及另一部執行 SQL Server Reporting Services 共用服務的應用程式伺服器,就只需在應用程式伺服器上啟動 C2WTS。 如果在執行的是報表檢視器 Web 組件,WFE 伺服器上只需要 C2WTS。

更多問題嗎? 嘗試詢問 Reporting Services 論壇