Можно ли информировать пользователя о чем-то большем, чем просто о «нарушении ограничений», когда он пытается изменить свой пароль?
Что-то вроде «пароль должен состоять из 7 или более символов», вместо того, чтобы оставлять их угадывать?
OpenDJ
решение1
Какой у вас LDAP-сервер?
Err 19, LDAP_CONSTRAINT_VIOLATION — указывает, что значение атрибута, указанное в операции изменения, добавления или изменения DN, нарушает ограничения, наложенные на атрибут. Ограничение может быть размером или содержимым (только строка, без двоичных данных).
Большинство серверов LDAP уже предоставляют достаточно информации о недостающей части в пароле или атрибуте. Не могли бы вы проверить 389 Directory server или RHDS. Пример из 389-ds
[17/Aug/2012:22:24:59 +0000] conn=85 op=14 RESULT err=19 tag=103 nentries=0 etime=0
[17/Aug/2012:22:24:59 +0000] conn=85 op=14 MOD dn="uid=redhat,ou=Users,dc=example,dc=com", within password minimum age
решение2
Вам необходимо изменить код, чтобы использовать расширенный запрос на изменение пароля LDAP, который предоставляет подробные коды ошибок в своем ответе.
решение3
Старый вопрос, но у нас была именно эта проблема сегодня с внешним веб-приложением для паролей самообслуживания. Оказалось, что веб-приложение SSP использовало SSHA для пароля до того, как он достигал 389-DS, таким образом, 389-DS получал хэш.
Веб-приложению SSP необходимо оставить пароль открытым и позволить 389-DS зашифровать его самостоятельно при записи.(Веб-приложение SSP в любом случае использует TLS 1.2 с AES-256 для связи с LDAP, поэтому открытый пароль так же безопасен, как и большинство HTTPS-сайтов при передаче данных.)
решение4
Не рекомендуется предоставлять более описательное сообщение. Более описательный текст в ответе LDAP просто поможет злоумышленнику.