共用方式為


SharePoint 整合模式的 Reporting Services 安全性概觀

當您將報表伺服器設定為以 SharePoint 整合模式執行時,報表伺服器會使用 SharePoint Web 應用程式中所定義的驗證提供者和權限來控制對報表伺服器項目和作業的存取。

用於存取項目和作業的權限是透過 SharePoint 安全性政策所授與,這些政策會將使用者或群組帳戶對應至權限等級 (相對於項目)。就概念上而言,這與在原生模式的報表伺服器部署中使用角色指派的方法一樣,在這種模式下指派角色時,會將使用者或群組帳戶對應至一組允許的工作 (相對於項目)。就如同在大多數以角色為基礎的授權模型中常見的情況,SharePoint 安全性會提供權限繼承功能,以降低在維護大量政策時的複雜性和負擔。

如果要將報表伺服器內容類型部署到 SharePoint 網站,您必須知道下列資訊:

在設定權限之前,必須先將每個伺服器設定為啟用整合功能。如需詳細資訊,請參閱<針對 SharePoint 3.0 整合設定 Reporting Services>。

SharePoint 技術版中的驗證提供者

SharePoint Web 應用程式可以使用 Windows 驗證或表單驗證。報表伺服器可以處理這兩種形式的要求。您可以透過下列組合來設定驗證:

  • 使用整合式安全性的 Windows 驗證 (啟用 Kerberos)

  • 不具模擬或委派的 Windows 驗證

  • 表單驗證

[!附註]

Reporting Services 和 SharePoint 產品及技術都支援表單驗證。實作方式則依每個產品群組而異,且彼此不相容。以 SharePoint 整合模式所執行的報表伺服器並不支援 Reporting Services 自訂驗證延伸模組。

下表將摘要列出每個驗證提供者的優點和缺點:

優點

缺點

Windows 驗證 (啟用 Kerberos 驗證)

適用於單一伺服器和多伺服器部署狀況。

支援使用外部資料來源的 Windows 整合式認證。

無法在多伺服器部署中使用 NTLM 驗證。

Windows 驗證 (未啟用 Kerberos) 或表單驗證

適用於 Kerberos 和所有非 Kerberos 驗證狀況。

不支援外部資料來源的 Windows 整合式認證。

傳送要求至報表伺服器

報表伺服器項目或作業的所有要求都必須是經過驗證的有效要求。您所使用的驗證提供者會決定該要求的處理方式。

Windows 整合式安全性

如果 SharePoint Web 應用程式已設定為使用 Windows 驗證並且啟用了 Kerberos,則從 SharePoint Web 應用程式到報表伺服器的連接是透過目前 Windows 使用者的模擬或委派認證進行。下列圖表所顯示的連接是在報表伺服器設定為使用 SharePoint 整合,且 SharePoint Web 應用程式使用已啟用 Kerberos 的 Windows 驗證時。

使用 SharePoint 整合模式的連接

  • 連接 1
    使用者使用在使用者登入至網路時所建立的使用者 Token 來存取 SharePoint 網站,該 Token 包含使用者識別和群組成員資格。SharePoint Web 應用程式會驗證使用者,使用者則會要求報表伺服器項目或作業。

  • 連接 2
    SharePoint Web 應用程式會將 Token 和要求傳送至報表伺服器。連接要求是以使用者的 Windows 識別傳送。報表伺服器則會驗證使用者是否具有存取報表伺服器的權限。

  • 連接 3
    如果驗證作業成功,報表伺服器會確認使用者具有存取項目或作業的權限。

    報表伺服器會使用內部的安全性延伸模組來確認使用者權限。報表伺服器會使用延伸模組來呼叫 Windows SharePoint Services 物件模型,以便檢查儲存在 SharePoint 內容資料庫中的權限。您無法設定或管理此安全性延伸模組,它是用於以 SharePoint 整合模式所執行之報表伺服器的內部元件。

    如果使用者具有存取報表或其他項目或作業的權限,就會提供要求的服務。

透過使用 Windows 整合式安全性,就可以排除一般 Windows 認證會在單一連接之後逾期的「雙躍點」問題。這麼做也會擴充在設定報表和模型之資料來源連接時可用的選項集合。如果使用 Windows 使用者識別來連接到報表伺服器,報表伺服器就可以在報表處理期間,使用該識別從外部資料來源擷取資料。這代表當您設定報表上的資料來源屬性時,可以針對資料來源連接選取 [Windows 整合式安全性] 選項。如需詳細資訊,請參閱《SQL Server 線上叢書》中的<指定報表資料來源的認證和連接資訊>。

Windows 或表單驗證以及信任帳戶

如果 SharePoint Web 應用程式已設定使用表單驗證,則報表伺服器的連接就會以預先定義的信任帳戶在網路上傳送 (此帳戶具有模擬報表伺服器上 SharePoint 使用者的權限)。如果 SharePoint Web 應用程式設定為使用 Windows 驗證且未啟用 Kerberos,則會使用相同的方法。下列圖表顯示在使用信任帳戶和 SharePoint 使用者識別時的連接。

信任連接的連接圖表

  • 連接 1
    使用者登入 SharePoint 網站。SharePoint Web 應用程式會驗證使用者。SharePoint Web 應用程式會將使用者識別轉譯為 SharePoint 使用者識別 (SPUser),並以 SPUser 的內容為該使用者建立新的使用者 Token。該 Token 包含使用者識別和群組成員資格。使用者則會要求報表伺服器項目或作業。

  • 連接 2
    SharePoint Web 應用程式在接到對報表伺服器的要求時,就會模擬 SharePoint 使用者識別。所傳送的連接要求是使用信任帳戶來進行。該帳戶是 SharePoint Web 應用程式的處理序識別。

    報表伺服器會驗證連接要求是否來自信任帳戶,方法是將該帳戶與報表伺服器在啟動時從 SharePoint 組態資料庫所擷取的帳戶資訊進行比較。在報表伺服器上,信任帳戶是具有可以模擬 SharePoint Web 應用程式之權限的 Windows 使用者,該帳戶只會用於模擬 SPUser,並不具有存取報表伺服器項目和作業的權限。

  • 連接 3
    如果驗證作業成功,報表伺服器會確認 SPUser 具有存取項目或作業的權限。

    報表伺服器會使用內部安全性延伸模組確認使用者權限,呼叫 Windows SharePoint Services 物件模型以檢查儲存在 SharePoint 內容資料庫中的權限。如果使用者具有存取報表或其他項目或作業的權限,就會提供要求的服務。

帳戶逾期和訂閱處理

當您建立報表的訂閱時,報表伺服器會儲存 SPUser 帳戶資訊,使其能夠確認使用者具有在傳遞時檢視報表的權限。如果 SPUser 已逾期,則訂閱作業會失敗並傳回 rsSharePointError 錯誤。名稱為 TokenTimeout 的伺服陣列屬性會決定 SPUser 可以維持有效狀態時間的長短。

設定管理和服務帳戶來使用獨特的網域使用者帳戶

SharePoint 產品或技術的部署會使用不同的帳戶執行服務及存取前端和後端伺服器。如果您為部署指定網域帳戶,請確認依據最佳作法的建議執行,並指定 SharePoint Web 應用程式專屬的帳戶。請勿將服務帳戶設定在會存取 SharePoint 網站之實際人員的網域使用者帳戶之下執行。如果您使用服務認證來存取 SharePoint 站台,您可能會遇到錯誤。如需有關服務帳戶需求和建議的詳細資訊,請參閱 Windows SharePoint Services 3.0 產品文件集中的<規劃管理帳戶和服務帳戶>。

在向外延展部署中設定驗證提供者的最佳作法

如果您設有 Reporting Services 和 SharePoint 產品或技術的向外延展部署,而且已經針對環境設定不同的驗證提供者,可能會在驗證使用者時遇到問題。例如,如果您的報表環境針對網際網路連接使用表單驗證而針對內部網路連接使用 Windows 驗證,則要求可能會傳送至具有不符合要求驗證類型之驗證提供者的 Web 前端電腦。這可能會導致 Reporting Services 拒絕要求存取,或要求可能會在應用程式集區識別而非提出要求的使用者底下執行。

最佳作法是使用不同的 URL 來存取網際網路和內部網路的內容。或者,您也可以在 Web 前端電腦上設定主機檔案,將供網際網路存取網站的網際網路通訊協定 (IP) 位址對應至網際網路 URL,藉以覆寫網域名稱系統 (DNS) 查閱,讓網際網路 URL 的要求不會由 DNS 傳送至內部網路 URL。

報表伺服器存取 SharePoint 內容資料庫的方式

SharePoint Web 應用程式和報表伺服器都會與個別的資料庫連接以儲存應用程式狀態和其他資料,但是報表伺服器也必須連接到 SharePoint 資料庫,才能儲存和擷取項目、屬性和組態設定。下列圖表顯示與不同資料庫的伺服器連接。

連接圖表

SharePoint Web 應用程式可以使用本機或遠端的資料庫做為內部儲存體。如果 SharePoint 資料庫位於遠端電腦上,則必須使用網域帳戶進行連接。

報表伺服器可以使用本機或遠端的資料庫做為內部儲存體。不論是何種類型,都可以藉由使用下列方式進行資料庫連接:使用網域帳戶、SQL Server 登入或內建帳戶,例如 Network Service 或 Local System。

報表伺服器與 SharePoint 資料庫的連接

在 Reporting Services 中,Web 服務和 Windows 服務都需要存取 SharePoint 資料庫。上述兩種服務的服務帳戶都會以信任使用者的形式在 SharePoint Web 應用程式中執行,而且都會自動被授與存取 SharePoint 資料庫的權限。

連接的管理會從內部進行;當您使用 SharePoint 管理中心將 SharePoint Web 應用程式指向報表伺服器並設定信任帳戶時,就會設定該連接。相對於報表伺服器與其本身資料庫的連接 (此連接可以使用 Reporting Services 組態工具加以設定或修改),您無法明確地設定或管理報表伺服器對 SharePoint 資料庫的連接。

以 SharePoint 整合模式執行報表伺服器,對於在 Reporting Services 中設定服務帳戶的方式會造成條件約束。請在設定服務帳戶時使用下列方針:

  • 如果報表伺服器服務帳戶必須連接到遠端電腦上的 SharePoint 資料庫,請選擇具有網路登入權限的帳戶。

  • 如果報表伺服器和 SharePoint 資料庫位於一部電腦,而 SharePoint Web 應用程式位於遠端電腦上,則請避免使用內建的帳戶 (例如 [本機系統][網路服務])。在遠端電腦上執行 SharePoint 資料庫時,SharePoint Web 應用程式會明確拒絕對定義於該遠端電腦上內建帳戶的資料庫存取。這代表所有以該電腦內建帳戶所執行的服務,都不能連接到 SharePoint 資料庫。

  • 對於將伺服器和資料庫放置於同一電腦或不同電腦上的所有其他拓撲而言,都可以將 Reporting Services 服務帳戶設定為網域帳戶或內建帳戶。

連接至 SharePoint 資料庫時發生錯誤

如果報表伺服器無法存取 SharePoint 資料庫而且有組態錯誤 (例如,如果服務帳戶或密碼無效,或者如果尚未安裝 Windows SharePoint 物件模型的本機執行個體),則會發生 rsServerConfigurationError 錯誤。對於所有其他連接錯誤,則會傳回 rsSharePointError 錯誤以及本機 Windows SharePoint Services 執行個體的其他錯誤資訊。

變更記錄

更新的內容

在「SharePoint 技術版中的驗證提供者」一節中,新增含有驗證提供者優點和缺點的表格。

新增「在向外延展部署中設定驗證提供者的最佳作法」一節。