Мы установили оверлей ppolicy на наш сервер ldap. Политики паролей работают правильно для блокировки пользователя после X попыток ввода неверного пароля, но мы не можем заставить пользователя изменить свой пароль.
Когда мы устанавливаем атрибут pwdReset = TRUE для пользователя - пользователь может войти в систему как обычно с клиентской машины Ubuntu.
Сервер и клиент Ldap были настроены в соответствии с инструкциями Ubuntu: https://help.ubuntu.com/12.10/serverguide/openldap-server.html
Клиентская машина использует pam_ldap
В файле конфигурации /etc/ldap.conf есть строка "pam_lookup_policy yes"
Но атрибут pwdReset игнорируется.
Согласно тому, что я читал в Интернете, pam_ldap должен соблюдать ppolicy и требовать, чтобы пользователь изменил свой пароль, когда установлен pwdReset. Но у нас это не работает ..
Как заставить клиент ubuntu соблюдать атрибут pwdReset?
Может можно включить ведение журнала отладки для pam_ldap? Но не могу найти, как это сделать ...
Я тоже столкнулся с этим - моя конкретная проблема заключалась в том, что в то время как некоторые сторонние приложения (в нашем случае Okta) ищут pwdReset
, то pam_ldap
плагин нет.
Взглянув на исходный код для pam_ldap
как размещено здесь: https://github.com/wfhu/pam_ldap - Я пришел к выводу, что pam_ldap
полностью игнорирует pwdReset
который является частью OpenLDAP ppolicy.schema
. Вы можете найти схему, которую использует OpenLDAP, здесь: http://www.zytrax.com/books/ldap/ape/ppolicy.html
ПРИМЕЧАНИЕ. Я считаю, что проблема в том, что атрибуты политики OpenLDAP отличаются от исходной схемы, в которой (Netscape? / UniversityOfMichigan? / Sun?) Использовалась реализация LDAP-сервера. pam_ldap
надеется.
какой делает работать правильно shadow*
атрибуты, которые являются частью shadowAccount
objectClass.
[Шаги для Ubuntu]
Убедитесь, что у ваших пользователей установлена политика паролей в LDAP, установив флажок pwdPolicySubentry
:
ldapsearch (...) -b dc=example,dc=org "(uid=testinguser)" pwdPolicySubentry
Проверьте своего пользователя shadow*
Информация
slapcat -a uid=testinguser
Устанавливать shadowLastChange
до 0, чтобы разрешить pam_ldap
распознать просроченный пароль
Это можно сделать с помощью скрипта, который проверяет наличие pwdReset
и обновления shadowLastChange
.
Когда это настроено, PAM правильно заставит пользователя изменить свой пароль при входе в систему.
Смотрите также: http://www.openldap.org/lists/openldap-technical/201210/msg00044.html
Вы должны убедиться, что pwdMustChange
установлен на TRUE
об эффективной политике паролей пользователя.
Видеть страница руководства slapo-ppolicy Чтобы получить больше информации.