在报表服务器上配置自定义身份验证或窗体身份验证

Reporting Services 提供了可扩展的体系结构,该体系结构允许您插入自定义的或基于窗体的身份验证模块。 如果部署要求不包含 Windows 集成安全性或基本身份验证,则可考虑实现自定义的身份验证扩展插件。 使用自定义身份验证的最常见情形是支持对 Web 应用程序的 Internet 或 Extranet 访问。 使用自定义身份验证扩展插件替换默认的 Windows 身份验证扩展插件,可更好地控制如何授予外部用户访问报表服务器的权限。

实际上,部署自定义身份验证扩展插件需要执行多个步骤,包括复制程序集和应用程序文件,修改配置文件以及测试。 本文仅重点介绍你要在配置文件中指定的身份验证设置。

注意

若要创建自定义身份验证扩展插件,需要自定义代码并掌握 ASP.NET 安全性方面的专业知识。 如果你不希望创建自定义身份验证扩展插件,则可以使用 Microsoft Entry ID 组和帐户,但应大幅减小报表服务器部署的范围。 有关自定义身份验证的详细信息,请参阅实现安全扩展插件

此外,你可以在与 SharePoint 产品集成的 SQL Server Reporting Services 环境中使用窗体身份验证或自定义身份验证扩展插件。 为此,你必须将 SharePoint 网站配置为使用你选择的身份验证方法。 有关在 SharePoint 中配置身份验证的详细信息,请参阅 Microsoft Developer Network (MSDN) 上的身份验证示例

将报表服务器配置为使用自定义身份验证

  1. 在文本编辑器中打开 rsreportserver.config。

  2. 找到 <Authentication> 节。

  3. 复制以下 XML 结构:

    <Authentication>
          <AuthenticationTypes>
                 <Custom />
          </AuthenticationTypes>
          <EnableAuthPersistence>true</EnableAuthPersistence>
    </Authentication>
    
  4. 将其粘贴在 <Authentication> 部分的现有条目上。

    不能将 Custom 与其他身份验证类型一起使用。

  5. 保存文件。

  6. 打开报表服务器的 Web.config 文件。 默认情况下,文件位于与 rsreportserver.config 文件相同的文件夹中(请参阅 RsReportServer.config 配置文件)。

  7. 查找 authentication mode 并将其设置为 Forms

    <authentication mode = "Forms" />
    
  8. 查找 identity impersonate 并将其设置为 False

    <identity impersonate = "false" />  
    
  9. PassThroughCookies 元素结构添加到配置文件中。 有关详细信息,请参阅将 Web 门户配置为传递自定义身份验证 Cookie

  10. 保存文件。

  11. 如果配置了扩展部署,请对该部署中的其他报表服务器重复以上所有步骤。

  12. 重新启动报表服务器以清除当前打开的任何会话。

实现安全扩展插件
Reporting Services 自定义安全性示例 (GitHub)
针对报表服务器的身份验证
RsReportServer.config 配置文件
在报表服务器上配置基本身份验证
在报表服务器上配置 Windows 身份验证
更多疑问? 请访问 Reporting Services 论坛