С недавнего обновления на моем сервере 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 Я пытался добавить новый пароль:
- Добавление точно такой же хэш пароля, как показано выше, Парольпользователя -> Нарушение ограничения ошибки
- Попытка посмотреть алгоритм пароля в исходный код NAS. Это показало следующую строку:
rootpw {CRYPT}$1$CL$0fRYicA9KsmHaiV1SRj5q/
. Просто используя это, поскольку новый пароль не работает. - Посмотрите на другую функцию PHP, такую как эквивалент командной строки Linux ldappasswd, но это, похоже, не существует для PHP.
Конечно, я бы предпочел использовать надлежащий механизм хэширования/шифрования, такой как SSHA-512, но я не уверен, что такое и что не поддерживает Directory Server.
Я действительно надеюсь, что кто-то может принести мне еще один шаг! Если я еще больше проясню ситуацию, пожалуйста, дайте мне знать.
Спасибо за ваш ответ. В расширенных настройках сервера каталогов существуют различные варианты настройки политики паролей. Тем не менее, я никого из них не активировал, поэтому никаких ограничений на выбор пароля нет. Журнал (/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
Ну, глядя на заметки Synology DSM 6.0, правила безопасности пароля были добавлены и включены для пользователей. https://www.synology.com/en-global/knowledgebase/DSM/help/DirectoryServer/ldap_user. У меня нет этой возможности на моем NAS, и я тоже не работаю с OpenLDAP ... Но кажется, что в DSM есть опция, чтобы лучше диагностировать ошибку входа. Вы можете попробовать это. –
Да, но, как я уже сказал, у меня нет каких-либо правил, поэтому, кроме возможности, что Synology что-то изменила под капотом, это не приводит к тому, что я могу изменить, чтобы заставить его работать, как вы думаете? Вы имеете в виду опцию «Показывать больше информации при неудачном входе в систему»? Это означает, что вы получаете сообщение об ошибке при входе в DSM. Это не проблема, о которой я говорю: я хочу добавить атрибут userPassword, и я получаю ошибку нарушения Constraint в PHP. – SJDS