Asp.net应用程序中SSRS报告的安全性

时间:2013-09-03 17:06:51

标签: asp.net reporting-services ssrs-2008

如果我将一些ID从Asp.net应用程序传递到SSRS服务器以呈现报告 - 我如何确保最终用户不会读取/修改ID?

我猜测的一种方法是在Asp.net应用程序中使用ReportViewer控件并实现SSL,但这样做是否万无一失?或者是他们在这样的应用程序中实现安全性的更好/替代方法。

2 个答案:

答案 0 :(得分:1)

出于安全目的,您可以执行三个级别:

  1. 将SSRS服务器上的默认端口更改为80以外的其他端口.EG:将其更改为81,然后有人需要通过以下方式连接:http://(servername):81 / ReportServer。使用不同的端口使得不在80的公共互联网端口上的流量可能是隐藏使用的好方法。这还需要在托管此端口的服务器上,在Windows防火墙设置下打开此端口以与此应用程序一起使用。

  2. 将HTTPS与证书一起使用,以确定主机与目标之间的连接是否有效。

  3. 除本地管理员外,在SSRS站点上仅设置一个用户。授予该用户只读权限。设置您的应用程序以通过远程模式向ReportViewer进行身份验证,但是将此值硬编码到您的方法中,不要放入应用程序或Web配置。这样,有人必须能够访问源代码才能查看用户,如果他们不是托管SSRS的服务器上的本地管理员,他们将无法进入SSRS站点甚至看到用户。

  4. 无论如何,这些都是我的想法。大多数时候,人们遇到SSRS过于安全而无法与您相处的问题,您需要更高的安全性。我希望其中的一些有用,因为我知道这个方法我不能说100%万无一失(没有什么是恕我直言)但它现在增加了一个复杂程度,添加一个不同的端口以及一个只有可见的最小权限的专用用户另一个帐户,但可以在前端应用程序中进行硬编码。

答案 1 :(得分:0)

您还可以将安全性添加到报告级别。使用User!UserID来捕获登录报告的人员。并使用您从管理报告访问权限的应用程序数据库创建的数据集进行检查。这样,您就可以过滤显示错误用户的数据。

注意:请将此视为系统安全性的另一层,不要仅依赖于此。高级用户可以通过多种方式解决此问题。