Мне нужно найти способ автоматического уведомления пользователей учетной записи LDAP о том, когда истечет срок действия их паролей, а также заставить их изменить свои пароли. Я новичок в LDAP. Я использую openldap 2.3.43.el5 на RHEL 5.3. Я пытаюсь найти решение (возможно, в форме сценария), но я открыт для других проверенных и проверенных решений.
Я хочу проанализировать, отфильтровать или отформатировать вывод запроса LDAP из приведенной ниже команды (пример)
slapcat -b "cn=Manager,dc=berkerly dc=ac dc=uk"
так что я получаю вывод, который показывает пользователя cn (имя) и поле пользователей pwChangedTime из базы данных LDAP, например
cn: jbloggs :
pwdChangedTime: 2011078159Z
или, еще лучше, все в одной строке, например
cn: jbloggs :pwdChangedTime: 2011078159Z
Таким образом, я могу определить, когда пароли пользователей были в последний раз изменены, а затем на основе нашей политики паролей определить, когда истечет срок действия паролей пользователей учетной записи LDAP. Фактически это позволит мне определить, чьи пароли скоро истекают, из мини-отчета. Я надеюсь сделать это в сценарии, но не знаю, как этого добиться в выводе команды slapcat.
Есть ли способ или команда в LDAP для перечисления пользователей cn (имя) и pwdChanged времени или других полей. Я новичок в LDAP, и я знаком только с командой slapcat, которая перечисляет всех пользователей LDAP и их различные поля атрибутов в База данных LDAP. Этот вывод slapcat нелегко использовать с помощью grep и awk, чтобы найти именно то, что я ищу.
Также мне нужно подтверждение, действительно ли поле pwdChangedTime: представляет дату, когда пароль для этого пользователя был в последний раз изменен.
Наконец, есть способ заставить пользователей изменить свои пароли LDAP, как вы это делаете в обычных локальных учетных записях Unix и Linux.
Ваша помощь будет принята с благодарностью.
Я думаю, что вывод должен быть таким, как это (не проверено):
slapcat -b "cn=Manager,dc=berkerly dc=ac dc=uk" | egrep "(cn:|pwdChangedTime)"
это должно вывести cn и pwdChangedTime для всех пользователей. Как бы я это сделал:
1) получить список пользователей с помощью slapcat
2) для каждого пользователя в этом списке получите cn и pwdChangedTime, используя вышеуказанную команду grep. Другой вариант - использовать perl, у которого есть библиотека LDAP. С участием эта библиотека получить данные из LDAP легко.
3) проверьте вынуть дату из переменной pwdChangedTime.
Я не знаю, можете ли вы заставить пользователей изменить свой пароль с помощью LDAP. Я думаю, что есть способ, но не уверен в этом.
надеюсь, что мой пост окажется полезным.
P.S .: извините, я не могу опубликовать больше примеров кода, но я на работе.
Сам OpenLDAP может быть расширен с помощью накладки. Взгляните на его Наложение политик паролей.
Какие приложения используют ваши пользователи LDAP?
Конечно, возможно, хотя это вряд ли целесообразно и определенно не масштабируется, сбросить LDIF, чтобы определить, у каких паролей пользователей истечет срок действия и когда. Предлагаемый вами метод требует полного сканирования таблицы каталога с последующей обработкой текста, чтобы получить все в одной строке, и так далее.
Насколько мне известно, OpenLDAP поддерживает элементы управления «Срок действия пароля истек» и «Срок действия пароля истекает». Эти элементы управления возвращаются с сервера в ответе на привязку. Их цель - информировать клиентов о состоянии пароля пользователя, связанного с политикой паролей. Эти элементы управления описаны в ВЧУ.
Использование этих элементов управления делает клиентов ответственными за уведомление пользователей и уже поддерживаются, например, клиентами входа в систему UNIX (хотя клиент Solaris не работает, см. статья). Когда ваш клиент получает ответ привязки и проверяет наличие элемента управления с истекшим сроком действия пароля (если аутентификация не удалась) и элемента управления истечением срока действия пароля, то клиент может предпринять соответствующие действия. Клиенты должны всегда проверять наличие элементов управления в ответах LDAP.
Уведомление, выполняемое клиентом, является гибким, настраиваемым, динамическим и масштабируемым. Уведомления, отправляемые сервером, - совсем другое дело.
Есть и другие вещи, которые можно сделать для улучшения аутентификации, например, используя Контроль утверждения LDAP с фильтром, который проверяет pwdChangedTime
и сделать привязку условием успеха фильтра.