Моя цель - безопасная аутентификация базы данных с помощью JDBC/Hibernate без сохранения паролей в текстовом формате. Обоснованы примеры кода. Я уже использую waffle для аутентификации пользователя, поэтому, если есть какой-то способ использовать учетные данные, полученные waffle от пользователя, и перенаправить их в БД, это будет хорошо.
Два вопроса:
- Каков рекомендуемый способ аутентификации нескольких хостов (клиент, веб-сервер и база данных - все разные машины) с tomcat/hibernate/ spring на веб-сервере, базе данных SQL и, очевидно, в браузере клиента?
- Я также соглашаюсь на способ использования одной учетной записи пользователя для аутентификации, если информация об учетной записи пользователя не хранится в обычном тексте в любом месте. Учетная запись пользователя будет иметь права на чтение и запись в БД.
Я нашел полезную информацию о подключении к SQL Server в этом потоке. Тем не менее, я ожидаю, что Tomcat будет работать под учетной записью по умолчанию, которая похожа на локальную систему или что-то в этом роде. Насколько я знаю, эта учетная запись не может использоваться для проверки подлинности Windows в базе данных.
Мое решение:
В конце концов я использовал подход, упомянутый в приведенном выше потоке. Вместо того, чтобы запускать службу Tomcat как Local System, она теперь работает как пользователь. У этого пользователя есть разрешение на доступ к базе данных. Мой конфигурационный файл спящего режима настроен следующим образом:
<property name="hibernate.connection.url">
jdbc:sqlserver://system:port;databaseName=myDb;integratedSecurity=true;
</property>
Тем, кто предоставил ответы
Я благодарен всем за помощь, и я попробую некоторые из техник, упомянутых в потоке. Моя проблема с некоторыми ответами заключается в том, что они требуют симметричного шифрования, требующего секретного ключа. Сохранение секретности ключа - это почти та же проблема, что и сохранение пароля в виде обычного текста.