如何使用SSRS和BIDS自定义安全扩展访问用户角色/权限
本文关键字:用户 访问 角色 权限 扩展 安全 SSRS 何使用 BIDS 自定义 | 更新日期: 2023-09-27 18:25:33
我已经为SSRS 2008r2编写并部署了一个自定义安全扩展,它与尝试在BIDS 2008/Visual Studio中部署报告时不同,工作效果很好。
安全扩展的体系结构通过多个权限处理登录,我通过在LogoUser()中创建用户会话来管理这一点,将其保存在数据库中,然后使用cookie从服务传递的UID将会话加载到RS web服务的客户端代理类中,然后重写验证票证以包含会话UID加上当前用户的用户角色。然后,可以在自定义授权扩展中使用这些值来管理用户对SSRS操作和对象的权限。
我遇到的问题是,在部署来自BIDS的报告时,它不起作用。它直接访问服务,因此不需要服务代理类。我已经尝试在HTTP上下文上处理身份验证后事件,但遗憾的是,RS服务没有持久化会话cookie,因此我无法访问会话值。
那么我错过了什么?是否存在另一种用于控制用户角色的方法&不需要在任何地方对用户名进行硬编码的权限?正如我所说,登录可以使用多个权限,因此不可能只通过一个用户名管理权限(一想到这一点我就感到尴尬)。
我想到的一个可能的解决方案是为BIDS编写一个扩展或插件,它本质上充当网络服务的代理,这将使我能够更好地控制登录过程,但我不知道这是否可能(谷歌没有帮助…)
如有任何帮助,我们将不胜感激!
您是否使用IAuthenticationExtension接口?如果您需要访问控制,下面的链接提供了一个很好的访问控制示例。http://blogs.msdn.com/b/jameswu/archive/2008/07/15/anonymous-access-in-sql-rs-2008.aspx
我想可以在这里跟踪nt用户名,然后根据active directory组等进行查找。我在这里看到的主要头痛问题是在ssrs策略配置中启用正确的信任策略。
我放弃了寻找一个优雅的解决方案,所以我走上了阻力最小的道路,并遵循了SSRS关于拥有"主"帐户的指导原则,我将指定该帐户用于报告部署和订阅。这个帐户需要硬编码或从设置文件中提取,我不确定是否有其他方法。干杯
更新:我已经走过了这条路,它运行良好。如果用户是通过web前端登录的,他们可以在那里部署报告,但如果他们想从开发环境(BIDS)进行部署,他们需要在登录对话框显示时使用主帐户登录。我已将部署帐户限制为仅用于此特定用途。