用于存储多个应用程序凭据的节点 JS 模式
Node JS pattern to store multiple application credentials
我正在构建一个与 Microsoft API 交互的 node.JS 服务器。服务器处理在 Azure 中创建的多个应用程序,其中每个应用程序都将配置一个客户端 ID 和客户端密码。我有一个逻辑可以在这些凭据之间切换,并根据请求用户的组织查询适当的 Microsoft 应用程序。我关心的是存储客户端 ID 和客户端机密。
最初,我计划将这些存储在 YAML 配置文件中并读取它,但是当服务器为 运行 时可以配置应用程序,而且当服务器数量过多时,此方法效率不高配置的应用程序很高。
我的第二个选择是将这些凭据存储在数据库中,以便我可以在需要时查询它们,但是这样一来,添加新客户端的人可能必须通过学习曲线才能使用数据库而且我不需要想公开我的数据库密码。
是否有像这样存储大量敏感应用程序凭据的常见做法?
您应该研究专用的秘密存储。例如,在 Azure 中,您可以使用 Azure Vault 服务。 AWS 有 Secret Storage 服务,Google Cloud 有 Secret Manager。
如果您使用 kubernetes 进行部署,它有一个内置的集群秘密存储。
您还可以使用专用的第三方秘密管理器服务器/模块,例如来自 Square 的 Hashicorp Vault 或 Keywhiz。
我正在构建一个与 Microsoft API 交互的 node.JS 服务器。服务器处理在 Azure 中创建的多个应用程序,其中每个应用程序都将配置一个客户端 ID 和客户端密码。我有一个逻辑可以在这些凭据之间切换,并根据请求用户的组织查询适当的 Microsoft 应用程序。我关心的是存储客户端 ID 和客户端机密。
最初,我计划将这些存储在 YAML 配置文件中并读取它,但是当服务器为 运行 时可以配置应用程序,而且当服务器数量过多时,此方法效率不高配置的应用程序很高。
我的第二个选择是将这些凭据存储在数据库中,以便我可以在需要时查询它们,但是这样一来,添加新客户端的人可能必须通过学习曲线才能使用数据库而且我不需要想公开我的数据库密码。
是否有像这样存储大量敏感应用程序凭据的常见做法?
您应该研究专用的秘密存储。例如,在 Azure 中,您可以使用 Azure Vault 服务。 AWS 有 Secret Storage 服务,Google Cloud 有 Secret Manager。
如果您使用 kubernetes 进行部署,它有一个内置的集群秘密存储。
您还可以使用专用的第三方秘密管理器服务器/模块,例如来自 Square 的 Hashicorp Vault 或 Keywhiz。