Secrets

Pour que les secrets restent secrets

Il est déconseillé de stocker des mots de passe en clair dans des fichiers de configuration. Afin d’éviter de stocker les différents secrets en clair dans les fichiers core.properties et gui.properties, FlowerDocs fourni un mécanisme de chiffrement des secrets.


Afin d’indiquer à FlowerDocs que la valeur d’une propriété est chiffrée, elle doit être définie telle que ENC(<valeur chiffrée>). Une propriété chiffrée est déchiffrée au démarrage de l’application à l’aide de son secret principal (secret). Ainsi un chiffrement différent peut être défini pour chacune des applications.

L’application ne peut pas démarrer si une propriété, indiquée comme étant chiffrée, ne peut être déchiffrée.


Le chiffrement de propriété peut être réalisé de plusieurs façons à partir d’un secret principal :


<clm> string encrypt --secret=<secret> --password=<propriété à chiffrer>

curl -X POST \
  <core>/rest/encrypt \
  -H 'token: <token>' \
  -d {{toEncrypt}}

Le secret de chacune des applications peut être défini de différentes manières :

  • comme variable d’environnement
  • comme propriété de la JVM
  • dans les fichiers core.properties et gui.properties (déconseillé)


Il est conseillé de définir, avec cette méthode, les propriétés token.key et system.admin.password à minima