如何:在 Reporting Services 中設定自訂或表單驗證

Reporting Services 提供可延伸的架構,可以讓您插入自訂或表單型驗證模組。如果部署需求不包含 Windows 整合式安全性或基本驗證,您可能會考慮實作自訂驗證延伸模組。使用自訂驗證最常見的狀況是支援網際網路或外部網路對 Web 應用程式的存取。以自訂的驗證延伸模組取代預設的 Windows 驗證延伸模組時,可讓您進一步控制如何授與外部使用者存取報表伺服器的權限。

實際上,部署自訂驗證延伸模組所需的多個步驟包括複製組件和應用程式檔案、修改組態檔,以及測試。本主題只著重於您在組態檔中所指定的驗證設定。如需您必須遵循之所有步驟的完整逐步解說,請參閱<Security Extension Sample>。

[!附註]

建立自訂驗證延伸模組時,需要自訂的程式碼和 ASP.NET 安全性的專業知識。如果您不想要建立自訂驗證延伸模組,可以使用 Microsoft Active Directory 群組與帳戶,但必須大幅縮減報表伺服器部署的範圍。如需有關自訂驗證的詳細資訊,請參閱<實作安全性延伸模組>。

此外,如果您想要在與 Windows SharePoint Services (WSS) 3.0 或 MicrosoftOffice SharePoint Server (MOSS) 2007 整合的 Reporting Services 環境中,使用表單驗證或自訂驗證延伸模組,必須將 SharePoint 網站設定為使用您選擇的驗證方法。如需有關在 SharePoint 中設定驗證的詳細資訊,請參閱 Microsoft Developer Network (MSDN) 上的驗證範例 (英文)。

警告注意事項警告

表單提供者有責任減輕猛烈的安全性攻擊,在這類攻擊中,惡意使用者會針對端點進行高頻率且重複的呼叫,直到伺服器受到負面影響為止。減輕這類安全性威脅的一個常見方式是由表單提供者實作功能,在發生特定數目的不正確登入嘗試動作之後鎖定帳戶。Windows 整合式安全性會透過網域的鎖定原則來提供鎖定支援。您的網域管理員需要設定網域鎖定原則。但是在使用表單驗證時,表單提供者有責任防禦潛在的威脅。

若要設定報表伺服器使用自訂驗證

  1. 在文字編輯器中開啟 RSReportServer.config。

  2. 尋找 <Authentication>。

  3. 複製下列 XML 結構:

    <Authentication>
          <AuthenticationTypes>
                 <Custom />
          </AuthenticationTypes>
          <EnableAuthPersistence>true</EnableAuthPersistence>
    </Authentication>
    
  4. 將它貼到 <Authentication> 的現有項目上。

    請注意,您無法搭配其他驗證類型使用 Custom。

  5. 儲存檔案。

  6. 開啟報表伺服器的 Web.config 檔。根據預設,它位於 \Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer。

  7. 尋找 authentication mode 並將其設定為 Forms。

    <authentication mode = "Forms" />
    
  8. 尋找 identity impersonate 並將其設定為 False。

    <identity impersonate = "false" />
    
  9. 開啟報表管理員的 Web.config 檔。根據預設,它位於 \Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Serivces\ReportManager。

  10. 尋找 authentication mode 並將其設定為 Forms。

    <authentication mode = "Forms" />
    
  11. 尋找 identity impersonate 並將其設定為 False。

    <identity impersonate = "false" />
    
  12. 將 PassThroughCookies 元素結構加入至組態檔中。如需詳細資訊,請參閱<啟用報表管理員傳遞自訂驗證 Cookie>。

  13. 儲存檔案。

  14. 如果您設定了向外延展部署,請針對部署中的其他報表伺服器重複先前所有的步驟。

  15. 重新啟動報表伺服器,清除目前開啟的任何工作階段。