Нет прямой поддержки истечения срока действия учетной записи в OpenLDAP или ее наложении (даже в contrib/
).
Говард Чу предлагает , используя для этого pwdMaxAge * 1007 ppolicy , который можно заставить работать, но я нашел это менее чем идеальным: если вы уже используете ppolicy для паролей с истекающим сроком действия (в дополнение к аккаунтам с истекающим сроком действия), это будет конфликтовать с этими настройками, и если вы настроили льготный вход в систему(нормальная вещь, которую нужно сделать), пользователь может изменить свой пароль и, таким образом, сбросить таймер истечения срока действия.
Так что, похоже, лучший способ реализовать это (и хороший способ это не так) выполняется путем запуска внешней задачи, которая устанавливает (атрибут ppolicy) pwdAccountLockedTime в магическое число, обозначающее заблокированную вручную учетную запись, которая не может быть разблокирована пользователем.
pwdAccountLockedTime
Этот атрибут содержит время, когда учетная запись пользователя была заблокирована.Если учетная запись заблокирована, пароль больше не может использоваться для аутентификации пользователя в каталоге.Если pwdAccountLockedTime установлен на 000001010000Z , учетная запись пользователя заблокирована навсегда и может быть разблокирована только администратором.Обратите внимание, что блокировка учетной записи вступает в силу только в том случае, если для атрибута политики паролей pwdLockout установлено значение " TRUE ".
Эта внешняя задача (вероятнее всего, cronjob) может быть реализован таким образом, чтобы он считывал дату / время истечения срока действия из пользовательского атрибута (например, expirationTime ) в пользовательской записи, когда он зацикливается на них.Таким образом, вы можете сохранить время и дату истечения в пользовательской записи, но, конечно, блокировка полностью зависит от выполнения этой внешней задачи.
Или вы можете написать собственное наложение.