Хранить в БД api ключи для стороннего сервиса - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть приложение Java, и у меня есть пользователи, подключающиеся к нему с помощью имени пользователя и пароля. Я использую сервисы Amazon для хостинга и всего остального в приложении.

Я хочу сделать повторный вызов, чтобы получить некоторые данные от сторонней службы, и мне нужно, чтобы пользователь ввел для этого ключ API. У каждого пользователя свой API-ключ.

Я не хочу, чтобы пользователь каждый раз вводил ключ API.

Я не хочу хранить ключ API KEY как есть в БД, поэтому я попытался найти его в Google, но я не нашел ни одного про \ элегантного решения.

Есть ли у вас какие-либо идеи, кроме шифрования и дешифрования ключа API с использованием какого-либо алгоритма?

1 Ответ

0 голосов
/ 13 ноября 2018

Если вы хотите сохранить ключи API в таблице базы данных, то на самом деле не существует альтернативы шифрованию этих данных для их защиты. Однако существует альтернатива, которая не предполагает хранения ключей в базе данных. Вместо этого вы можете использовать пользовательские токены JWT. С помощью JWT, когда пользователь входит в систему или иным образом должен будет проходить аутентификацию, вы также можете предложить ему ввести ключ API. Затем вы выдадите пользователю токен, который содержит ключи API в разделе утверждений. Всякий раз, когда пользователь обращается к вашему сервису с намерением вызвать API, передается JWT, и сервер может извлечь ключ API.

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

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