这是后Reporting Services Authentication advice sought的扩展,因为我无法在该线程上提交冗长的帖子(apologies admin)。使用Reporting Services实施Windows身份验证
基本上,我配置了本地安装的报告服务以使用Windows身份验证(最终目的是在网络上实现此身份验证)。
我的当前设置:
IIS(5.1):我已经创建了一个名为 “的ReportServer” 使用ASP.NET V2.0.50727的应用程序。此应用程序的安全性设置为“集成Windows身份验证”。我没有选中“匿名访问”复选框。我是否正确地认为这会阻止匿名访问IIS(即IIS中的ReportServer应用程序?)。因此,用户将被提示登录详细信息,这反过来将针对Windows/AD进行验证?
报告:我创建了一个共享数据源在数据库驻留在不同的服务器上,并配置数据源使用“Windows身份验证”(不是SQL Server身份验证),我可以成功地测试连接。通过在BIDS中运行报告,我也可以成功创建并测试一个简单的报告。
当我部署报告时,我没有提示登录(这很好)。我相信这是由于IIS中的应用程序目录配置为使用正在使用已登录的PC用户帐户(正确?)的“集成Windows身份验证”。
每当我负荷报告通过浏览器服务,我在正确的提示输入我的Windows域用户名和密码,但只有当我运行从我的本地PC的报告。一旦通过身份验证,我就可以看到适用于我的所有报告。如果一个同事试图连接到我的电脑上的报告实例,他不需要登录即可进入!为什么是这样?!
但是,当我通过浏览器运行已部署的报告时,我收到错误“报告处理过程中出现错误,无法创建与数据源的连接,用户登录失败(空)'原因:不是与受信任的SQL Server连接关联“。如果我更改数据源以使用SQL Server身份验证并指定SQL Server中存在的登录名,则可以在浏览器中成功运行该报表。
理想的解决方案,我想实现如下:
- 用户加载报表服务器URL在浏览器中。
- 提示用户输入他们的Windows/AD凭据(包括域前缀)。
- 在幕后,用户被允许进入报告服务器。
- 用户将只能看到他/她被允许看到的报告文件夹和报告。这将通过将允许的AD组/用户添加到报告文件夹和报告(我知道如何执行此操作)来控制。我不希望维护单独的SQL Server用户帐户。
我觉得好像我差不多在那里,即与报表服务器的连接在允许他们访问报表服务器之前提示用户输入其Windows凭据。
请能有人告诉我:
一)为什么我会被提示输入我的Windows系统中,当我通过浏览器访问本地的报告,但不同的Windows用户没有当系统提示输入日志他们通过浏览器窗口远程访问我的报告服务器? b)如果应该实施更好的整体解决方案,请您建议或指向我相关的资源。
c)有没有什么需要警惕我目前的设置可能会导致未来的问题。
非常感谢提前。
JFB