【问题标题】:How can I access user roles/permissions with SSRS and BIDS Custom Security Extension?如何使用 SSRS 和 BIDS 自定义安全扩展访问用户角色/权限?
【发布时间】:2012-02-23 22:52:55
【问题描述】:

我已经为 SSRS 2008r2 编写并部署了一个自定义安全扩展,除了尝试从 BIDS 2008/Visual Studio 中部署报告之外,它还能很好地工作。

安全扩展的体系结构通过多个权限处理登录,我通过在 LogonUser() 中创建用户会话、将其保存在数据库中然后使用客户端代理类加载 RS Web 服务的会话来管理它通过 cookie 从服务传递的 UID,然后重写身份验证票证以包含会话 UID 以及当前用户的用户角色。然后可以在自定义授权扩展中使用这些值来管理用户对 SSRS 操作和对象的权限。

我遇到的问题是从 BIDS 部署报告时它不起作用。它直接访问服务,因此不需要服务代理类。我已经尝试在 HTTP 上下文中处理身份验证后事件,但是会话 cookie 没有被 RS 服务持久化,因此我无法访问会话值。

那么我错过了什么?是否有另一种控制用户角色和权限的方法不需要在任何地方硬编码用户名?就像我说的,可以使用多个权限进行登录,因此仅通过用户名管理权限是不可能的(想到它让我畏缩)。

我想到的一个可能的解决方案是为 BIDS 编写一个扩展程序或插件,它本质上充当 Web 服务的代理,这将使我能够更好地控制登录过程,但我不知道这是否可能(谷歌是没有帮助...)

我们将不胜感激地接受任何帮助!

【问题讨论】:

  • 你有没有得到完整源代码的解决方案?

标签: c# .net reporting-services forms-authentication bids


【解决方案1】:

您使用的是 IAuthenticationExtension 接口吗?如果您需要,以下链接提供了访问控制的合理示例。 http://blogs.msdn.com/b/jameswu/archive/2008/07/15/anonymous-access-in-sql-rs-2008.aspx

我想可以在这里跟踪 nt 用户名,然后针对活动目录组等进行查找。我在这里看到的主要问题是在 ssrs 策略配置中启用正确的信任策略。

【讨论】:

  • 感谢您的回答,但正如我上面提到的,我正在使用具有多个登录凭据权限的表单身份验证,因此无法仅使用用户名跟踪权限(例如,可能有不同的用户具有相同的权限)每个权限中的用户名)。我绝对没有使用匿名访问。
【解决方案2】:

好吧,我放弃了寻找一个优雅的解决方案,所以我走上了阻力最小的道路,并遵循了我收集到的 SSRS 指南,即拥有一个“主”帐户,我将指定它用于报告部署和订阅。此帐户需要硬编码或从设置文件中提取,我不确定是否有其他方法。干杯。

更新:我已经走上了这条路,它工作正常。如果用户通过 Web 前端登录,他们可以在那里部署报告,但如果他们想从开发环境 (BIDS) 部署,则需要在登录对话框显示时使用主帐户登录。我已将部署帐户限制为仅用于此特定用途。

【讨论】:

  • 听起来是个可行的选择。另一个方向是使用其他工具进行报表部署。我们仅将 BIDS 部署用于初始报表服务器部署,而且只有一半时间。 RSS (stackoverflow.com/questions/3056799/…) 可能有同样的身份验证问题,但通过 IE 部署并不是世界上最糟糕的事情......
  • @JamieF 感谢您的评论,是的,我曾考虑过通过 Web 前端进行部署,但 IMO 这只会使报告开发人员的事情变得复杂。订阅运行时也会出现同样的问题(即无法正确加载用户详细信息),因此主帐户将是一种两只鸟/一块石头的方法。但我对此并不特别高兴。
猜你喜欢
  • 2020-01-19
  • 2014-11-22
  • 2012-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-15
  • 2016-07-24
  • 2016-07-16
相关资源
最近更新 更多