В общем, хотя атрибуты могут выглядеть как атрибуты в любой системе LDAP, атрибут пароля почти всегда является особым случаем. Возможно, это ограничено сервером LDAP как особый случай. Возможно, ACL защитят его. Возможно, оно доступно для записи, но не для чтения.
Часто на самом деле есть несколько атрибутов пароля (в AD есть unicodePassword и userPassword), и это зависит от того, какой из них использовать. В Novell/NetIQ eDirectory есть userPassword, который зависит от того, как вы сконфигурированы, от того, какое значение находится под ним (пары ключей RSA, nspmPassword или простой пароль, что является еще более странным случаем, чем простой атрибут, так как он хранится по частям через несколько атрибутов)
Некоторые серверы LDAP позволяют связывать с хеш-значением, которое соответствует сохраненному хеш-значению, и хеш-значение может быть восстановлено, но не обратимо.
Но ключ в том, что это не должно иметь значения. Поскольку каждый сервер LDAP отличается от других, вам необходимо использовать стандартный подход к паролям LDAP, который заключается в том, чтобы попытаться выполнить привязку как пользователь с предоставленными DN и паролем. И если они не предоставляют DN, выполните поиск uid = Username или cn = username или любого другого атрибута именования, чтобы найти полное DN.
Наконец, имейте в виду, что стандарт LDAP говорит, что связывание с пустым паролем будет успешным, но как анонимное соединение. Поэтому вы должны быть уверены, что пароли, которые вы разрешаете, не являются пустыми, иначе вы получите успешное связывание и, возможно, невольно впустите кого-то.