使用登录/通行证连接到Active Directory用户

本文关键字:Active Directory 用户 连接 通行证 登录 | 更新日期: 2023-09-27 18:26:47

为了将前端客户端连接到我的多维数据集,我使用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''to和1234
  • IIS允许我使用AD帐户的凭据转到另一个页面

有人知道这是否可能吗?

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

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

使用登录/通行证连接到Active Directory用户

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