2012-11-22 46 views
2

这是后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中存在的登录名,则可以在浏览器中成功运行该报表。

理想的解决方案,我想实现如下:

  1. 用户加载报表服务器URL在浏览器中。
  2. 提示用户输入他们的Windows/AD凭据(包括域前缀)。
  3. 在幕后,用户被允许进入报告服务器。
  4. 用户将只能看到他/她被允许看到的报告文件夹和报告。这将通过将允许的AD组/用户添加到报告文件夹和报告(我知道如何执行此操作)来控制。我不希望维护单独的SQL Server用户帐户。

我觉得好像我差不多在那里,即与报表服务器的连接在允许他们访问报表服务器之前提示用户输入其Windows凭据。

请能有人告诉我:

一)为什么我会被提示输入我的Windows系统中,当我通过浏览器访问本地的报告,但不同的Windows用户没有当系统提示输入日志他们通过浏览器窗口远程访问我的报告服务器? b)如果应该实施更好的整体解决方案,请您建议或指向我相关的资源。

c)有没有什么需要警惕我目前的设置可能会导致未来的问题。

非常感谢提前。

JFB

回答

1

原因遇到此(即用户= NULL)是因为你问的报表服务器来验证Kerberos凭据。有一个广泛的帖子here,但问题的关键是您要求报表服务器验证Windows凭据,但Active Directory不相信您的计算机将这些凭据一并传递。如果您的代表团设置正确,它将满足您的要求而无需登录提示,并且您可以通过第4点来控制可视性。

2

有2个安全问题处理

  1. 身份验证的用户访问报告
  2. 身份验证的数据源(S)访问数据库(一个或多个)

通常情况下,我们发现我们想要在第一点将未经授权的用户踢出去,然后(假设用户已被授权),为数据源提供一组静态的连接凭证 - 这具有诸如允许连接池和保存我们的DBA的一大笔headac他计算哪些用户可以访问哪些数据库,并运行哪些报告SPROC等,因为他们只需要为“报告数据源用户”进行配置。

点#1由添加到报告/文件夹的组/用户控制。

第2点可以通过为您的数据源设置域凭证,然后为需要访问的各种数据库分配此用户适当的读取/执行访问来完成。

可能有一点你可能会丢失的是,你的数据源凭证作为需要'本地登录'权限运行才能工作?是

FWIW我们的数据源设置如下:

  • 凭据安全地存储在报表服务器
  • 检查:使用连接到数据源时,作为Windows凭据

的账号正在运行您的

相关问题