Reporting Services 针对验证的扩展保护
扩展保护是针对最新版本的 Microsoft Windows 操作系统的一组增强功能。 扩展保护增强了应用程序可用来保护凭据和身份验证的方式。 此功能自身并不直接提供保护机制来防止特定攻击(如凭据转发),但它为诸如 Reporting Services 的应用程序提供了一种基础结构来实施针对验证的扩展保护。
作为扩展保护一部分的主要身份验证增强功能是服务绑定和渠道绑定。 渠道绑定使用渠道绑定标记 (CBT),以验证在两个端点之间建立的渠道不会受到危害。 服务绑定使用服务器主体名称 (SPN) 来验证身份验证标记的预期目的地。 有关扩展保护的详细背景信息,请参阅 Integrated Windows Authentication with Extended Protection(将 Windows 身份验证与扩展保护相集成)。
SQL Server 2012 Reporting Services 支持和实行已在操作系统中启用并在 Reporting Services 中配置的扩展保护。 默认情况下,Reporting Services 接受指定 Negotiate 或 NTLM 身份验证的请求,因此,可能因操作系统中支持扩展保护以及 Reporting Services 扩展保护功能而受益。
重要提示 |
---|
默认情况下,Windows 不启用扩展保护。 有关如何在 Windows 中启用扩展保护的信息,请参阅针对验证的扩展保护。 操作系统和客户端身份验证堆栈必须同时支持扩展保护,身份验证才能成功。 对于较早的操作系统,您可能需要安装多个更新,才能获得完整的支持扩展保护功能的计算机。 有关扩展保护的最新开发动态的信息,请参阅 updated information with Extended Protection(扩展保护的更新信息)。 |
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 升级顾问不验证操作系统或 Reporting Services 的当前安装是否启用了扩展保护支持。
Reporting Services 扩展保护不涵盖的内容
Reporting Services 扩展保护功能不支持以下功能区和方案:
Reporting Services 自定义安全扩展插件的作者必须将对于扩展保护的支持添加到其自定义安全扩展插件。
添加到 Reporting Services 安装或它使用的第三方组件必须由第三方供应商进行更新以支持扩展保护功能。 有关详细信息,请与第三方供应商联系。
部署方案和建议
以下各方案说明各种不同部署和拓扑,以及使用 Reporting Services 扩展保护来对它们进行保护的建议配置。
直接
此方案介绍直接连接到报表服务器(例如 Intranet 环境)。
方案 |
方案图 |
保护方式 |
---|---|---|
直接 SSL 通信。 报表服务器将实行“客户端到报表服务器”渠道绑定。 |
1) 客户端应用程序 2) 报表服务器 |
将 RSWindowsExtendedProtectionLevel 设置为 Allow 或 Require。 将 RSWindowsExtendedProtectionScenario 设置为 Direct。 |
直接 HTTP 通信。 报表服务器将实行“客户端到报表服务器”服务绑定。 |
1) 客户端应用程序 2) 报表服务器 |
将 RSWindowsExtendedProtectionLevel 设置为 Allow 或 Require。 将 RSWindowsExtendedProtectionScenario 设置为 Any。 |
代理和网络负载平衡
客户端应用程序连接到执行 SSL 并向服务器传递凭据以进行身份验证的设备或软件,例如,Extranet、Internet 或安全 Intranet。 客户端连接到代理,或者所有客户端都使用代理。
当您使用网络负载平衡 (NLB) 设备时,情形是相同的。
方案 |
方案图 |
保护方式 |
---|---|---|
HTTP 通信。 报表服务器将实行“客户端到报表服务器”服务绑定。 |
1) 客户端应用程序 2) 报表服务器 3) 代理 |
将 RSWindowsExtendedProtectionLevel 设置为 Allow 或 Require。 将 RSWindowsExtendedProtectionScenario 设置为 Any。
|
HTTP 通信。 报表服务器将实行“客户端到代理”渠道绑定和“客户端到报表服务器”服务绑定。 |
1) 客户端应用程序 2) 报表服务器 3) 代理 |
将 RSWindowsExtendedProtectionLevel 设置为 Allow 或 Require。 将 RSWindowsExtendedProtectionScenario 设置为 Proxy。 |
与安全代理之间的间接 HTTPS 通信。 报表服务器将实行“客户端到代理”渠道绑定和“客户端到报表服务器”服务绑定。 |
1) 客户端应用程序 2) 报表服务器 3) 代理 |
将 RSWindowsExtendedProtectionLevel 设置为 Allow 或 Require。 将 RSWindowsExtendedProtectionScenario 设置为 Proxy。 |
网关
此方案介绍连接到执行 SSL 和对用户进行身份验证的设备或软件的客户端应用程序。 接着,此设备或软件模拟用户上下文或其他用户上下文,之后对报表服务器发出请求。
方案 |
方案图 |
保护方式 |
---|---|---|
间接 HTTP 通信。 网关将实行“客户端到网关”渠道绑定。 此时具有“网关到报表服务器”服务绑定。 |
1) 客户端应用程序 2) 报表服务器 3) 网关设备 |
将 RSWindowsExtendedProtectionLevel 设置为 Allow 或 Require。 将 RSWindowsExtendedProtectionScenario 设置为 Any。
|
与安全网关之间的间接 HTTPS 通信。 网关将实行“客户端到网关”渠道绑定,报表服务器将实行“网关到报表服务器”渠道绑定。 |
1) 客户端应用程序 2) 报表服务器 3) 网关设备 |
将 RSWindowsExtendedProtectionLevel 设置为 Allow 或 Require。 将 RSWindowsExtendedProtectionScenario 设置为 Direct。
|
组合
此方案介绍客户端连接到代理的 Extranet 或 Internet 环境。 这种环境与客户端在其中连接到报表服务器的 Intranet 环境相结合。
方案 |
方案图 |
保护方式 |
---|---|---|
从客户端间接和直接访问报表服务器服务,在客户端到代理或客户端到报表服务器连接中均没有 SSL。 |
1) 客户端应用程序 2) 报表服务器 3) 代理 4) 客户端应用程序 |
将 RSWindowsExtendedProtectionLevel 设置为 Allow 或 Require。 将 RSWindowsExtendedProtectionScenario 设置为 Any。 |
从客户端间接和直接访问报表服务器,其中,客户端与代理或报表服务器建立 SSL 连接。 |
1) 客户端应用程序 2) 报表服务器 3) 代理 4) 客户端应用程序 |
将 RSWindowsExtendedProtectionLevel 设置为 Allow 或 Require。 将 RSWindowsExtendedProtectionScenario 设置为 Proxy。 |
配置 Reporting Rervices 扩展保护
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 来验证身份验证标记的预期目标。 Reporting Services 使用现有的 URL 保留项信息来生成视为有效的 SPN 的列表。 使用 URL 保留项信息来验证 SPN 和 URL 保留项使系统管理员能够从单个位置管理这两者。
当报表服务器启动、扩展保护的配置设置更改或回收应用程序域时,将更新有效 SPN 的列表。
SPN 的有效列表特定于每个应用程序。 例如,报表管理器和报表服务器每个都将计算不同的有效 SPN 列表。
为应用程序计算的有效 SPN 列表由以下元素确定:
每个 URL 保留项。
从域控制器为 Reporting Services 服务帐户检索的每个 SPN。
如果 URL 保留项包含通配符(“*”或“+”),则报表服务器将从 Hosts 集合添加每个条目。
Hosts 集合来源。
下表列出了 Hosts 集合的潜在来源。
源类型 |
说明 |
---|---|
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)