通过域管理员帐户或其他服务帐户在Active Directory中重置用户密码


8

在Active Directory中,您可以设置和执行规则,其中用户必须使用强密码,不能使用他们已经拥有的最近5个以上的密码,并强制设置密码复杂性。有没有一种方法可以强制执行此类设置,以便如果服务帐户(密码重置Web服务)尝试为用户设置新密码,则将根据策略检查该密码,该密码会被接受还是拒绝?

似乎由于该服务帐户正在强制更改密码,因此用户可以通过Web界面输入相同的密码,并一遍又一遍地继续使用相同的密码。由于这是一个服务帐户,正在为他更改密码,因此不会根据最近的已知密码进行检查,因此不会执行密码规则

尽管程序员可以编写复杂性检查代码,但是由于Web服务不了解最后的密码,因此无法在Web界面上检查最后使用的密码检查。

是否可以强制这样做,以便像普通用户更改密码一样限制服务帐户对密码的更改?

Answers:


9

在AD中,有两种类型的更改用户密码的操作- 更改(可以匿名执行,因为它要求将旧密码作为请求的一部分)和重置(不需要旧密码,必须通过以下操作来完成):有权重置目标帐户密码的用户。

在这种情况下,软件应用程序将执行重置操作,而无需知道用户的旧密码,而是被认证为具有所需权限的服务帐户。

从AD的角度来看,正在通过管理方式重置密码。在这种情况下,永远不会强制执行密码历史记录,因为执行重置的管理员不应该知道用户的旧密码-如果他们习惯于将新密码设置为,例如,Thursday1不符合重置操作的政策,相当混乱。

虽然用户体验很差,但是我能想到的最好的机制是让Web应用程序重置密码(也许是他们未输入的密码,只是生成的密码),然后设置“必须在下次登录时更改密码”。帐户上的“”标记,以强制用户立即执行密码更改操作,这将强制执行历史记录。

有使用LDAP的API在.net实现对这种复位的执行历史的目标的一些讨论在这里,但我不知道这是否会是你这取决于你使用的应用程序的一个选项; 如果您控制代码和正在使用的LDAP库支持控件,那么它应该是可行的。


正如您所描述的,可以在Web应用程序中实现密码更改。OWA可以做到这一点,而我的大学也有一个自定义应用程序也可以做到这一点。它要求用户按照标准输入旧密码,然后输入两次新密码。我不知道它背后的编程,那将是最适合SO的主题。
托马斯

这是执行此功能的共享软件Web应用程序。我没有测试过,做认可这个程序,我只分享证明的功能确实存在。softpedia.com/get/Internet/Servers/Server-Tools/…–
托马斯

@Thomas我的猜测是,当用户忘记密码(但具有某种由Web服务强制执行的身份验证,例如安全性问题)时,他正在使用的应用程序用于自助密码重置,这将使“更改”机制无法实现。否则,一定要使用更改操作!
Shane Madden 2014年

我知道-行动党没有解释情况是否如此,但您可能是对的。
托马斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.