【问题标题】:asp.net impersonation to alter active directory objectsasp.net 模拟更改活动目录对象
【发布时间】:2012-12-02 01:06:54
【问题描述】:

所以这是我正在尝试寻找解决方案的场景。

我的公司目前有一个员工记录系统,但它没有链接到活动目录。因此,我们有重复的,而且经常是不准确的数据。我正在尝试做的事情是允许记录系统更新活动目录中的值,但是我想确定可以更改的范围以及由谁更改。所以

  1. 当我们有新员工时,IT 将输入初始记录,这也会创建 AD 用户。
  2. hr 出现并更新标题/描述/电话/地址等,但他们不应该能够从系统中创建或删除记录。 (他们必须提交罚单或其他东西)

我一直在尝试阅读有关 kerberos 双跳问题的信息,似乎我需要委派的能力,但是,我自己的 IT 能力还不够高。我可以升级并尝试从更高级别的 IT 人员那里获得批准,以授予帐户授权,但我将其保存为最后的手段。

我想使用模拟来完成任务,但我很难找到关于如何实施模拟的明确答案。

我在 web.config 和 iis 中启用了模拟。我已将 appPool 身份设置为网络服务。在那之后,我不知道下一步该做什么或如何测试设置。

编辑 1: 我也遵循这种模仿模式

var iid = HttpContext.Current.User.Identity;
WindowsIdentity wi = (WindowsIdentity)iid;
WindowsImpersonationContext wic = wi.Impersonate();
try
{
    // do something with a directory entry here
}
catch
{}
finally
{
    wic.Undo();
}

【问题讨论】:

    标签: asp.net active-directory impersonation kerberos


    【解决方案1】:

    确保您的网络服务器已在 AD 中启用委派。无论如何,这是我总是忘记的步骤。

    几个参考链接:

    http://blog.reveille.org.uk/2010/01/asp-net-impersonation-delegation/ http://support.microsoft.com/kb/810572?wa=wsignin1.0

    还要确保您对网站使用 Windows 身份验证。

    您将能够快速判断它是否工作,因为只有具有适当 AD 访问权限的用户才能操纵 AD 设置(因为它实际上就像他们自己更改 AD 一样)。

    【讨论】:

    • 我是否通过这样做来启用 kerberos 的委派?
    • 抱歉,我略略浏览了端到端 kerberos 部分。我相信使用 kerberos,您不仅需要在 AD 中为机器启用委派,还需要为用户自己启用 - 但是这里有更多 kerberos 经验的其他人可以在这里加入。
    【解决方案2】:

    委托是一种更强的模仿形式。模拟允许您充当本地计算机上的用户,委托允许您充当远程计算机上的用户。避免委派的唯一方法是将 AD 中的控制权委派给 Web 服务(在这种情况下,您作为网络​​服务运行,因此让 Web 服务器的计算机帐户能够写入所需的属性),并让 Web服务执行更新。但这不是一个好主意,因为您无法将更改归因于使用该网站的用户。

    【讨论】:

    • “但这不是一个好主意,因为您不能将更改归因于使用该网站的用户。”这是我想避免的事情。我希望能够跟踪谁触摸了什么,尤其是当他们触摸 AD 并进行更改时。
    • 那么除了委派之外,您只有一种选择:使用桌面应用程序。
    • @Michael 实际上,还有另一种方法。如果您询问他们的密码,并允许用户在本地登录,那么您可以创建一个普通的登录令牌来模拟。不过用户讨厌这个,因为它不是单点登录。
    • 正确。我试图将其保存为最后的努力。我不确定它的上层是否允许我启用委派。我已经尝试了我拥有的权限,但我目前被阻止了。
    猜你喜欢
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多