Определить, заблокирована ли учетная запись пользователя Active Directory с помощью LDAP в Python

Я проверяю входы пользователей в систему с помощью модуля ldap Python. Когда вход не удается, я получаю имя входа ldap.INVALID _CREDENTIALS, но это может быть либо из-за неправильного пароля, либо из-за того, что учетная запись заблокирована. Аккаунт блокируется после 3-й попытки.

Я хотел бы обнаружить, что учетная запись заблокирована, и сообщить об этом расстроенному пользователю вместо того же сообщения «неверный вход в систему».

В поисках решения я нашел:

  • Флаг userAccountControl LOCKED не используется AD;
  • Вместо этого следует использовать атрибут lockoutTime

. Запрос LDAP, который я должен использовать для поиска заблокированных пользователей,:

(&(objectClass=user)(lockoutTime>=1))

Или для конкретного пользователя:

(&(objectClass=user)(sAMAccountName=jabberwocky)(lockoutTime>=1))

Но это не работает, запрос каждый раз не возвращает результатов.

17
задан Terry Gardner 7 August 2012 в 07:17
поделиться