代码之家  ›  专栏  ›  技术社区  ›  Louis

在Java中存储令牌/密码的最佳实践

  •  0
  • Louis  · 技术社区  · 2 年前

    我正在开发一个与REST API交互的Java应用程序。为了与这个API通信,我必须使用令牌,所有这些令牌都是敏感数据,我不能在代码中写入。

    因此,我正在寻找一种类似配置文件的方法来存储令牌并访问它。

    目前,我用我所有的令牌创建了一个XML文件,并进行了读取,但我认为这不是正确的方法。

    我和IDEA、JDK-17、Maven项目合作

    谢谢你的帮助!

    1 回复  |  直到 2 年前
        1
  •  1
  •   Ebi    2 年前

    根据我到目前为止所观察到的情况,我认为这个XML文件是一个配置文件,或者类似于在运行时管理环境变量的文件。但是,您需要知道,任何敏感值都不应以纯文本形式存储在存储库、数据库、容器等中。

    一种实用的方法是将加密的敏感值存储在可靠和安全的位置,并在部署到生产环境之前对其进行解密。

    如果您希望加密存储这些令牌,可以使用github encypted-secret 特色然后,在部署之前,使用CI管道重建此XML,并让github在构建期间处理值的解密(请参阅) this 例如)。另一个例子是,可以使用AWS secret-manager 将docker容器部署到ECS时,对所有值进行加密,然后将这些值注入容器中。

    这种方法的优点包括防止令牌泄漏,通过简单地替换Gtihub、AWS等中的值并创建一个新部署,提供轻松的密钥旋转。

        2
  •  -1
  •   George Dimitriou    2 年前

    您可以检查KeyClope服务器: https://www.keycloak.org/