身份验证过程中存在一个奇怪且令人困惑的问题(对我和用户来说)。我不知道这个问题已经存在多久了,但我相信已经存在很长时间了。直到最近,在使用帐户锁定工具时,我才意识到这些身份验证问题有时是由系统故障而不是用户错误引起的。
实际情况是,用户身份验证正确,但系统拒绝其密码。我想重复一遍:他们使用正确的用户名、密码和域登录。这不是操作失误;不是客户端问题;不是用户错误;不是密码过期;不是特定于任何服务。
当用户正确验证身份时,DC 会将“登录失败”计数重置为 0。当失败时,它会将其增加并设置“上次失败”时间。但是当出现此故障时,两种情况都不会发生;身份验证尝试被拒绝,但计数不会增加 1,也不会重置,并且上次失败时间也不会改变。
该问题出现在多个设备和服务中。今天,我的一名学生在多台计算机和网络邮件上登录失败。我比较了计算机和 DC 的事件日志;我发现用户被错误拒绝(失败次数没有增加)和被正确拒绝(因为我故意让她输错密码)之间的事件没有区别。
我自己也遇到过这种情况,尝试登录学生新创建的帐户(使用已知的密码方案)。我在许多通过 AD 进行身份验证的服务上都遇到过这种情况。教职员工和学生都遇到过这种情况。据我所知,这是直接发生在 DC 上的身份验证问题;帐户出了问题,但不是密码过期、禁用等典型原因之一。
重置密码可以解决问题。问题就消失了。但问题出现的频率(本周最多 100 次网络密码重置中,大约出现 8-10 次)让我相信这是一个严重的问题。
我不知道这个问题已经发生了多久。如果不使用帐户锁定工具,我永远不会看到错误计数没有增加,因此假设用户不知道密码。我遇到过很多次用户发誓他们知道他们的登录名,而且它“昨天还有效”。我不知道有多少次是真的,如果有的话。即使在获得该工具后,我也是在多次发生和几个月后才相信这是一个真正的问题。直到我真正遇到这种情况,输入学生的初始密码,看到失败计数没有增加,我才真正相信它。
我们的 AD 环境主要在 Windows Server 2008 上。一些 DC 仍然是 Server 2003。环境是单域。如果有任何其他相关的技术细节需要进行故障排除,请告诉我。
编辑:正如接受的答案所示,它确实是用户错误。有一件事“证明”这是一个真正的问题,那就是当我登录一个新创建的帐户时,它失败了,没有增加错误密码计数。我们对新帐户和重置密码都有标准。很可能另一个管理员忽略了标准,把这个用户的密码重置为其他密码。当我尝试登录新用户时,错误密码没有增加(但我被拒绝了),我认为这是问题的证据。谷歌搜索了很多次,却找不到一个页面来描述错误密码计数没有增加的情况……希望这个答案将来能帮助到别人。
答案1
您是否启用了密码历史记录?如果输入的密码与帐户的最后两个密码之一匹配,则身份验证将被拒绝,但badPwdCount
不会增加。我正在努力理解您描述的其余部分,但这至少可以解释“缺失”的错误密码增量。
编辑
重新阅读您的问题,听起来管理重置密码总是有积极的结果,对吗?还想知道您的 PDCe 使用的是哪种操作系统(2003、2008)。是否有任何防火墙可能阻止对 PDCe(或任何其他 DC)的访问?请记住,虽然最终用户密码更改通过 kpasswd 协议(TCP/464)从客户端传达到本地 DC,但 PDCe 的密码更改通知是通过 RPC 调用进行的。目标端口将从 2003 更改为 2008。
答案2
这看起来像是您的复制或具有 PDC 模拟器角色的 DC 出现了问题。
您可以netdom query fsmo
在每台 DC 上运行并比较每台 DC 的结果吗?确保它们都认为同一台服务器拥有 PDC 模拟器角色。接下来,查看 的输出dcdiag
并查看它要说什么。此外,验证repadmin /showrepl
针对每台 DC 的复制。
如果我不得不进行完全盲目的猜测,我会说要么是 DC 对谁担任 PDC 模拟器角色的看法不一致,要么是曾经担任该角色的服务器被错误地退役并且该角色从未被转移。
答案3
这不是一个问题,这是一个功能: 在 Windows Server 2003 功能级别及更高版本中引入了针对域的增强功能。当错误密码与密码历史记录中最近的两个条目之一匹配时,badPwdCount 属性不会增加,badPasswordTime 属性也不会更新。这意味着普通用户可以在被锁定之前进行更多次尝试。他们的错误密码尝试更有可能是他们最近使用的密码。
lockoutObservationWindow 属性的含义相同。但由于 badPasswordTime 不会在每次尝试输入错误密码时更新,因此在某些情况下会影响允许用户尝试的次数。当用户尝试使用旧密码时,badPwdCount 更有可能重置。
此新功能有时称为密码历史 n-2。最近的前一个密码称为 n-1。下一个最近的密码称为 n-2。并非所有身份验证类型都会利用此新功能。Kerberos 和 NTLM 身份验证协议支持密码历史 n-2。当使用密码或智能卡进行交互式登录时,使用这些协议。其他协议(如 RADIUS 和 PEAP)可能会或可能不会在尝试输入错误密码时增加 badPwdCount。某些协议不会将错误密码尝试转发到 PDC 模拟器。这也许可以解释为什么如果电话反复尝试使用错误密码进行身份验证,电话用户可能会被锁定。
此外,如果 pwdHistoryLength 至少为 3,系统只能知道历史记录中的前 2 个密码。通过该设置,用户可以轮换 3 个密码,因此前 2 个密码会保留在密码历史记录中。如果 pwdHistoryLength 为 2,用户可以在两个密码之间交替使用。在这种情况下,唯一不会增加 badPwdCount 的密码尝试是前一个密码。系统不会保留第二个最近的密码。