Моему приложению .NET Core требуются подключения к ряду сторонних служб.
Некоторые из этих служб используют учетные данные для входа в систему и пароль, и это является проблемой.
Приложение является кроссплатформенным (Windows/ Linux) и одна кросс-база данных (из коробки она работает с MS SQL и PostgreSQL, и это может быть расширено).На самом деле это служба Windows, при работе в Windows, и демон, при работе в Linux.
Для целей масштабируемости нормально запускать несколько экземпляров приложения.Из-за этого настройки приложения, включая учетные данные, хранятся в базе данных.
Вопрос в том, как избежать хранения паролей в виде открытого текста.
Я не могу использовать какие-либо решения для конкретной платформы, такие какProtectedData
или Диспетчер учетных данных.Я также не могу хранить хешированные пароли, потому что они будут проверены сторонними сервисами.Теоретически, я могу использовать некоторый специфичный для БД код для шифрования / дешифрования паролей, если серверы баз данных имеют такую возможность.
Есть предложения?