Хранить логин / пароль сторонних сервисов в базе данных - PullRequest
0 голосов
/ 06 декабря 2018

Моему приложению .NET Core требуются подключения к ряду сторонних служб.
Некоторые из этих служб используют учетные данные для входа в систему и пароль, и это является проблемой.

Приложение является кроссплатформенным (Windows/ Linux) и одна кросс-база данных (из коробки она работает с MS SQL и PostgreSQL, и это может быть расширено).На самом деле это служба Windows, при работе в Windows, и демон, при работе в Linux.

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

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

Я не могу использовать какие-либо решения для конкретной платформы, такие какProtectedData или Диспетчер учетных данных.Я также не могу хранить хешированные пароли, потому что они будут проверены сторонними сервисами.Теоретически, я могу использовать некоторый специфичный для БД код для шифрования / дешифрования паролей, если серверы баз данных имеют такую ​​возможность.

Есть предложения?

1 Ответ

0 голосов
/ 06 декабря 2018

Возможно, вы не сможете сделать это, поскольку сторонним службам потребуется изменить свои реализации - может быть, вы могли бы использовать асимметричное шифрование?Вы зашифруете пароль открытым ключом определенной стороны и сохраните его в БД.Каждая сторона расшифровывает его, а затем проверяет учетные данные.

Однако, как я уже сказал, вероятно, вы не сможете сделать это таким образом :), но теперь я знаю о каком-либо шифровании "между базами данных"

Другой способ - может быть, хранить пароль в переменной среды?(как Windows, так и Linux поддерживает это)

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