使用login / pass连接到Active Directory用户

时间:2012-03-05 09:35:23

标签: c# authentication active-directory iis-7.5 ssas

为了将前端客户端连接到我的多维数据集,我使用msmdpump.dll,允许通过http将任何人连接到ssas。

但是我遇到了安全问题,因为IIS中的dll访问是匿名的。因此,任何找到dll URL的人都可以连接到我的多维数据集,因为不需要登录/传递。我们使用此解决方案是因为当用户连接到网站时,本地用户名和域将传输到IIS。

架构是这样的:

  • IIS服务器上的一个网站(域名为AA)
  • 第二台服务器上的SSAS上的多维数据集(域的名称是AA - 所以与IIS服务器的域名相同)
  • 允许用户使用Active Directory(在域AA中)
  • xxx用户连接到网站(每台计算机上的本地用户和本地域)

为了避免匿名模式,我想做这样的事情:

  • 用户访问网站
  • 网站向用户提供凭据
  • 用户以任何形式的网站从Active Directory输入用户名和密码并提交信息
  • IIS识别他并将用户标识为域用户

这是我的描述的一个例子:

  • 我在AD“AA”域
  • 上有一个帐户
  • 此帐号为AA \ toto,密码为1234
  • 允许此用户连接到ssas
  • 我在家(没有域名AA),我去了立方体网站
  • 出现一个表单,询问我的登录名和密码
  • 我把AA \ toto和1234
  • IIS允许我转到包含我的AD帐户凭据的其他页面

有人知道是否可能吗?

如果有人知道Excel在ODC文件中使用哪种身份验证模式来连接SSAS,那么这可能是一个很好的起点。

编辑: 我试图在DLL网站上的IIS中放置“基本身份验证”。如果我放置了域中不存在的帐户,则Excel上的访问权限将被拒绝。但如果我把好帐户,Excel成功连接到ssas。我想我接近解决方案。我将尝试创建一个登录页面,并看看连接是否有效。

1 个答案:

答案 0 :(得分:0)

Microsoft默认提供Active Directory成员资格提供程序,允许您使用Active Directory对用户进行身份验证。

在您添加的网站的web.config中,只需要很少的开始:

<membership defaultProvider="ADMembershipProvider">
  <providers>
    <clear />

    <add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" attributeMapUsername="sAMAccountName" connectionStringName="ADConnectionString" />
  </providers>
</membership>

和相关的连接字符串:

<add name="ADConnectionString" connectionString="LDAP://My-Connection-String,OU=users,OU=CSL,DC=your-domain,DC=Local" />

这应该可以帮助您入门,在我的MVC应用程序中,这就是开始识别具有Active Directory帐户的用户凭据所需的全部内容...... MVC中的标准用户名和密码表单立即生效。

但是......对角色进行身份验证可能会变得更加困难!取决于您是否需要该功能......

编辑:此处有关LDAP连接字符串的更多信息... https://serverfault.com/questions/130543/how-can-i-figure-out-my-ldap-connection-string