Я поддерживаю некоторый код, который использует:
pam_ldap версия 186
, который компилируется
openldap 2.4.40
Мы используем Active Directory в Windows 2012 для бэкэнда LDAP.
pam_ldap успешно аутентифицируется, когда ему предоставлены правильные учетные данные, и отправляет обратно правильную ошибку, если учетные данные неверны. У меня возникает проблема, когда пользователь помечается как «Пользователь должен сменить пароль при следующем входе в систему», и когда я вхожу в систему с правильными учетными данными, он просто отправляет мне ошибку Invalid Credentials. Я посмотрел на код pam_ldap, добавил некоторую отладку, и похоже, что код вызывает «ldap_parse_result», и необходимо заполнить структуру LDAPControl, которую он затем использует для обнаружения флага LDAP_CONTROL_PWEXPIRING. Но что бы я ни делал, переменная LDAPControl указывает на ноль.
Есть ли что-то, что мне нужно настроить на AD по-другому, или какие-либо дополнительные настройки в коде, которые мне нужно сделать, чтобы обнаружить «Пользователь должен сменить пароль при следующем входе в систему»?
спасибо
- = - adamtg