Reporting Services 安全性延伸模組可啟用使用者或群組的驗證和授權;也就是說,它可讓不同的使用者登入報表伺服器,並根據其身分識別執行不同的工作或作業。 根據預設,Reporting Services 會使用 Windows 型驗證延伸模組,其會使用 Windows 帳戶通訊協議來驗證宣告在系統上擁有帳戶的使用者身分識別。 Reporting Services 會使用角色型安全性系統來授權使用者。 Reporting Services 角色型安全性模型類似於其他技術的角色型安全性模型。
由於安全性延伸模組是以開放且可延伸的 API 為基礎,因此您可以在 Reporting Services 中建立新的驗證和授權延伸模組。 以下是使用表單型驗證和授權的典型安全性延伸模組實作範例:
如下圖所示,驗證和授權的發生方式如下:
用戶嘗試使用 URL 存取報表管理員,並重新導向至收集用戶端應用程式使用者認證的表單。
用戶會將認證提交至表單。
用戶認證會透過 LogonUser 方法提交至 Reporting Services Web 服務。
Web 服務會呼叫客戶提供的安全性延伸模組,並確認使用者名稱和密碼存在於自定義安全性授權單位中。
驗證之後,Web 服務會建立驗證票證(稱為「Cookie」)、管理票證,並驗證用戶對於報表管理員首頁的角色。
Web 服務會將 Cookie 傳回瀏覽器,並在報表管理員中顯示適當的使用者介面。
用戶通過驗證之後,瀏覽器會在 HTTP 標頭中傳輸 Cookie 時,向報表管理員提出要求。 這些要求會回應報表管理員應用程式內的用戶動作。
Cookie 會在 HTTP 標頭中傳輸至 Web 服務,以及要求的用戶作業。
Cookie 會經過驗證,而且如果它是有效的,報表伺服器會從報表伺服器資料庫傳回與所要求作業相關的安全性描述元和其他資訊。
如果 Cookie 有效,報表伺服器會呼叫安全性延伸模組,以檢查使用者是否已獲得執行特定作業的授權。
如果用戶獲得授權,報表伺服器會執行要求的作業,並將控制權傳回給呼叫端。
驗證用戶之後,報表伺服器的 URL 存取會使用相同的 Cookie。 Cookie 會在 HTTP 標頭中傳輸。
用戶會繼續要求報表伺服器上的作業,直到會話結束為止。
何時實作安全性延伸模組
建議您盡可能使用 Windows 驗證。 不過,在下列兩種情況下,Reporting Services 的自定義驗證和授權可能適用:
您有無法使用 Windows 帳戶的因特網或外部網路應用程式。
您有自定義定義的使用者和角色,且需要在 Reporting Services 中提供相符的授權配置。