用ASP模仿任何用户?

时间:2017-05-01 08:20:03

标签: c# asp.net-mvc active-directory impersonation

我在这里问这个问题,因为也许它可以通过编程方式完成。因此,在我的工作中,我只是为员工建立了一个门户网站,以便他们可以在其他同事身上找到电话号码和其他信息,并发送查询以将他们的私人信息更改为人力资源。它是一个ASP.NET MVC项目,托管在我们的内部IIS服务器上。门户网站可从我们公司外部访问,因此启用了基本身份验证和Windows身份验证。

我们有时需要开发人员和管理员,以便能够从我们的Active Directory模拟现有用户。我知道你可以冒充现有用户但是,我想知道的是我是否可以使用某种方法或编程魔术,只是传递像首字母一样的东西(因为我们用作用户名) )然后当我打开网站时,门户网站将接受我作为该用户。

如果我可以在我的本地主机上执行此操作,而不是将其推送到当然用于测试目的,那将是很好的。

这是我能做的吗?如果是这样,我该怎么办呢?我不确定我是如何在C#中做的。

1 个答案:

答案 0 :(得分:1)

如果您需要这样做,我建议的最好的事情是设置开发AD环境。您必须在这个环境中使用VPN或者有其他方式专门进入它(例如专用的WiFi SSID),因为它必须与您的其余工作网络完全隔离。

从那里开始,您基本上可以修改AD以基本上接管您喜欢的任何帐户,只需将密码更改为您已知道的内容,然后通过该用户登录该隔离网络上的客户端计算机'证书。

长短不一,这并不容易,你可能想找到另一种方法来测试你需要测试的东西。例如,仅仅在AD中设置一个模拟您需要测试的用户的测试帐户是不够的?它可能有不同的公司电子邮件,但您可以分配所有相同的组和权限。

正如@Transcendant在您的问题下面的评论中所述,要按照您想要的方式(假设您可以)这样做,实际上必须在应用程序中存在巨大的安全漏洞。如果恶意用户能够找出方法来测试"他们就能够假设他们在您的网站上喜欢的任何身份并破坏了大量的破坏。你可能会想,"他们怎么会想到这一点?"但是不要忽视现代黑客的聪明才智和坚持不懈。通过默默无闻的安全从未实现过。