2016-06-10 4 views
0

С недавнего обновления на моем сервере LDAP (используя Directory Server v2.1-2428 на NAS Synology, работающем под DSM 6, последняя подрывная деятельность), я не могу изменить пароль (или новый пользователь содержащий пароль) с использованием PHP.Сменить пароль или добавить пользователя в LDAP с помощью PHP

Перед обновлением я использовал PHP ldap_add или ldap_mod с атрибутом userPassword. Однако теперь я получаю сообщение об ошибке Warning: ldap_add(): Add: Constraint violation при попытке создания нового userPassword.

При создании нового пользователя с помощью графического интерфейса администратора на NAS, я могу посмотреть запись Парольпользователя, которая появляется в базе данных следующим образом (слегка видоизмененные для личной жизни): {crypt}$6$e49q9SvU$.pSl1C8Ew6WTu24yipUI8kjx7qv2GxWhKAUOBmuAVeRmJ1JV/WvWriVYZJeDDtBxekeepatdaKl0ulQdjsmCP.

Это означает, что база данных принимает SSHA -512 записей в пароле?

Thing Я пытался добавить новый пароль:

  1. Добавление точно такой же хэш пароля, как показано выше, Парольпользователя -> Нарушение ограничения ошибки
  2. Попытка посмотреть алгоритм пароля в исходный код NAS. Это показало следующую строку: rootpw {CRYPT}$1$CL$0fRYicA9KsmHaiV1SRj5q/. Просто используя это, поскольку новый пароль не работает.
  3. Посмотрите на другую функцию PHP, такую ​​как эквивалент командной строки Linux ldappasswd, но это, похоже, не существует для PHP.

Конечно, я бы предпочел использовать надлежащий механизм хэширования/шифрования, такой как SSHA-512, но я не уверен, что такое и что не поддерживает Directory Server.

Я действительно надеюсь, что кто-то может принести мне еще один шаг! Если я еще больше проясню ситуацию, пожалуйста, дайте мне знать.

ответ

0

В конце концов, решение заключалось в том, чтобы просить Synology снова и снова помогать в поиске решения. Они изменили политику паролей на версию до версии до версии v2.1-2428, теперь она работает снова.

Если будет доступно еще одно решение, совместимое с последними версиями OpenLDAP, обмен сообщениями будет весьма полезным.

0

Нарушение ограничений при попытке сменить пароль выглядит как действие политики паролей сервера каталогов. Журналы сервера каталогов должны содержать более подробную информацию об ошибке, но возможно, что политика была настроена на отклонение уже используемых паролей (например, последние 3 пароля). Политика паролей сервера каталогов может обеспечивать соблюдение многих проверок и ограничений для паролей: длина, отсутствие повторного использования, вариации наборов символов, отсутствие простых слов ... Возможно, вам потребуется проверить документацию сервера каталогов Synology или выпустить примечания, чтобы получить подробную информацию о политика паролей по умолчанию.

+0

Спасибо за ваш ответ. В расширенных настройках сервера каталогов существуют различные варианты настройки политики паролей. Тем не менее, я никого из них не активировал, поэтому никаких ограничений на выбор пароля нет. Журнал (/var/log/slapd.log) показывает: '10 июня 21:12:33 IFMSA-NL slapd [29121]: DIGEST-MD5 общий мех бесплатно 10 июн 21:13:05 IFMSA-NL slapd [10237]: [main.c: 736] @ (#) $ OpenLDAP: slapd 2.4.40 (25 мая 2016 17:16:08) $ root @ build1: /source/openldap-2.4.x/servers/slapd' Тем не менее, запись с входа в систему с момента попытки добавить userPassword отсутствует, не знаю почему – SJDS

+0

Ну, глядя на заметки Synology DSM 6.0, правила безопасности пароля были добавлены и включены для пользователей. https://www.synology.com/en-global/knowledgebase/DSM/help/DirectoryServer/ldap_user. У меня нет этой возможности на моем NAS, и я тоже не работаю с OpenLDAP ... Но кажется, что в DSM есть опция, чтобы лучше диагностировать ошибку входа. Вы можете попробовать это. –

+0

Да, но, как я уже сказал, у меня нет каких-либо правил, поэтому, кроме возможности, что Synology что-то изменила под капотом, это не приводит к тому, что я могу изменить, чтобы заставить его работать, как вы думаете? Вы имеете в виду опцию «Показывать больше информации при неудачном входе в систему»? Это означает, что вы получаете сообщение об ошибке при входе в DSM. Это не проблема, о которой я говорю: я хочу добавить атрибут userPassword, и я получаю ошибку нарушения Constraint в PHP. – SJDS

Смежные вопросы