Active directory 需要更改密码时进行active directory ldap登录验证

Active directory 需要更改密码时进行active directory ldap登录验证,active-directory,windows-server-2008,Active Directory,Windows Server 2008,让我解释一下我的问题 我有一个PHP应用程序,它使用到Active Directory服务器的LDAP连接进行身份验证。如果我这样做,用户需要在下次登录时更改密码,那么在我允许更改密码之前,将不允许我对他们进行身份验证。我可以检测到需要更改密码,但如果我允许用户更改密码,那么我无法确定用户是否有效,这意味着只要知道用户的用户名密码已过期,系统就可能被入侵 这对我来说似乎很愚蠢。。。我有什么遗漏吗 目前我是 绑定到服务器 检查密码是否已过期 正在检查身份验证用户详细信息 如果用户帐户设置为在下次登

让我解释一下我的问题

我有一个PHP应用程序,它使用到Active Directory服务器的LDAP连接进行身份验证。如果我这样做,用户需要在下次登录时更改密码,那么在我允许更改密码之前,将不允许我对他们进行身份验证。我可以检测到需要更改密码,但如果我允许用户更改密码,那么我无法确定用户是否有效,这意味着只要知道用户的用户名密码已过期,系统就可能被入侵

这对我来说似乎很愚蠢。。。我有什么遗漏吗

目前我是

绑定到服务器

检查密码是否已过期

正在检查身份验证用户详细信息

如果用户帐户设置为在下次登录时更改密码,auth as failed但有密码更改请求,则返回此消息

是否需要发送请求的特定顺序,以便在发送密码更改之前对用户进行身份验证


提前感谢

通过将帐户标记为下次登录时必须更改密码实际上没有密码进行身份验证,因此这不会转化为web


一个更好的选择是将用户的
pwdLastSet
属性与域策略进行比较,并在应用程序中强制进行更改,而不是在AD中进行更改。

如果是这种情况,那么我需要构建一个系统,使其与在整个microsoft操作系统中使用的windows密码缓存系统类似。这将允许我检测是否需要更改密码,然后在用户输入新密码时请求旧密码。这不会像不使用它那样安全,但没有真正的解决方法。我找到了解决这个问题的另一个解决方案,但这似乎不仅仅是一个破解,而不是修复。强制
pwdLastSet
var为-1,如果它等于0,那么您仍然可以在将其更改回0之前验证详细信息。这种方法也适用于自然过期的密码。但是在更改之前,它必须记住
pwdLastSet
字段中以前的值。@MikeB-我也有同样的问题。你有没有运气让它发挥作用?