如何保护MS SSAS 2005以便通过Internet进行HTTP远程访问?

时间:2020-03-06 14:39:10  来源:igfitidea点击:

我们正在构建一个使用MS SQL Server Analysis Services 2005进行某些报告(尤其是OLAP多维数据集浏览)的托管应用程序。由于它是为大型全球组织使用而设计的,因此安全性很重要。

似乎Microsoft首选的用于浏览OLAP多维数据集的客户端工具是Excel 2007,并且整个基础结构都围绕Windows Integrated Authentication。但是,我们正在尝试构建面向Internet的Web应用程序,并且不想为每个用户创建Windows帐户。

似乎也没有很多不错的基于AJAXy基于Web的OLAP多维数据集浏览工具(快速,拖放式的尺寸,对动作的支持,跨浏览器等)。此外,我们目前正在使用Dundas OLAP Grid但是也考虑过RadarCube和其他更昂贵的商业解决方案,如果我们知道任何其他便宜/开放式解决方案,请仍在考虑使用CellSetGrid并进一步开发它!

因此,我们计划提供两种访问多维数据集数据的方式:

  • 通过我们自己的Web应用程序,使用这些第三方基于Web的OLAP浏览工具之一。
  • 当Web版本太慢/笨拙或者用户需要更强大的分析功能时,可以通过msmdpump.dll数据泵通过HTTPS从Excel直接访问。

对于Web应用程序的访问,与SSAS数据源的连接是通过Web服务器进行的,因此我们可以很高兴地在"连接字符串"中传递一个CustomData项,以指示正在连接的用户。由于我们可能拥有太多的权利组合,无法为其创建单独的SSAS角色,因此我们实现了动态维度安全性,该动态维度安全性将"多维数据集用户"维度与连接字符串中的CustomData项目结合使用,并限制了其他各种维度成员的允许集相应地(通过与包含"权利映射"的度量值组的其他多对多维度关系)

有关维度安全性,请参见Mosha:
http://www.sqljunkies.com/WebLog/mosha/archive/2004/12/16/5605.aspx

到目前为止,这一切似乎都很好。

对于Excel中的"直接连接",我们设置了用于HTTP访问的数据泵
(请参阅MS Technet文章),但已启用匿名访问,由于我们没有Windows帐户,因此再次依赖连接字符串来控制访问。
但是,在这种情况下,连接字符串由用户控制(我们从Web应用程序推送了一个.odc文件,但是好奇的用户可以查看和更改它),因此我们不能依靠用户来保持良好状态并保留CustomData [email protected]从更改为[email protected]。事实证明,这也会引起与角色相同的问题,因为如果我们不使用Windows集成身份验证,则这些角色也会在连接字符串上指定。

因此,问题归结为:有一种方法可以在没有Windows帐户的情况下在IIS中获得基本身份验证,从而可以与SSAS数据泵一起使用,从而让SSAS知道正在连接的用户,从而可以动态维安全成功使用?

(这是我关于StackOverflow的第一个问题,可能是我曾经问过的最复杂的问题:让我知道我对自己的解释不够好,我将尝试澄清)

解决方案

对于SSAS的(相对)便宜的瘦客户机前端,请查看RSInteract。对于奖励积分,还将使用SSRS报告和报告模型。

任何使用维度安全性的尝试都将要求SSAS知道用户并为其提供访问权限。我看不到任何维护用户权限的方法。

如果本地帐户位于不同的计算机上,则基本身份验证将与本地用户帐户(非域)一起使用,甚至支持直通身份验证,但是我们应强制使用SSL,因为基本身份验证以明文形式发送密码。

我们可以在带有添加项(例如http://www.codeplex.com/CustomBasicAuth)的IIS中使用具有基本身份验证的非Windows帐户,但是SSAS仍需要知道该用户是谁,据我所知,SSAS仅使用Windows身份验证。