規劃外部網路或網際網路部署
雖然 SQL Server Reporting Services 並不是明確針對外部網路或網際網路報表部署狀況設計的,您仍可以將 Reporting Services 成功地放置在連接網際網路的 Web 伺服器上,以對外散播一般資訊,或散播私密的公司資料給已授權和驗證的使用者。
[!附註]
在連接網際網路的 Web 伺服器上部署 Reporting Services 需要進行謹慎的評估。網路和安全性軟體、網路拓撲以及網域組態都會導入變數,所以報表伺服器的部署,並沒有標準的步驟。評估供網際網路存取的報表伺服器時,請確定測試狀況包含您要使用的所有功能,並一律使用安全的連接來進行測試。
外部網路或網際網路架構圖表
下圖針對外部網路或網際網路部署提供最佳作法部署組態的範例。
關於圖表的注意事項重點包括:
在完整部署中有三個防火牆提供深入的防禦。本主題會提供設定防火牆的建議。
進入點為包含 ReportViewer 控制項的自訂網際網路應用程式。此控制項主控可在第二個防火牆後的報表伺服器上執行的報表。
報表會使用唯讀資料來源中,特別針對報告用途建立的資料。資料來源包含從其他來源複製,但是沒有您絕不會在報表中使用之敏感性資料值的資料。
公司資料伺服器包含您透過嚴格權限和嚴格防火牆設定保護的敏感性資料。您也應該考慮將報表伺服器資料庫放在此安全性區域中,讓需要讀寫存取權的所有資料庫伺服器可以使用第三個伺服器所提供的保護。
一般指導方針
下列清單在本主題中描述的拓撲中,提供部署 Reporting Services 的廣泛指導方針。此清單會當做規劃您自己的部署計畫起點提供。您網路拓撲的特定組態可能需要您執行此清單中未描述的其他步驟。
您最好在測試環境下部署組態,以確認您了解所有需求、設定、步驟,以及這些步驟的最佳順序:
安裝防火牆並識別伺服器、帳戶和權限。
建立或取得用於 SSL 連接的伺服器憑證。在主控伺服器元件的所有電腦上安裝憑證。如果您安裝具有萬用字元設定的憑證,您可以將相同的憑證用於多個 URL。
設計與實作複製公司資料的方式以區隔報表資料來源。您可以使用的技術包括複寫、SQL Server Integration Services 或協力廠商產品。
在僅限檔案的安裝模式下安裝 Reporting Services,讓您可以利用適用於外部存取的設定進行設定。在 SQL Server 安裝精靈中,這是 [安裝但不設定] 選項。
安裝完成後,執行 Reporting Services 組態工具以設定報表伺服器:
請確認服務是在最小權限的帳戶下執行。請避免使用本機系統。如果您選取 [本機系統],變更帳戶以使用 NetworkService 或網域使用者帳戶。
定義報表伺服器 URL 並選擇性地定義報表管理員 URL:
您應該建立多個 URL 以便透過外部使用者所使用的完整網域名稱 (FQDN),以及使用網路名稱的不同 URL 支援存取權。如果您的網際網路連接停用或離線,使用兩個不同的 URL 會讓您連接到報表伺服器。
您應該為您定義的 FQDN URL 選取 SSL 憑證。
建立報表伺服器資料庫。如果 SQL Server 執行個體是在不同的網域,而且未啟用 Kerberos 5.0,則針對報表伺服器資料庫連接,請使用 SQL Server 驗證。 使用 SSL 或 IPSec,保護報表伺服器電腦和 SQL Server Database Engine 執行個體之間的連接。
建立與部署自訂驗證延伸模組。如果您使用的是當做 ISAPI 篩選器實作的單一登入技術,您必須使用 ISA 伺服器支援 ISAPI 篩選器。Reporting Services 中的 HTTP 接聽程式不支援 ISAPI 篩選。
設定使用自訂驗證延伸模組之安全性原則的角色指派,然後將其對應到傳遞權限到報表伺服器作業的角色。
建立與部署使用 ReportViewer Web 伺服器控制項的網際網路前端應用程式。
將報表及其他內容類型發行到報表伺服器。
設定防火牆設定。確認防火牆設定允許針對下游電腦和應用程式進行最小存取。
防火牆組態
報表伺服器應用程式的預設 URL 會假設通訊埠 80 已啟用,而且可用於報表伺服器。如果您使用的是「Windows 防火牆」,您必須開放通訊埠 80 或可用於報表伺服器 HTTP 要求的其他通訊埠。如果您使用不同的通訊埠,請務必在報表伺服器 URL 中指定該通訊埠。如需詳細資訊,請參閱<如何:設定供報表伺服器存取的防火牆>。如需有關預設 Windows 防火牆設定的詳細資訊以及影響 Database Engine、Analysis Services、Reporting Services 和 Integration Services 之 TCP 通訊埠的描述,請參閱<將 Windows 防火牆設定成允許 SQL Server 存取>。
網際網路應用程式中的 ReportViewer Web 伺服器控制項
若要在網際網路應用程式中部署報表,您可以將 ReportViewer Web 伺服器控制項內嵌在您建立及部署之供網際網路存取的自訂應用程式中。ReportViewer Web 伺服器控制項包含在 Visual Studio 2005 和更新版本中,並可隨同您的應用程式自由散發。您可以設定此控制項,以顯示在報表伺服器上執行的報表。應用程式與報表伺服器之間的連接,是由控制項透過 Web 服務程式設計介面來處理。所有的驗證和授權都是由應用程式處理,透過單一、使用者信任連接來連接到報表伺服器。
如需詳細資訊,請參閱<Visual Studio 2010 中的 Reporting Services 和 ReportViewer 控制項>。
當做網際網路或外部網路 Web 前端的報表管理員
報表管理員不是設計為網際網路應用程式,但如果您無法建立自訂網際網路應用程式,您可以使用報表管理員,透過網際網路連接檢視報表。下列建議當做部署的最佳作法建議提供:
請考慮在應用程式伺服器上,將報表管理員安裝成個別的執行個體。報表管理員會在報表伺服器服務中執行。因此,若要安裝報表管理員,您必須安裝 Reporting Services,然後關閉 Web 服務以及服務中的排程與傳遞功能。為獲得最佳效果,請使用僅限檔案安裝模式,在供網際網路存取的 Web 伺服器上,安裝 Reporting Services。在 SQL Server 安裝精靈中,這是 [安裝但不設定] 選項。
建立與部署自訂安全性延伸模組以支援表單驗證或單一登入技術。
設定最小權限的報表管理員。瀏覽器角色和系統使用者角色就足以檢視報表。
若要將報表管理員指向個別電腦上執行的不同報表伺服器執行個體,您必須設定報表管理員 URL,然後修改 RSReportServer.config 檔案中的 <ReportServerVirtualDirectory> 和 <ReportServerUrl> 設定,即可將報表管理員指向報表伺服器執行個體。
在您要連接的目標報表伺服器上,關閉您不使用的功能。這些範例包括「我的報表」、訂閱與傳遞、報表產生器以及用戶端列印。
設定 Web.config 檔案中的 Proxy 設定
如果您要使用報表管理員當做網際網路部署的前端應用程式,而且報表伺服器也安裝在相同的電腦上,您必須指定 Web.config 設定,讓報表管理員在將要求傳送到安裝在相同電腦上的本機報表伺服器時,略過 Proxy 伺服器。
此 Web.config 設定為 System.NET defaultProxy 網路設定。依預設,在報表管理員的 Web.config 檔案中,defaultProxy 是停用的。當報表管理員和報表伺服器部署在相同電腦上時,建議採用此組態。
如果您是從舊版 Reporting Services 升級,報表管理員 Web.config 檔案就不會包含 defaultProxy 組態設定。您可以在同時執行報表管理員和報表伺服器的電腦上,加入和設定 defaultProxy 設定,以於安裝時略過 Proxy 伺服器。請將下列的組態設定複製到報表管理員 Web.config 檔案中:
<configuration>
...
<system.net>
<defaultProxy enabled="false" />
</system.net>
</configuration>
如需有關這些設定的詳細資訊,請參閱《Microsoft .NET Framework 開發人員指南》中的「設定網際網路應用程式」和「defaultProxy 元素 (網路設定)」。
適用於外部網路與網際網路部署的驗證考量
若要在支援從預先定義之 Microsoft Active Directory 帳戶進行連接的外部網路狀況中部署報表伺服器,您可以使用預設的 Windows 驗證安全性延伸模組。計畫設定安全通訊端層 (SSL) 連接和基本驗證的伺服器。您必須使用 Reporting Services 組態工具,將現有的憑證對應到報表伺服器 URL。您可以修改組態檔以指定驗證類型。
若要在支援單一登入技術,或以表單為基礎的驗證模型 (在資料庫中儲存使用者識別資訊) 的外部網路狀況中,部署報表伺服器,您必須建立自訂驗證延伸模組,以取代預設的 Windows 驗證安全性延伸模組。通常在您向公眾開放報表伺服器,但是只希望通過驗證的使用者才能檢視內容時,會使用以表單為基礎的驗證。依預設,SQL Server Reporting Services 並不提供以表單為基礎的驗證模組。如需有關如何建立驗證模組的詳細資訊,請參閱《SQL Server 線上叢書》中的<實作安全性延伸模組>。
確認網際網路部署
若要確認您的報表伺服器連接能夠存取,您應該輸入 http: (或 https:)//<your-web-server-fully-qualified-domain-name>/reportserver (其中 /reportserver 是報表伺服器虛擬目錄的預設名稱),就能透過網際網路連接檢視報表伺服器資料夾命名空間。