Аутентификация в спящем режиме без паролей, хранящихся в виде обычного текста

Моя цель - аутентифицироваться в базе данных с помощью JDBC / Hibernate безопасным способом, без хранения паролей в виде обычного текста. Примеры кода приветствуются. Я уже использую waffle для аутентификации пользователя, поэтому, если бы существовал способ использовать учетные данные, которые были получены от пользователя, и перенаправить их в БД, это было бы хорошо.

Два вопроса:

  1. Что такое рекомендуемый способ выполнения многопереходной аутентификации (клиент, веб-сервер и база данных - разные машины) с помощью tomcat / hibernate / spring на веб-сервере, база данных sql и, очевидно, клиентский браузер?
  2. Я бы также согласился на способ использования одной учетной записи пользователя для аутентификации, если информация этой учетной записи не хранилась в виде обычного текста где-либо. Учетной записи пользователя потребуются права чтения и записи в БД.

Я нашел полезную информацию о подключении к SQL Server в этом потоке . Однако я ожидаю, что Tomcat будет работать под учетной записью по умолчанию, такой как Local System или что-то в этом роде. Насколько мне известно, эту учетную запись нельзя использовать для проверки подлинности Windows в базе данных.

Мое решение :

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

    
jdbc:sqlserver://system:port;databaseName=myDb;integratedSecurity=true;

Тем, кто предоставил ответы

Я благодарен всем за помощь, и я опробую некоторые методы, упомянутые в теме. Моя проблема с некоторыми ответами заключается в том, что они требуют симметричного шифрования, для которого требуется секретный ключ. Хранение ключа в секрете - почти такая же проблема, как и сохранение пароля в виде обычного текста.

15
задан Community 23 May 2017 в 12:26
поделиться