Хранение имени пользователя и пароля в веб-приложении - PullRequest
2 голосов
/ 12 апреля 2019

У меня есть приложение SpringBoot 2.1.4.RELEASE RESTful Web Service, использующее Spring Initializer, встроенный Tomcat, шаблонизатор Thymeleaf и пакет в качестве исполняемого файла JAR, который использует сторонний REST API, защищенный JWT, поэтомуМне нужно хранить в WebApp простое имя пользователя и пароль для аутентификации в API, и я хотел бы знать, как лучше хранить учетные данные

1) в объекте HttpSession?

2) в БД как план текста?

Ответы [ 3 ]

2 голосов
/ 18 апреля 2019

Управление секретами следует выполнять вне приложения, желательно с помощью сторонних продуктов / API, поскольку создание нашей собственной надежной системы управления секретами может быть обременительным.

Oneтакой популярный и надежный продукт для секретного управления - HashiCorp Vault .

Поскольку вы уже используете Spring, обратитесь к этой превосходной статье о том, как хранилище можно использовать для управления секретами.

1 голос
/ 20 апреля 2019

Как и другие говорили, что лучше не хранить секреты в приложении.

Чтобы избежать сохранения каких-либо учетных данных пользователя, вы можете использовать стратегию, аналогичную OAuth2, где клиент запрашивает токен JWT непосредственно у провайдера API (обычно это логика Javascript в вашем интерфейсе), а затем запросы будущего клиента к вашему приложению передаютТокен JWT, который вы можете использовать для отправки запросов к API.

Таким образом, все учетные данные пользователя хранятся только на стороне клиента, предоставляя вашему приложению доступ к токену JWT, который, вероятно, истекает через некоторое время.

0 голосов
/ 17 апреля 2019

Лучше не хранить в своем приложении. Это интересный подход, если вы размещаете свое приложение на AWS. https://medium.com/poka-techblog/the-best-way-to-store-secrets-in-your-app-is-not-to-store-secrets-in-your-app-308a6807d3ed

...