Estoy validando los inicios de sesión de los usuarios mediante el módulo ldap de python. Cuando falla el inicio de sesión, recibo un inicio de sesión ldap.INVALID_CREDENTIALS, pero puede ser debido a una contraseña incorrecta o porque la cuenta está bloqueada. La cuenta se bloquea después del tercer intento.Detectar si una cuenta de usuario de Active Directory está bloqueada mediante LDAP en Python
Me gustaría detectar que la cuenta está bloqueada e informar al usuario frustrado, en lugar del mismo mensaje de "inicio de sesión inválido".
búsqueda de una solución que encontré:
- La bandera userAccountControl bloqueado no es utilizado por AD; atributo
- El lockoutTime debe utilizarse en lugar
La consulta LDAP que debería usar para encontrar usuarios bloqueados es:
(&(objectClass=user)(lockoutTime>=1))
O para un usuario específico:
(&(objectClass=user)(sAMAccountName=jabberwocky)(lockoutTime>=1))
Pero esto no funciona, la consulta no devuelve resultados cada vez.
obtengo 'ldap.FILTER_ERROR: { 'desc': 'filtro de búsqueda Bad'} 'si se usa' (! lockoutTime = 0) ', o incluso' (lockoutTime> 0) '. Solo '(! LockoutTime> = 1)' parece evitar esto. –