Отправить пароль шифрования на LDAP в Java - PullRequest
0 голосов
/ 19 октября 2018

У меня есть проблема, и я не знаю, как ее решить.

Я загружаю зашифрованный пароль (SSHA) из текстового файла, и мне нужно добавить пользователя с этим паролем из исходного кода на Java,

Пример из файла: e1NTSEF9Ukd6ZEZyanZBZlJGMGs3eGFDOGZxQ3U3QlozcUZXRGJoeWIyS0E9PQ ==

Реальный пароль: 123

Пример кода не работает, если я хочу:потому что мы можем отправить только реальный пароль?И проблема в том, что это одностороннее шифрование и LDAP также не сможет его расшифровать?

1 Ответ

0 голосов
/ 20 октября 2018

Номер ошибки и текст с сервера LDAP будут поучительными;но в общем случае выделяются две вещи:

(1) Предполагая, что у пользователя уже есть пароль, вы изменяете существующий атрибут, не добавляя атрибут.Если вы попытаетесь добавить значение в отдельный однозначный атрибут, у которого уже есть значение, или если вы попытаетесь добавить значение в уже существующий многозначный атрибут, вы получите ошибку ldap 20. To modify существующий атрибут будет выглядеть примерно так:

LDAPModificationSet attributes = new LDAPModificationSet();
LDAPAttribute attrUserPassword = new LDAPAttribute("userPassword", "{SSHA}"+encryptedPSWD);
attributes.add(LDAPModification.REPLACE, attrUserPassword);

(2) Некоторые каталоги не позволяют использовать «предварительно закодированные» пароли по умолчанию.Это связано с тем, что политики паролей не могут быть применены к неизвестному паролю (т. Е. Откуда мне знать, что этот пароль содержит не менее восьми символов, содержит специальный символ и не содержит слова из словаря?).Серверы Oracle Unified Directory, которыми я управляю, в этом случае возвращают ошибку 53 вместе с текстом «Предварительно закодированные пароли не разрешены для атрибута пароля userPassword.», Но другие серверы каталогов могут возвращаться с использованием другого кода (53 довольноуниверсальный код, который просто означает что-то в конфигурации сервера, не позволяет завершить действие).Как сортировать это зависит от сервера LDAP - у меня есть логика allow-pre-encoded-passwords Boolean в политике паролей.Обычно я устанавливаю «true» для пользователей массового импорта, затем возвращаю значение «false», чтобы разработчики приложений не могли обойти наши политики паролей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...