使用登录/通行证连接到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。我想我已经接近解决方案了。我会尝试制作一个登录页面,看看连接是否有效。
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