Как хранить пароль на сервере ldap, используя Java

1

Мне нужно сохранить пароль на сервере ldap с помощью java-кода. Мне нужно указать любой из методов шифрования, доступных из ldap при хранении пароля. Как это сделать?

Теги:

2 ответа

1

1) Сохранить пароль в char [] вместо String Строки неизменяемы в Java, и вы не можете стереть содержимое String, потому что любая модификация в String приведет к созданию новой String. Также строки кэшируются в пуле String, что создает угрозу безопасности для раскрытия пароля в текстовом виде любому, у кого есть доступ к памяти java-приложения. даже авария, подобная дампу ядра java-приложения, создание дампа памяти в /tmp может помещать пароли в реальную угрозу. используя char [], вы можете стереть конюшни, установив его пустым или любым другим символом, что снижает риск безопасности при открытии пароля. См. Почему char char лучше, чем String для хранения пароля в Java для более подробной информации

2) Всегда используйте зашифрованный пароль в приложении. Это еще один шаг от более раннего совета, вместо того, чтобы хранить пароль или конфиденциальную информацию в открытом тексте, всегда сохраняйте их в зашифрованном или хешированном формате. Это снижает риск разоблачения пароля любому незнакомому человеку, у кого есть доступ к памяти приложения во время выполнения проверки подлинности.

Подробнее: http://javarevisited.blogspot.com/2012/05/best-practices-while-dealing-with.html#ixzz3KGjhHlps

new BasicAttribute("password", passValue)

я думаю, мы не хотим указывать..it автоматически шифровать в конфигурацию ldap

  • 0
    какой лад ру
0

Когда вы вставляете новую запись в LDAP через JNDI, вам нужно создать запись, указав всю ее иерархию объектов. Для inetOrgPerson пароль имеет атрибут под названием userPassword (необязательный атрибут в объекте "человек" в основной схеме.

Вы должны создать несколько атрибутов (в объекте BasicAttributes), как в соответствии с схемами (включая мета атрибуты, такие как NAME, SUP, STRUCTURAL и т.д., Ссылаться на URLS для структуры схемы) в вашей схеме case, core и inetOrgPerson:

http://www.zytrax.com/books/ldap/ape/inetorgperson.html http://www.zytrax.com/books/ldap/ape/core-schema.html#organizationalperson

После того как вы подготовили объект, пользователь context.rebind

ПРИМЕЧАНИЕ. Все реализации LDAP различны, и вы можете получить некоторые неожиданные результаты, например, в приведенном выше методе вы получите дополнительные атрибуты (рабочие атрибуты без LDAP) в связанном объекте в Apace DS. Обходной путь заключается в использовании API Apache LDAP (см. Http://directory.apache.org/api/). В MS ActiveDirectory вы можете столкнуться с другими проблемами. JNDI хорошо читает записи, но не очень хорош для записи/ввода записей

Ещё вопросы

Сообщество Overcoder
Наверх
Меню