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