含有 Reporting Services 的驗證擴充保護
「擴充保護」是 MicrosoftWindows 作業系統最新版本的一組增強功能。 擴充保護會增強認證與驗證受到應用程式保護的方式。 此功能本身並不會針對認證轉送之類的特定攻擊直接提供保護,但是它會為 Reporting Services 之類的應用程式提供基礎結構,以增強驗證擴充保護。
屬於擴充保護一部分的主要驗證增強功能為服務繫結與通道繫結。 通道繫結使用通道繫結 Token (CBT) 驗證兩點端點之間建立的通道是否未受到危害。 服務繫結使用服務主要名稱 (SPN) 驗證預期的驗證 Token 目的地。 如需有關擴充保護的詳細背景資訊,請參閱<具有擴充保護的整合式 Windows 驗證>。
SQL Server 2012 Reporting Services 會支援並強制執行已在作業系統中啟用,且在 Reporting Services 中設定的擴充保護。 根據預設,Reporting Services 會接受指定交涉或 NTLM 驗證的要求,因此可以在作業系統與 Reporting Services 擴充保護功能中獲得擴充保護支援。
![]() |
---|
Windows 預設不會啟用 [擴充保護]。 如需有關如何在 Windows 中啟用 [擴充保護] 的詳細資訊,請參閱<驗證擴充保護>。 作業系統與用戶端驗證堆疊必須同時支援擴充保護,驗證才會成功。 對於舊版作業系統,您可能需要針對完整具備擴充保護的電腦安裝多個更新。 如需有關最近開發之擴充保護的詳細資訊,請參閱<擴充保護的更新資訊>。 |
Reporting Services 擴充保護概觀
SQL Server 2012 Reporting Services 支援並強制執行已在作業系統中啟用的擴充保護。如果作業系統不支援擴充保護,或者尚未啟用作業系統中的功能,Reporting Services 擴充保護功能將會無法驗證。Reporting Services 擴充保護也需要 SSL 憑證。 如需詳細資訊,請參閱<在原生模式報表伺服器上設定 SSL 連接>
![]() |
---|
Reporting Services 預設不會啟用 [擴充保護]。 修改 rsreportserver.config 組態檔或使用 WMI API 更新組態檔,即可啟用該功能。 SQL Server 2012 Reporting Services 無法提供使用者介面修改或檢視擴充保護設定。 如需詳細資訊,請參閱本主題中的<組態設定>一節。 |
因為擴充保護設定變更或進行之設定錯誤所造成的常見問題,不會以明顯的錯誤訊息或對話方塊視窗公開。 與擴充保護組態和相容性相關的問題會導致驗證失敗,並將錯誤記錄在 Reporting Services 追蹤記錄中。
![]() |
---|
某些資料存取技術可能不支援擴充保護。 資料存取技術可用於連接 SQL Server 資料來源與 Reporting Services 目錄資料庫。 無法支援擴充保護的資料存取技術會以下列方式對 Reporting Services 造成影響:
資料存取技術的文件應具有支援擴充保護的資訊。 |
升級
將 Reporting Services 伺服器升級至 SQL Server 2012 時,會將具有預設值的組態設定加入至 rsreportserver.config 檔。 如果這些設定已經存在,SQL Server 2012 安裝會將它們保留在 rsreportserver.config 檔中。
當組態設定加入至 rsreportserver.config 組態檔時,預設行為是讓 Reporting Services 擴充保護功能關閉,因此您必須按照本主題中的描述啟用該功能。如需詳細資訊,請參閱本主題中的組態設定一節。
RSWindowsExtendedProtectionLevel 設定的預設值為 Off。
RSWindowsExtendedProtectionScenario 設定的預設值為 Proxy。
SQL Server 2012 Upgrade Advisor 不會驗證作業系統或目前安裝的 Reporting Services 是否已啟用擴充保護支援。
Reporting Services 擴充保護不涵蓋的功能
Reporting Services 擴充保護功能不支援下列功能區與案例:
Reporting Services 自訂安全性延伸模組的作者必須將擴充保護的支援加入其自訂安全性延伸模組。
Reporting Services 安裝所加入或使用的協力廠商元件必須由協力廠商更新,才能支援擴充保護。 如需詳細資訊,請連絡協力廠商。
部署案例與建議
下列案例說明不同的部署與拓撲,以及使用 Reporting Services 擴充保護來保護其安全的建議組態。
直接
此案例描述直接連接至報表伺服器,例如內部網路環境。
案例 |
案例圖表 |
如何保護安全 |
---|---|---|
直接 SSL 通訊。 報表伺服器將會強制執行用戶端到報表伺服器的通道繫結。 |
![]() 1) 用戶端應用程式 2) 報表伺服器 |
將 RSWindowsExtendedProtectionLevel 設定為 Allow 或 Require。 將 RSWindowsExtendedProtectionScenario 設定為 Direct。 |
直接 HTTP 通訊。 報表伺服器將會強制執行用戶端到報表伺服器的服務繫結。 |
![]() 1) 用戶端應用程式 2) 報表伺服器 |
將 RSWindowsExtendedProtectionLevel 設定為 Allow 或 Require。 將 RSWindowsExtendedProtectionScenario 設定為 Any。 |
Proxy 與網路負載平衡
用戶端應用程式所連接的裝置或軟體會執行 SSL 並通過伺服器的認證以進行驗證,例如外部網路、網際網路或安全的內部網路。 用戶端連接至 Proxy 或所有用戶端都使用 Proxy。
這個情況與您使用網路負載平衡 (NLB) 裝置相同。
案例 |
案例圖表 |
如何保護安全 |
---|---|---|
HTTP 通訊。 報表伺服器將會強制執行用戶端到報表伺服器的服務繫結。 |
![]() 1) 用戶端應用程式 2) 報表伺服器 3) Proxy |
將 RSWindowsExtendedProtectionLevel 設定為 Allow 或 Require。 將 RSWindowsExtendedProtectionScenario 設定為 Any。
|
HTTP 通訊。 報表伺服器將會強制執行用戶端到 Proxy 的通道繫結與用戶端到報表伺服器的服務繫結。 |
![]() 1) 用戶端應用程式 2) 報表伺服器 3) Proxy |
RSWindowsExtendedProtectionLevel 到 Allow 或 Require。 將 RSWindowsExtendedProtectionScenario 設定為 Proxy。 |
透過安全 Proxy 進行的間接 HTTPS 通訊。 報表伺服器將會強制執行用戶端到 Proxy 的通道繫結與用戶端到報表伺服器的服務繫結。 |
![]() 1) 用戶端應用程式 2) 報表伺服器 3) Proxy |
RSWindowsExtendedProtectionLevel 到 Allow 或 Require。 將 RSWindowsExtendedProtectionScenario 設定為 Proxy。 |
閘道
此案例描述連接至執行 SSL 並驗證使用者之裝置或軟體的用戶端應用程式。 接著,裝置或軟體會模擬使用者內容或不同的使用者內容,之後才對報表伺服器發出要求。
案例 |
案例圖表 |
如何保護安全 |
---|---|---|
間接 HTTP 通訊。 閘道將會強制執行用戶端到閘道的通道繫結。 此處有閘道到報表伺服器的服務繫結。 |
![]() 1) 用戶端應用程式 2) 報表伺服器 3) 閘道裝置 |
將 RSWindowsExtendedProtectionLevel 設定為 Allow 或 Require。 將 RSWindowsExtendedProtectionScenario 設定為 Any。
|
透過安全閘道進行的間接 HTTPS 通訊。 閘道將會強制執行用戶端到閘道的通道繫結,而且報表伺服器將會強制執行閘道到報表伺服器的通道繫結。 |
![]() 1) 用戶端應用程式 2) 報表伺服器 3) 閘道裝置 |
將 RSWindowsExtendedProtectionLevel 設定為 Allow 或 Require。 將 RSWindowsExtendedProtectionScenario 設定為 Direct。
|
合併
此案例描述用戶端連接 Proxy 的外部網路或網際網路環境。 這是合併用戶端連接報表伺服器的內部網路環境。
案例 |
案例圖表 |
如何保護安全 |
---|---|---|
在用戶端到 Proxy 或用戶端到報表伺服器連接沒有 SSL 的情況下,從用戶端到報表伺服器服務的間接和直接存取。 |
1) 用戶端應用程式 2) 報表伺服器 3) Proxy 4) 用戶端應用程式 |
將 RSWindowsExtendedProtectionLevel 設定為 Allow 或 Require。 將 RSWindowsExtendedProtectionScenario 設定為 Any。 |
在用戶端建立與 Proxy 或報表伺服器的 SSL 連接時,從用戶端到報表伺服器服務的間接和直接存取。 |
![]() 1) 用戶端應用程式 2) 報表伺服器 3) Proxy 4) 用戶端應用程式 |
將 RSWindowsExtendedProtectionLevel 設定為 Allow 或 Require。 將 RSWindowsExtendedProtectionScenario 設定為 Proxy。 |
設定 Reporting Services 擴充保護
rsreportserver.config 檔案包含的組態值可以控制 Reporting Services 擴充保護的行為。
如需有關使用與編輯 rsreportserver.config 檔案的詳細資訊,請參閱<RSReportServer 組態檔>。 擴充保護設定也可以透過 WMI API 變更與檢查。 如需詳細資訊,請參閱<SetExtendedProtectionSettings 方法 (WMI MSReportServer_ConfigurationSetting)>。
當組態設定的驗證失敗時,報表伺服器上會停用驗證類型 RSWindowsNTLM、RSWindowsKerberos 和 RSWindowsNegotiate。
Reporting Services 擴充保護的組態設定
下表提供的資訊有關 rsreportserver.config 中顯示之擴充保護的組態設定。
設定 |
說明 |
---|---|
RSWindowsExtendedProtectionLevel |
指定擴充保護的強制執行程度。 有效值是 Off、Allow 和 Require。 預設值為 Off。 值為 Off 時,不會指定通道繫結或服務繫結驗證。 值為 Allow 時,則支援擴充保護但並不需要它。 Allow 這個值會指定:
Require 這個值會指定:
|
RsWindowsExtendedProtectionScenario |
指定什麼擴充保護的形式要經過驗證:通道繫結、服務繫結,或兩者。 有效值是 Any、Proxy 和 Direct。 預設值為 Proxy。 Any 這個值會指定:
Proxy 這個值會指定:
Direct 這個值會指定:
|
rsreportserver.config 組態檔中的範例項目:
<Authentication>
<RSWindowsExtendedProtectionLevel>Allow</RSWindowsExtendedProtectionLevel>
<RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionLevel>
</Authentication>
服務繫結與隨附的 SPN
服務繫結使用服務主要名稱或 SPN 驗證預期的驗證 Token 目的地。 Reporting Services 使用現有的 URL 保留資訊建立視為有效之 SPN 的清單。 使用 URL 保留資訊同時驗證保留的 SPN 和 URL 可讓系統管理員從單一位置同時進行管理。
當報表伺服器啟動時、擴充保護的組態設定變更時,或應用程式定義域循環使用時,會更新有效 SPN 的清單。
有效的 SPN 清單專屬於每個應用程式。 例如,報表管理員和報表伺服器會各自計算一份不同的有效 SPN 清單。
針對應用程式計算的有效 SPN 清單取決於下列因素:
每個保留的 URL。
從 Reporting Services 服務帳戶之網域控制站擷取的每個 SPN。
如果保留的 URL 包括萬用字元 ('*' 或 '+'),則報表伺服器將會從主機集合加入每個項目。
主機集合來源。
下表列出主機集合的潛在來源。
來源類型 |
說明 |
---|---|
ComputerNameDnsDomain |
指派給本機電腦之 DNS 網域的名稱。 如果本機電腦是叢集中的一個節點,則會使用叢集虛擬伺服器的 DNS 網域名稱。 |
ComputerNameDnsFullyQualified |
唯一識別本機電腦的完整 DNS 名稱。 此名稱結合 DNS 主機名稱與 DNS 網域名稱,其格式為 HostName.DomainName。 如果本機電腦是叢集中的一個節點,則會使用叢集虛擬伺服器的完整 DNS 名稱。 |
ComputerNameDnsHostname |
本機電腦的 DNS 主機名稱。 如果本機電腦是叢集中的一個節點,則會使用叢集虛擬伺服器的 DNS 主機名稱。 |
ComputerNameNetBIOS |
本機電腦的 NetBIOS 名稱。 如果本機電腦是叢集中的一個節點,則會使用叢集虛擬伺服器的 NetBIOS 名稱。 |
ComputerNamePhysicalDnsDomain |
指派給本機電腦之 DNS 網域的名稱。 如果本機電腦是叢集中的一個節點,則會使用本機電腦的 DNS 網域名稱,而非叢集虛擬伺服器的名稱。 |
ComputerNamePhysicalDnsFullyQualified |
唯一識別電腦的完整 DNS 名稱。 如果本機電腦是叢集中的一個節點,則會使用本機電腦的完整 DNS 名稱,而非叢集虛擬伺服器的名稱。 完整的 DNS 名稱結合 DNS 主機名稱與 DNS 網域名稱,其格式為 HostName.DomainName。 |
ComputerNamePhysicalDnsHostname |
本機電腦的 DNS 主機名稱。 如果本機電腦是叢集中的一個節點,則會使用本機電腦的 DNS 主機名稱,而非叢集虛擬伺服器的名稱。 |
ComputerNamePhysicalNetBIOS |
本機電腦的 NetBIOS 名稱。 如果本機電腦是叢集中的一個節點,則會使用本機電腦的 NetBIOS 名稱,而非叢集虛擬伺服器的名稱。 |
由於系統已加入 SPN,因此會在追蹤記錄中加入一個項目,如下所示:
rshost!rshost!10a8!01/07/2010-19:29:38:: i INFO: SPN Whitelist Added <ComputerNamePhysicalNetBIOS> - <theservername>.
rshost!rshost!10a8!01/07/2010-19:29:38:: i INFO: SPN Whitelist Added <ComputerNamePhysicalDnsHostname> - <theservername>.
如需詳細資訊,請參閱<為報表伺服器註冊服務主要名稱 (SPN)>和<關於 URL 保留項目和註冊>。
請參閱
參考
SetExtendedProtectionSettings 方法 (WMI MSReportServer_ConfigurationSetting)