Шаблон JS узла для хранения нескольких учетных данных приложения

#javascript #node.js #architecture #environment-variables #microsoft-graph-api

Вопрос:

Я создаю узел.Сервер JS, который взаимодействует с API Microsoft. Сервер работает с несколькими приложениями, созданными в Azure, где для каждого приложения будут настроены идентификатор клиента и секрет клиента. У меня есть логика, которая будет переключаться между этими учетными данными и запрашивать соответствующее приложение Microsoft в зависимости от организации запрашивающего пользователя. Моя забота заключается в хранении идентификатора клиента и секретов клиента.

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

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

Существует ли обычная практика хранения большого количества конфиденциальных учетных данных приложений, подобных этому?

Ответ №1:

Вам следует заглянуть в специальное секретное хранилище. В Azure вы можете, например, использовать службу хранилища Azure. У AWS есть секретный сервис хранения, у Google Cloud есть Секретный менеджер.

Если вы используете kubernetes для развертывания, в нем есть встроенное хранилище секретов кластера.

Вы также можете использовать выделенный сторонний сервер / модуль секретного менеджера, такой как хранилище Hashicorp или Keywhiz от Square.