Estoy construyendo un servidor node.JS que interactúa con las API de Microsoft. El servidor se ocupa de varias aplicaciones creadas en Azure, donde cada aplicación tendrá configurado un ID de cliente y un secreto de cliente. Tengo una lógica que cambiará entre estas credenciales y consultará la aplicación de Microsoft adecuada según la organización del usuario solicitante. Mi preocupación es almacenar la identificación del cliente y los secretos del cliente.
Inicialmente, había planeado almacenarlos en un archivo de configuración YAML y leerlo, pero luego puede haber aplicaciones configuradas cuando el servidor se está ejecutando y también este método puede no ser eficiente cuando la cantidad de aplicaciones configuradas es alta.
Mi segunda opción es almacenar estas credenciales en una base de datos para poder consultarlas cuando sea necesario, pero de esta manera, la persona que agregue un nuevo cliente podría tener que pasar por una curva de aprendizaje para usar la base de datos y además no quiero exponer mi base de datos. contraseñas
¿Existe una práctica común para almacenar una gran cantidad de credenciales de aplicaciones confidenciales como esta?
Debe buscar en el almacenamiento secreto dedicado. En Azure puede usar el servicio Azure Vault, por ejemplo. AWS tiene el servicio de almacenamiento secreto, Google Cloud tiene Secret Manager.
Si usa kubernetes para su implementación, tiene un almacén de secretos de clúster integrado.
También puede usar un servidor/módulo de administración de secretos de terceros dedicado, como Hashicorp Vault o Keywhiz de Square.