В нашем приложении мне нужно попросить пользователя ввести учетные данные, такие как логин, apikey для сторонней системы, чтобы наше приложение могло выполнять вызов API к этой системе, используя учетные данные. Сторонняя система использует SOAP с логином/паролем или Oauth с APIKey для генерации токена и т. д.
Как лучше всего хранить конфиденциальные учетные данные пользователя?
В настоящее время у меня есть две базы данных на разных серверах, одна для хранения уникального значения соли для каждого клиента, а другая база данных для хранения зашифрованных данных, Rijndael Encryption, которая вычисляется с помощью значений соли. Каждый раз, когда я хочу сделать API-вызов сторонней системе, я извлекаю данные из обеих баз данных и расшифрованные данные в учетные данные для использования.
Из того, что я слышал, это не очень хорошая практика, пароль должен быть хеширован, а не зашифрован. но если я хэширую учетные данные, информация будет потеряна, и я никогда не смогу восстановить ее для вызова сторонней системы.