Configuration

Afficher en Markdown

Configuration

Configuration de l’application

La configuration de l’application peut être modifiée via des propriétés de configuration. Vous pouvez spécifier les propriétés de configuration à l’aide d’arguments de ligne de commande commençant par -- comme décrit précédemment.

CléValeur par défautDescription
clientFolderPath${user.home}/sgs-rm-data/clients/Dossier où se trouvent les fichiers de configuration client. En cluster, ce dossier peut être partagé entre les nœuds.
requestFolderPath${user.home}/sgs-rm-data/requests/Dossier où sont stockées les demandes. En cluster, ce dossier DOIT être partagé entre les nœuds.
requestFolderCleanupRate900000Fréquence de nettoyage des demandes (toutes les 15 minutes par défaut).
tempFolderPath${user.home}/sgs-rm-data/temp/Dossier temporaire. Ce dossier NE DOIT PAS être partagé entre les nœuds d’un cluster.
queueFolderPath${user.home}/sgs-rm-data/queues/Dossier où sont stockés les messages mis en file d’attente. En cluster, ce dossier DOIT être partagé entre les nœuds.
signedDataFolderPathsigned_data/Dossier utilisé pour stocker les données signées dans une archive ZIP
finishJobstrueActive les tâches de finalisation (finish jobs) sur cette instance.
adminsPasswdPath${user.home}/sgs-rm-data/admins.passwdChemin vers le fichier admins.passwd.
confScanRate30000Fréquence de détection des changements de configuration (toutes les 30 secondes par défaut).
uiUrlURL vers les fichiers statiques de l’interface, pour le développement. Seules les URLs localhost sont autorisées.
logging.file.name${user.home}/sgs-rm-data/logs/rm.logChemin vers le fichier de log.
server.port8881Port d’écoute du serveur.
proxyHostLe nom d’hôte du serveur proxy, le cas échéant.
proxyPort80Le numéro de port du serveur proxy.
proxyUserLe nom d’utilisateur pour l’authentification au proxy.
proxyPasswordLe mot de passe utilisateur pour l’authentification au proxy.
tsaUrlQualifiedhttps://tsa.sunnystamp.com/tsaServeur d’horodatage conforme à la RFC 3161.
tsaUserNameNom d’utilisateur du serveur d’horodatage.
tsaPasswordMot de passe du serveur d’horodatage.
validateDocumenttrueValide le document signé
server.ssl.enabledfalseIndique s’il faut activer HTTPS.
server.ssl.keyStoreTypeJKSType de keystore à utiliser pour configurer HTTPS. Valeurs possibles : JKS, PKCS12.
server.ssl.key-storeChemin vers le keystore à utiliser pour configurer HTTPS
server.ssl.key-store-passwordMot de passe du keystore à utiliser pour configurer HTTPS
server.ssl.key-aliasAlias de la clé à utiliser pour configurer HTTPS
server.ssl.key-passwordMot de passe de la clé à utiliser pour configurer HTTPS
spring.codec.max-in-memory-size2000000Taille maximale des buffers en RAM
helios.namespaceXADES_122Namespace de configuration Helios
helios.policy.digestAlgorithmSHA256L’algorithme d’empreinte de la politique de signature XAdES détachée
helios.policy.id1.2.250.1.131.1.5.18.21.1.7L’OID de la politique de signature Helios
helios.policy.digestValueGbP1WjbTrHp6h9zlsz5RN7AqkJbnDNDOAQzgm1qzIJ4=L’empreinte encodée en base64 de la politique de signature Helios
helios.policy.urihttps://www.collectivites-locales.gouv.fr/files/files/2.%20G%C3%A9rer%20les%20finances%20publiques%20locales/6.%20La%20d%C3%A9mat%C3%A9rialisation%20des%20comptes%20locaux%20et%20l%27open%20data/D%C3%A9mat%20comptable/Le%20PES/ps\_helios\_dgfip.pdfL’URL de la politique de signature Helios
helios.canonicalizationMethod.keyInfoEXCLUSIVECanonicalisations
xadesDetached.namespaceXADES_132Namespace de configuration XAdES détachée
xadesDetached.policy.digestAlgorithmSHA256L’algorithme d’empreinte de la politique de signature XAdES détachée
xadesDetached.policy.id1.2.250.1.115.200.300.4L’OID de la politique de signature XAdES détachée
xadesDetached.policy.digestValuelLKFDAaR8NxNtrf1cIlmULQgp1GS+7igKN8p7pqy3G0=L’empreinte encodée en base64 de la politique de signature XAdES détachée
xadesDetached.policy.urihttps://sites.banque-france.fr/igc/signature/ps/ps\_1\_2\_250\_1\_115\_200\_300\_4.pdfL’URL de la politique de signature XAdES détachée
xadesDetached.canonicalizationMethod.keyInfoEXCLUSIVECanonicalisations
cades.policy.digestAlgorithmSHA256Configuration CAdES : l’algorithme d’empreinte de la politique de signature CAdES
cades.policy.id1.2.250.1.115.200.300.4L’OID de la politique de signature CAdES
cades.policy.digestValuelLKFDAaR8NxNtrf1cIlmULQgp1GS+7igKN8p7pqy3G0=L’empreinte encodée en base64 de la politique de signature CAdES
cades.policy.urihttps://sites.banque-france.fr/igc/signature/ps/ps\_1\_2\_250\_1\_115\_200\_300\_4.pdfL’URL de la politique de signature CAdES
cadesDetached.policy.digestAlgorithmSHA256Configuration CAdES détachée : l’algorithme d’empreinte de la politique de signature CAdES détachée
cadesDetached.policy.id1.2.250.1.115.200.300.4L’OID de la politique de signature CAdES détachée
cadesDetached.policy.digestValuelLKFDAaR8NxNtrf1cIlmULQgp1GS+7igKN8p7pqy3G0=L’empreinte encodée en base64 de la politique de signature CAdES détachée
cadesDetached.policy.urihttps://sites.banque-france.fr/igc/signature/ps/ps\_1\_2\_250\_1\_115\_200\_300\_4.pdfL’URL de la politique de signature CAdES détachée
logging.level.eu.europa.esig.dss.crl.stream.impl.CRLUtilsStreamImplERRORSupprime les traces/avertissements CRL concernant une signature CRL incorrecte

${user.home} est le dossier personnel de l’utilisateur exécutant l’application, généralement /home/sunnystamp si vous avez créé un service systemd.

Veuillez noter que les modifications de la configuration de l’application ne peuvent PAS être appliquées sans redémarrer l’application.

Configuration client

Le fichier client.properties est un fichier de propriétés Java qui contient la configuration d’une application demandeuse (requester) spécifique.

Une nouvelle application demandeuse peut être ajoutée simplement en créant un nouveau dossier dans le dossier client et en y plaçant un fichier client.properties. Par exemple, vous pouvez créer un client avec l’ID 001 en créant le fichier ${clientFolderPath}/001/client.properties avec le contenu suivant :

apiKey=5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5
sharedPassphrase=QBZfLKb8tcPitybbJtBbWKqM
emUrl=https://evidence-manager.lex-persona.com/

Le chemin du dossier client est défini dans la configuration de l’application. Pensez à randomiser les clés contenues dans ces fichiers et à en restreindre l’accès.

Notez que les modifications apportées aux fichiers client.properties sont chargées automatiquement sans avoir besoin de redémarrer l’application, selon la propriété de configuration confScanRate.

Notez également que certaines parties de la configuration dans client.properties doivent être fournies par Goodflag. Veuillez nous contacter pour obtenir de l’aide.

CléValeur par défautDescription
apiKeychange_meClé API autorisée. Une clé API robuste peut être générée avec la commande Unix suivante : base64 /dev/urandom
sharedPassphrasechange_mePhrase secrète partagée, fournie par Goodflag.
requestTtl3600000Durée de vie de la demande (1h par défaut).
longPollingTimeout15000Délai d’expiration pour les requêtes HTTP de long polling (15 secondes par défaut).
emUrlhttp://localhost:8883/URL de l’Evidence Manager. Doit utiliser HTTPS.
tsaUrlhttp://tsa.sunnystamp.com/tsaServeur d’horodatage conforme à la RFC 3161.
webhookUrlsListe d’URLs de webhook séparées par des espaces.
webhookReattemptDelays1 2 3 5 8 13Liste des délais avant nouvelle tentative des appels webhook, séparés par des espaces (en minutes).
params.localeLa locale à imposer dans la page de consentement. Si non renseignée, la locale du navigateur sera utilisée.
params.signerSubjectL’identifiant du signataire attendu. Utilisé pour valider l’identité du signataire en mode signature serveur.
params.signerEmailL’e-mail du signataire attendu. Utilisé pour valider l’identité du signataire en mode signature serveur.
params.signerPhoneNumberLe numéro de téléphone du signataire attendu. Utilisé pour valider l’identité du signataire en mode signature serveur.
params.signerGivenNameLe prénom du signataire attendu. Utilisé pour valider l’identité du signataire en mode signature serveur.
params.signerFamilyNameLe nom de famille du signataire attendu. Utilisé pour valider l’identité du signataire en mode signature serveur.
params.signerCountryLe pays du signataire attendu. Utilisé pour valider l’identité du signataire en mode signature serveur.
params.keystoreTypesListe de types de keystore séparés par des virgules à utiliser par Odisia desktop en mode signature locale. Valeurs possibles : PKCS11, OS.
params.truststoreTypesListe de types de truststore séparés par des virgules à utiliser par Odisia desktop en mode signature locale. Valeurs possibles : PKCS11, OS.
params.certificateFilterDataUtilisé pour filtrer le certificat du signataire en mode signature locale. Le contenu doit être au format XML et conforme au schéma LPCertFilter v2.0.
params.certificateFilterExpressionUtilisé pour filtrer le certificat du signataire en mode signature locale. Exemple : all_filter.
params.certificateRgsLevelsListe de niveaux RGS autorisés pour le certificat du signataire en mode signature locale, séparés par des virgules. Valeurs possibles : RGS1, RGS2, RGS3.
params.desktopWindowXCoordonnée X de la fenêtre Odisia desktop. Si non renseignée, la fenêtre sera centrée horizontalement.
params.desktopWindowYCoordonnée Y de la fenêtre Odisia desktop. Si non renseignée, la fenêtre sera centrée verticalement.
params.mobileSkinThème (skin) à utiliser dans Odisia mobile. Valeurs possibles : purple, golden, black.
params.bypassViewerfalsePermet de désactiver l’étape de visualisation des documents si aucun d’entre eux ne l’exige. Ignoré si au moins un document nécessite une visualisation obligatoire. Valeurs possibles : true, false.
profiles.default.signatureTypeType de signature. Valeurs possibles : pades, xades, cades, helios, auto, attachment. Utilisez auto pour sélectionner automatiquement le type de signature selon le type de contenu. Utilisez attachment pour désactiver la signature du document.
profiles.default.signatureLevelNiveau de signature. Valeurs possibles : b, t, lt, lta.
profiles.default.forceScrollDocumentfalseIndique si le signataire sera obligé de faire défiler le document jusqu’en bas avant de signer. Uniquement pour les types de contenu pris en charge (par exemple PDF et XML).
profiles.default.signerLocationCityLa ville où la signature a lieu.
profiles.default.signerLocationPostalCodeLe code postal où la signature a lieu.
profiles.default.signerLocationCountryLe pays où la signature a lieu.
profiles.default.signerRolesListe de rôles du signataire, séparés par des virgules.
profiles.default.pdfSignatureFieldIdID d’un champ de signature existant dans le PDF.
profiles.default.pdfSignatureImagePagePage du PDF où l’image de signature apparaîtra, en commençant à 1. Utilisez un nombre négatif pour partir de la dernière page. Ignoré si pdfSignatureFieldId est défini.
profiles.default.pdfSignatureImageXPosition de l’image de signature dans la page du PDF (axe X). Ignoré si pdfSignatureFieldId est défini.
profiles.default.pdfSignatureImageYPosition de l’image de signature dans la page du PDF (axe Y). Ignoré si pdfSignatureFieldId est défini.
profiles.default.pdfSignatureImageWidthLargeur (en pixels) de l’image de signature dans la page du PDF. Ignoré si pdfSignatureFieldId est défini.
profiles.default.pdfSignatureImageHeightHauteur (en pixels) de l’image de signature dans la page du PDF. Ignoré si pdfSignatureFieldId est défini.
profiles.default.pdfSignatureImageTextLe texte à inclure dans l’image de signature, dans le cas d’une signature PDF visible. Le modèle peut inclure des variables optionnelles comme {{date}}, {{signerOrganization}}, {{signerOrganizationTitle}} et la variable obligatoire {{signerName}}. La date de signature peut être formatée à l’aide de la classe Java SimpleDateFormat, par exemple : {{date format='dd-MM-YYYY'}}.
profiles.default.pdfSignatureImageTextColorCette propriété permet de spécifier la couleur du texte dans l’image de signature.
profiles.default.pdfSignatureImageTextSizeCette propriété permet de définir la taille du texte dans l’image de signature.
profiles.default.pdfHandwrittenSignatureImageDemande au signataire d’inclure une représentation graphique de sa signature.
profiles.default.xmlSignatureXpathLocationXPath du nœud parent de la signature XML.
profiles.default.pdfDefaultSignatureImageImage de signature par défaut, encodée en base64
profiles.default.xmlSignedInfoCanonicalizationMéthode de canonicalisation pour le SignedInfo XML.
profiles.default.xmlSignedPropertiesCanonicalizationMéthode de canonicalisation pour les propriétés signées XML.
profiles.default.maxDocumentSizeInMBTaille maximale de document autorisée (en Mo). Si non renseignée, la valeur sera de 10 Mo.

Interfaces d’administration

Les interfaces d’administration (API et interface graphique) peuvent être activées simplement en déclarant au moins un utilisateur administrateur dans le fichier de configuration admins.passwd. Le chemin du fichier admins.passwd est défini dans la configuration de l’application.

Le fichier admins.passwd permet de déclarer des utilisateurs administrateurs avec leurs hachages de mot de passe respectifs, à la manière Unix. Par exemple, voici comment déclarer deux utilisateurs administrateurs (john et jack) dans le fichier admins.passwd :

john:$6$rounds=100000$GAOcXXTBkR0OcaQk$bnCMTTOWc5jw5fQ7VziaHQEpUVM/KHWKs5RUcA8blRtehYKanOS311GeGdo6TEa9okLw2xF4jw.3doxUPPY6o0
jack:$6$rounds=100000$4DUwSzeHJRevBuKW$3vfincGEEAMCRVfQwRACWgUwTQjokUQcMiCsmxtXlvsQAVApka.GJ8xkfARXQzsjxITUQ16j6YzrdUvMyJcNz/

Utilisez l’une des commandes Unix suivantes pour produire votre hachage de mot de passe :

# Avec mkpasswd :
mkpasswd -m sha-512
# Ou avec openssl :
openssl passwd -6 -salt rounds=100000\$`head -c12 /dev/urandom | openssl base64`

Une fois les utilisateurs administrateurs déclarés, l’interface graphique d’administration est accessible depuis un navigateur web à l’URL suivante :

https://{hostname}:{port}/admin

Notez qu’il est fortement recommandé de :

  • désactiver les interfaces d’administration sur les instances accessibles aux utilisateurs standards,
  • activer les interfaces d’administration sur les instances restreintes aux administrateurs, dans un réseau à accès limité. Veuillez consulter les prérequis de clustering pour un déploiement multi-instances.