我们有一个BI团队,它创建了一个精彩的数据仓库,适用于内部员工通过内部网络上的Excel使用它。他们通过域控制器使用Windows身份验证,一切正常,包括限制对用户和AD组的访问。
问题在于,我们现在希望为不属于我们Windows域的更广泛的受众提供相同的访问权限。由于需要访问系统的用户信息已经存储在另一个位置(带有SQL数据库的应用程序),这使事情变得更加复杂。
目标是使它们(可能使用HTTPS)连接到多维数据集(使用Excel Analysis Services集成),并使用他们在主应用程序中拥有的用户名/密码进行身份验证。
主应用程序有一个用于用户身份验证和会话管理的WCF服务接口,因此我真正需要的是一种在MSMDpump.dll前面针对该WebService提供身份验证的方法。我们还可以添加角色映射,以便我们可以针对应用程序中的用户定义SSAS角色。
我在想我可以创建一个与MSMDPUMP.dll具有相同接口的dll,并在客户端和主dll之间进行转换,但这看起来有点过分。
是否有任何预先构建的工具可以执行此操作? (是的,我知道Sharepoint可以做这样的事情,但这不是一个选择,所以请不要建议)。有没有人知道任何博客详细说明如何做到这一点?
在2?
之间创建接口的任何指针问题类似于How to secure MS SSAS 2005 for HTTP remote access via Internet?但是,我正在考虑从另一个数据源提供身份验证机制,并将角色提供给SSAS,而不是用户。我们不希望在SSAS中为在外部应用程序中设置的每个用户设置新用户。
更新:要明确的是,他们的外部用户需要使用Excel连接到多维数据集,并且返回的数据需要通过他们所在的角色进行过滤,并在多维数据集中应用安全性。 我们能够将多维数据集变为使用动态维度安全性,并在有帮助的情况下使用CustomData属性。
答案 0 :(得分:1)
最终解决方案最终成为第三方控制和动态维度安全的组合。
我们发现,如果不费力,就不可能轻松地将MembershipProvider接口应用于MSMDPUMP接口,因此我们的解决方案为他们提供了一个可供使用的Web接口。
我们使用的控件是DevExpress,是他们的“PivotGrid”控件。它不是免费的,但远远低于实施任何其他自定义解决方案的开发资源成本。
与控件一起,我们已将动态维度安全性应用于多维数据集,因此站点的每个用户都将具有到多维数据集的专用connectionString,并在连接字符串后附加“CustomData”。这允许我们将数据隔离任务委派给Cube和BI团队,让Web开发人员专注于控件的显示。
解决方案运行良好,并且不涉及像Sharepoint / Excel Services这样的重量级应用程序。它可以直接构建到您的网站,并根据您的需要进行品牌化,提供销售工具和有用的功能工具。
答案 1 :(得分:0)
您可以在多维数据集db上创建一个有限访问用户(只读,仅用于相关的多维数据集等),并将该用户/密码硬编码到app db上的连接字符串中吗?