Я проверяю логины пользователей, используя модуль python ldap. Когда вход завершается с ошибкой, я получаю логин ldap.INVALID_CREDENTIALS, но это может быть либо из-за неправильного пароля, либо из-за блокировки учетной записи. Учетная запись заблокирована после третьей попытки.
Я хотел бы обнаружить, что учетная запись заблокирована и сообщит об этом разочарованному пользователю вместо того же сообщения "неверный вход".
Поиск найденного решения:
- Флаг UserAccountControl LOCKED не используется AD;
- Вместо этого следует использовать атрибут lockoutTime
В качестве LDAP-запроса, который я должен использовать, чтобы найти заблокированных пользователей:
(&(objectClass=user)(lockoutTime>=1))
Или для конкретного пользователя:
(&(objectClass=user)(sAMAccountName=jabberwocky)(lockoutTime>=1))
Но это не работает, запрос не возвращает результатов каждый раз.