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

Mad*_*Boy 8 active-directory windows-server-2012 windows-server-2012-r2

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

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

虽然程序员可以编写复杂性检查最后使用的密码,但无法在 Web 界面上检查,因为 Web 服务不知道最后一个密码。

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

Sha*_*den 9

在 AD 中有两种类型的操作可以更改用户的密码 - change,可以匿名执行,因为它需要旧密码作为请求的一部分,以及reset,不需要旧密码并且必须由具有访问权限的用户能够为目标帐户重置密码。

在这种情况下,软件应用程序正在执行重置操作,但不知道用户的旧密码,但经过身份验证可能是具有所需权限的服务帐户。

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

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

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