SQL Server Reporting Services (SSRS) 提供了多个可配置的选项,用于对报表服务器的用户和客户端应用程序进行身份验证。 默认情况下,报表服务器使用 Windows 集成身份验证,并假定客户端和网络资源位于同一域或受信任域中,存在受信任的关系。 根据网络拓扑和组织的需求,你可以自定义用于 Windows 集成身份验证的身份验证协议、使用基本身份验证或使用你提供的基于表单的自定义身份验证扩展。 每种身份验证类型都可以单独打开或关闭。 如果您希望报表服务器接受多种类型的请求,则可启用多种身份验证类型。
注释
在以前的 Reporting Services 版本中,IIS 提供了所有身份验证支持。 从 SQL Server 2008 版本开始,不再使用 IIS。 Reporting Services 在内部处理所有身份验证请求。
在允许访问之前,必须对请求访问报表服务器内容或作的所有用户或应用程序进行身份验证。
身份验证类型
在允许访问之前,必须使用报表服务器上配置的身份验证类型对请求访问报表服务器内容或作的所有用户或应用程序进行身份验证。 下表介绍了 Reporting Services 支持的身份验证类型。
| 身份验证类型名称 | HTTP 身份验证层值 | 默认情况下是否使用 | DESCRIPTION |
|---|---|---|---|
| RSWindowsNegotiate | 谈判 | 是的 | 尝试首先使用 Kerberos 进行 Windows 集成身份验证,但如果 Active Directory 无法为客户端请求向报表服务器授予票证,则会改用 NTLM。 协商将仅在票证不可用时回退到 NTLM。 如果第一次尝试导致错误而不是缺少票证,则报表服务器不会进行第二次尝试。 |
| RSWindowsNTLM | NTLM | 是的 | 使用 NTLM 进行 Windows 集成身份验证。 不会在其他请求中委托或模拟凭据。 后续请求将遵循新的质询响应序列。 根据网络安全设置,系统可能会提示用户输入凭据或以透明方式处理身份验证请求。 |
| RSWindowsKerberos | Kerberos | 否 | 使用 Kerberos 进行 Windows 集成身份验证。 必须配置 Kerberos,通过为您的服务账户设置服务主体名称(SPN),这需要具备域管理员权限。 如果使用 Kerberos 设置身份委派,则请求报表的用户令牌还可以用于与为报表提供数据的外部数据源的额外连接。 在指定 RSWindowsKerberos 之前,请确保所使用的浏览器类型实际上支持它。 如果使用 Internet Explorer,则仅通过 Negotiate 支持 Kerberos 身份验证。 Internet Explorer 不会生成直接指定 Kerberos 的身份验证请求。 |
| RSWindowsBasic | 基本 | 否 | 基本身份验证是在 HTTP 协议中定义的,并只能用于对向报表服务器发出的 HTTP 请求进行身份验证。 凭据以 base64 编码形式在 HTTP 请求中传递。 如果使用基本身份验证,请使用安全套接字层(SSL)在通过网络发送用户帐户信息之前对其进行加密。 SSL 提供一个加密通道,可借助此通道通过 HTTP TCP/IP 连接将连接请求从客户端发送到报表服务器。 有关详细信息,请参阅 Microsoft TechNet 网站上的 “使用 SSL 加密机密数据 ”。 |
| 习惯 | (匿名) | 否 | 匿名身份验证将指示报表服务器忽略 HTTP 请求中的身份验证标头。 报表服务器接受所有请求,但调用你提供的自定义 ASP.NET Forms 身份验证来对用户进行身份验证。 仅当您部署一个处理报表服务器上所有身份验证请求的自定义身份验证模块时,才需指定 Custom。 不能将自定义身份验证类型与默认 Windows 身份验证扩展一起使用。 |
不支持的身份验证方法
不支持以下身份验证方法和请求。
| 身份验证方法 | 说明 |
|---|---|
| 匿名 | 报表服务器不接受来自匿名用户的未经身份验证的请求,但包括自定义身份验证扩展插件的部署除外。 如果在配置为基本身份验证的报表服务器上启用报表生成器访问权限,报表生成器将接受未经身份验证的请求。 对于所有其他情况,在匿名请求到达 ASP.NET 前将拒绝该请求,同时生成 HTTP 状态 401 拒绝访问错误。 收到 401 拒绝访问响应的客户端必须使用有效的认证类型重新构建请求。 |
| 单一登录技术 (SSO) | Reporting Services 中没有对单一登录技术的原生支持。 如果要使用单一登录技术,则必须创建自定义身份验证扩展。 报表服务器托管环境不支持 ISAPI 筛选器。 如果使用的 SSO 技术作为 ISAPI 筛选器实现,请考虑使用 ISA 服务器对 RSASecueID 或 RADIUS 协议的内置支持。 否则,可以创建 ISA 服务器 ISAPI 或用于 RS 的 HTTPModule,但建议直接使用 ISA 服务器。 |
| 护照 | SQL Server 2014 不支持。 |
| 摘要 | SQL Server 2014 不支持。 |
身份验证设置的配置
保留报表服务器 URL 后,身份验证设置将配置为使用默认的安全设置。 如果修改这些设置不正确,报表服务器将为无法进行身份验证的 HTTP 请求返回 HTTP 401 拒绝访问错误。 选择身份验证类型要求你已知道如何在网络中支持 Windows 身份验证。 必须指定至少一种身份验证类型。 可为 RSWindows 指定多种身份验证类型。 RSWindows 身份验证类型(即 RSWindowsBasic、RSWindowsNTLM、RSWindowsKerberos 和 RSWindowsNegotiate)与 Custom 互斥。
重要
Reporting Services 不会验证指定的设置,以确定它们是否适合你的计算环境。 默认安全性可能不适用于您的安装,或者您指定的配置对您的安全基础结构无效。 因此,请务必在受控测试环境中仔细测试报表服务器部署,然后再将其提供给更大的组织。
报表服务器 Web 服务和报表管理器始终使用相同的身份验证类型。 不能为报表服务器服务的功能区域配置不同的身份验证类型。 如果您具有扩展部署,请确保在部署的所有节点上重复所有更改。 不能在同一横向扩展中配置不同的节点以使用不同的身份验证类型。
后台处理不接受来自最终用户的请求,但它确实对所有请求进行身份验证,以实现无人参与的执行目的。 它始终使用 Windows 身份验证,并使用报表服务器服务或无人参与的执行帐户(如果已配置)对请求进行身份验证。
本节中
相关任务
| 任务说明 | 链接 |
|---|---|
| 配置 Windows 集成身份验证类型。 | 在报表服务器上配置 Windows 身份验证 |
| 配置基本身份验证类型。 | 在报表服务器上配置基本身份验证 |
| 配置表单身份验证或其他自定义身份验证类型。 | 在报表服务器上配置自定义身份验证或窗体身份验证 |
| 使报表管理器能够处理自定义身份验证方案。 | 配置报表管理器以传递自定义身份验证 Cookie |
另请参阅
授予对本机模式报表服务器的权限
RSReportServer 配置文件
(create-and-manage-role-assignments.md)
为报表数据源指定凭据和连接信息
实现安全扩展插件
在本机模式报表服务器上配置 SSL 连接
配置报表生成器访问
安全扩展插件概述
Reporting Services 中的身份验证
Reporting Services 中的授权