【发布时间】:2012-11-22 14:46:47
【问题描述】:
这是帖子 Reporting Services Authentication advice sought 的扩展,因为我无法在该线程上提交冗长的帖子(抱歉管理员)。
基本上,我将报告服务的本地安装配置为使用 Windows 身份验证(最终目标是在网络上实施此身份验证)。
我目前的设置:
IIS (5.1):我创建了一个名为“ReportServer”的应用程序,它使用 ASP.NET v2.0.50727。此应用程序的安全设置为“集成 Windows 身份验证”。我已取消选中“匿名访问”复选框。我是否正确地假设这将阻止匿名访问 IIS(即 IIS 中的 ReportServer 应用程序?)。因此,将提示用户输入登录详细信息,然后将针对 windows/AD 进行验证?
报告:我创建了一个共享数据源,其中数据库位于不同的服务器上,并将数据源配置为使用“Windows 身份验证”(不是 SQL Server 身份验证),我可以成功测试连接。我还可以通过在 BIDS 中运行报告来成功创建和测试一个简单的报告。
当我部署报告时,我没有收到登录提示(这很好)。我相信这是因为 IIS 中的应用程序目录配置为使用“集成 Windows 身份验证”,它使用登录的 PC 用户帐户(正确吗?)。
每当我通过浏览器加载报告服务时,系统都会正确提示我输入我的 Windows 域用户名和密码,但只有在我从本地 PC 运行报告时才会提示。一旦通过身份验证,我就可以看到所有适用于我的报告。如果同事尝试连接到我 PC 上的报表实例,他无需登录就允许进入!这是为什么?!
但是,当我通过浏览器运行已部署的报告时,我收到错误“报告处理期间发生错误。无法创建与数据源的连接。用户“(空)”登录失败。原因:未关联使用受信任的 SQL Server 连接。”如果我更改数据源以使其使用 SQL Server 身份验证并指定 SQL Server 中存在的登录名,则报告可以在浏览器中成功运行。
我想实现的理想解决方案如下:
- 用户在浏览器中加载报表服务器 URL。
- 系统会提示用户输入他们的 Windows/AD 凭据(包括域前缀)。
- 在幕后允许用户进入报表服务器。
- 用户将只能看到报告文件夹和他/她被允许看到的报告。这将通过将允许的 AD 组/用户添加到报告文件夹和报告中来控制(我知道如何执行此操作)。我不希望维护单独的 SQL Server 用户帐户。
我感觉好像快到了,即与报表服务器的连接在允许用户访问报表服务器之前提示用户输入他们的 Windows 凭据。
谁能告诉我:
a) 为什么当我通过本地浏览器访问报表时,系统提示我登录 windows,但当其他 windows 用户通过浏览器窗口远程访问我的报表服务器时,却没有提示登录?
b) 如果应该实施更好的整体解决方案,请您建议或指出相关资源。
c) 我当前的设置有什么需要注意的地方,可能会在未来引起问题。
非常感谢。
JFB
【问题讨论】:
标签: sql-server windows authentication iis reporting-services