检测在LDAP中是否使用LDAP锁定Active Directory用户帐户
我使用
python的ldap模块验证用户登录.
当登录失败时,我会获得一个ldap.INVALID_CREDENTIALS登录名,但是这可能是由于密码错误或因为该帐户被锁定.第三次尝试后,该帐户被锁定. 我想检测到该帐户被锁定,并报告给沮丧的用户,而不是相同的“无效登录”消息. 搜索我找到的解决方案: > AD不使用userAccountControl LOCKED标志; 我应该使用的LDAP查询来查找被锁定的用户是: (&(objectClass=user)(lockoutTime>=1)) 或针对特定用户: (&(objectClass=user)(sAMAccountName=jabberwocky)(lockoutTime>=1)) 但是这不行,每次查询都不会返回任何结果. 解决方法
lockoutTime中的值为零表示未锁定.所以,你应该尝试这个.
(&(objectClass=user)(!lockoutTime=0)) 其实上面的查询还不是100%正确.如果您从MSDN读取精美打印,Microsoft建议您将Lockout-Time属性添加到Lockout-Duration属性,然后将其与当前时间进行比较.那是因为有一个叫锁闭持续时间的东西.一旦锁定持续时间过去,用户将自动解锁. “锁定时间为零”表示帐户永久锁定,直到管理员解锁为止. 看这个MSDN article
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |