Назад | Перейти на главную страницу

Справка по сценарию истечения срока действия учетной записи LDAP

Мне нужно найти способ автоматического уведомления пользователей учетной записи 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 и сделать привязку условием успеха фильтра.