...
Fichiers de configuration
Avertissement |
---|
Le fichier application.yml présent dans les sources est un exemple de configuration basée sur environnement comportant un LDAP et un gestionnaire de groupes (grouper utilisé par l'Université de Rouen en l’occurrence). Les mentions de "for.esup-signature.xxxx" correspondent aux noms des groupes fournis par grouper. Cela ne veut pas dire que grouper soit obligatoire ni même que les noms de groupes doivent respecter ce format. Lorsque vous utiliser maven pour compiler ou lancer l'application c'est le fichier situer dans src/main/resources/application.yml qui est pris en compte. Il est possible de placer le fichier application.yml ailleurs sur le système de fichier en précisant son emplacement à l'aide de l'option -Dspring.config.location=/<DIR>/application.yml lors de l'utilisation de la commande mvn |
...
Bloc de code | ||||
---|---|---|---|---|
| ||||
global: root-url: https://esup-signature.univ-ville.fr # Adresse d'accès à votre instance domain: univ-ville.fr nexu-url: https://localhost:9895 nexu-version: 1.23-SNAPSHOT nexu-download-url: /downloads/nexu-bundle.zip hide-wizard: false # Désactiver le bouton "Assistant de création de demande" hide-auto-sign: false # Désactiver le bouton "Auto signature" hide-send-sign-request: false # Désactiver le bouton "Demander une signature" hide-wizard-except-roles: # Rôles faisant exception à la règle hide-wizard précédente hide-auto-sign-except-roles: # Rôles faisant exception à la règle hide-auto-sign précédente hide-send-sign-except-roles: # Rôles faisant exception à la règle hide-send-sign précédente # archive-uri: smb://serveur_fichier/archives # Chemin pour l'archivage des documents # delay-before-cleaning : 0 # Délai en jours après signature pour archivage et nettoyage des documents (désactivé si commenté) enable-su: false # Activer ou non le switch user enable-splash: true # Activer ou non le message d'accueil de la première connexion application-email: esup.signature@univ-ville.fr # Adresse email du support qui apparaitra dans l'aide hours-before-refresh-notif: 24 # Nombre d'heures entre deux relances utilisateur share-mode: 3 # Valeur de 0 à 3 : 0 = délégations désactivées, 1 = force le mode signature du délégué, 2 = force signature du mandant, 3 = choix du mode possible par l'utilisateur return-to-home-after-sign: false # Forcer le retour à la page d'accueil après signature infinite-scrolling: true # Activer l'infinite scrolling sur le tableau de bord, sinon bascule sur de la pagination signed-suffix: "_signé" # suffix ajouté au fichiers signés naming-template: "[title]" # Template de renommage des fichiers enable-scheduled-cleanup: false # Activer ou non l’archivage et le nettoyage automatique. false par défaut trash-keep-delay: -1 # Délai de conservation dans la corbeille en jours (-1 non actif) disable-cert-storage: false # Activer/Désactiver la possibilité de stocker des certificats utilisateurs nb-days-before-deleting: -1 # Nombre de jours après alerte pour suppression des demandes en attente (-1 non actif) nb-days-before-warning: -1 # Nombre de jours avant alerte de suppression pour les demandes en attente (-1 non actif) enable-captcha: false # Activer/Désactiver la detection de robot à la connexion ;-) max-upload-size: 52428800 # Taille maximum des uploads de fichiers en bytes only-pdf: false # True : restreindre l'upload aux seuls PDF export-attachements: true # Exporter les pièces jointes (si actif, l'export sera un dossier contenant le document signé ainsi que les PJ) seal-certificat-driver: /lib/pkcs11/libIDPrimePKCS11.so # Pilote du certificat cachet dans le cas d'un PKCS11 seal-certificat-file: /opt/cert.p12 # Emplacement du certificat cachet dans le cas d'un PKCS12 seal-certificat-pin: ****** # Code pin du certificat cachet seal-certificat-type: PKCS11 # Type du certificat PKCS11 ou PKCS12 sealAllDocsseal-all-docs: false # Appliquer le cachet sur toutes les demandes terminées shib-users-domain-white-list: # Whitelist des domaines authorisés à obtenir le ROLE_USER pour les connexions Shibboleth - univ-ville.fr - inv-univ-ville.fr send-postit-by-email: false # Envoyer un email au créateur de la demande lors de l’ajout d’un postit send-creation-mail-to-viewers: false # Envoyer un email aux observateurs à la création d’une demande smsRequired sms-required: true # Imposer la double authentification par SMS pour les externes csv-quote: "\"" # Quote CSV csv-separator: ";" # Séparateur CSV otp-validity: 1 # Durée de validité des liens de OTP en minutes authorized-sign-types: certsign, nexuSign # Liste des types de signature autorisés watermark-for-externals: true # Activer/Desactiver le watermark pour les utilisateurs externes |
Pour la gestion des rôles voir : Documentation administrateur#Gestiondesr%C3%B4les
...
Bloc de code | ||||
---|---|---|---|---|
| ||||
tomcat: ajp: port: 6009 |
...
spring
session
À ne pas modifier. Permet l'activation de spring-session.
...
Bloc de code | ||||
---|---|---|---|---|
| ||||
ldap: search-base: ou=people # Base de recherche des utilisateurs, ex : ou=people user-object-classes: inetOrgPerson # Object classes correspondant aux utilisateurs (un "ou" est appliqué aux valeurs de cette liste) group-object-classes: groupOfNames # Object classes correspondant aux groupes (un "ou" est appliqué aux valeurs de cette liste) ou-object-classes: organizationalUnit # Object classes correspondant aux OU (un "ou" est appliqué aux valeurs de cette liste) alias-object-classes: nisMailAlias users-search-filter: ((&(|(displayName={0}*)(cn={0}*)(uid={0})(mail={0}*))(mail=*)) # Filtre de recherche des utilisateurs group-search-base: ou=groups # Base de recherche des groupes, ex : ou=groups group-search-filter: member={0} # Filtre utilisé pour rechercher les groupes d'un utilisateur, ex : member={0} all-groups-search-filter: cn=*{0} # Filtre utilisé pour rechercher des groupes, ex : cn=*{0} user all-idaliases-search-filter: (uidmail={0}) # LeFiltre champutilisé danspour lequel on trouve le login des utilisateurs, ex rechercher des aliases user-id-search-filter: (uid={0}) # Le champ dans lequel on trouve le login des utilisateurs, ex : (uid={0}) user-eppn-search-filter: (eduPersonPrincipalName={0}) # Le champ dans lequel on trouve l'eppn des utilisateurs c'est ce champ qui sera utilisé comme identifiant unique en base, ex : (eduPersonPrincipalName={0}) user-mail-search-filter: (mail={0}) # Le champ dans lequel on trouve l'email des utilisateurs , ex : (mail={0}) ou-search-filter: (supannCodeEntite={0}) # Requete pour trouver les OU des utilisateurs (utile seulement pour le pré-remplissage de l'affectation dans les formulaires) member-search-filter: (&(uid={0})({1})) # Filtre pour contrôler l’appartenance d’un utilisateur à un groupe, ex : &(uid={0})({1})) members-of-group-search-filter: memberOf=cn={0},ou=groups,dc=univ-ville,dc=fr # Filtre utilisé pour retrouver les membres d’un groupe, ex : memberOf=cn={0},ou=groups,dc=univ-ville,dc=fr eppn-left-part-search-filter: (uid={0}) # Permet de gérer le cas où l'eppn n'est pas construit avec <uid>@<domain>. Il faut donc spécifer le champ dans lequel on trouve la partie gauche de votre eppn mapping-filters-groups: # Liste d'attribution de groupe en fonction d'un filtre LDAP student : "(eduPersonAffiliation:=student)" staff : "(eduPersonAffiliation:=staff)" |
...
Avertissement |
---|
Attention vos requetes LDAP doivent impérativement être mises entre parentheses. De plus les objectClasses des éléments recherchés sont ecrits en dur dans les classes PersonLdap, PersonLightLdap, OrganizationalUnitLdap et AliasLdap. Pour élargir le champ de recherche il faut modifier ces classes directement. Elle sont situées dans le dossier : src/main/java/org/esupportail/esupsignature/service/ldap/entry |
Pour la gestion des rôles voir : Documentation administrateur#Gestiondesr%C3%B4les
...
Dans la partie mail (hors spring) vous pouvez paramétrer l'adresse from pour l'envoi de mails
Bloc de code | ||||
---|---|---|---|---|
| ||||
mail: from: no-reply.esup-signature@univ-ville.fr |
...
sms
Cette partie permet de configurer un service d'envoi de sms pour l'utilisation de la fonction One Time Password à destination des personnes extérieures à l’établissement. Des implémentations pour SMSU et pour OVH sont disponibles. Il est possible d'en ajouter en implémentant la classe https://github.com/EsupPortail/esup-signature/blob/master/src/main/java/org/esupportail/esupsignature/service/interfaces/sms/SmsService.java
Bloc de code | ||||
---|---|---|---|---|
| ||||
sms: enable-sms : false # service-name: SMSU # url: https://smsu-api.univ-ville.fr/ # username: sms-account # password: ******** |
...
dss
tsp-server servers : adresse adresses url du serveur des serveurs de temps utilisé pour les horodatages des signatures électroniques
Remarque |
---|
Pour que la signature soit valable, le fournisseur du timestamp doit apparaitre dans la liste European Trusted List (EUTL). Sur cette page on trouve une liste de serveurs utilisables : https://gist.github.com/Manouchehri/fd754e402d98430243455713efada710. Il faut faire attention à ne prendre que des fourniseurs Adobe ou EUTL. Par défaut, DSS Signature propose d'utiliser http://tsa.belgium.be/connect cependant il semble que le serveur impose un nombre maximum de requetes.Une solution peut être d'utiliser cette adresse : https://rfc3161.ai.moda/adobe Depuis la version 1.28.9 il est possible de saisir plusieurs urls. Dans ce cas le serveur de temps sera tournant ce qui contourne les problèmes de restrictions d'usage (le /adobe permet de ne passer que par des serveurs reconus par adobe). Attention toutefois, certaines url parmis cette liste, ne sont pas référencées dans la trustlist européenne !système essai chaque adresse jusqu'a obtenir un timestamp. |
ks-filename : par défaut le chemin est relatif. Comme dans la configuration logback, si vous voulez spécifier un chemin absolu, le dossier doit avoir été créé avant le premier lancement.
...
Bloc de code | ||||
---|---|---|---|---|
| ||||
dss: cache-data-source-driver-class-name: org.hsqldb.jdbc.JDBCDriver cache-data-source-url: jdbc:hsqldb:mem:cachedb cache-password: cache-username: sa default-validation-policy: policy/sign-constraint.xml server-signing-keystore-filename: validate_service.p12 server-signing-keystore-password: password server-signing-keystore-type: PKCS12 tsp-server: servers: - http://timestamp.sectigo.com/qualified - http://tsa.belgium.be/connect ks-filename: oj_keystore.p12 ks-password: dss-password ks-type: PKCS12 lotl-country-code: EU lotl-url: https://ec.europa.eu/tools/lotl/eu-lotl.xml oj-url: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=uriserv:OJ.C_.2019.276.01.0001.01.ENG trusted-certificat-url-listcountry: FR state-or-province: Région postal-code: XXXXX locality: Ville check-revocation-for-untrusted-chains: true #Débloque la possibilité de signer avec des certificats non eIDas (ex : Sectigo Rénater) |
Si votre serveur se trouve derrière un forward proxy, vous pouvez ajouter la configuration suivante directement à la racine du fichier de configuration. Cela permet à DSS d'aller chercher les certificats de confiance sur les serveurs européens
Bloc de code | ||||
---|---|---|---|---|
| ||||
proxy: httpEnabledhttp-enabled: "true" httpHosthttp-host: "proxy.univ-ville.fr"localhost httpPorthttp-port: "3128" httpUserhttp-user: "" httpPasswordhttp-password: "" httpsEnabled: "true"http-excluded-hosts: httpsHosthttps-enabled: "proxy.univ-ville.fr"true httpsPorthttps-host: "3128"localhost httpsUserhttps-port: ""3128 httpsPasswordhttps-user: "" httpExcludedHostshttps-password: "" httpsExcludedHosts: ""https-excluded-hosts: |
...
fs (file system)
La partie file system (fs) permet de configurer une source principale de donnée pour chaque type de stockage (smb, cmis, vfs). esup-signature ne prend en charge qu'une seule source par type.
...
Info |
---|
group-to-role-filter-pattern: Ce pattern permet de donner automatiquement les rôles correspondants à la partie (\w*) du pattern. Prenons le pattern for.esup-signature.role.(\w*), si l'utilisateur est dans le groupe for.esup-signature.role.bondecommande, il obtiendra automatiquement le role ROLE_BONDECOMMANDE utilisable par la suite pour donner des droits au niveau des formulaires et des circuits. mapping-groups-roles: Permet de définir des rôles en fonction des groupes de l'utilisateur. Le ROLE_USER est maintenant obligatoire pour accéder à l'application. Si constituer un groupe d'utilisateur est difficile, vous pouvez utiliser mapping-filters-groups dans la conf ldap pour constituer des groupes à l'aide de requêtes ldap. ws-access-authorize-ips : permet de configurer les adresses autorisées à accéder aux web services d' esup-signature. On peux mettre autant d'adresses que souhaité séparées par des virgules ainsi que des plages du genre 192.168.1.0/24. (Exemple : ws-access-authorize-ips : 127.0.0.1, 192.168.1.0/24, 10.54.20.11, etc. ) group-group-mapping-spel: Sert à outre passer les groupes obtenus via ldap. Ceci est utiles si vous n'avez pas de configuration LDAP (shibboleth seul par exemple). On utilise alors la syntaxe SePL (Spring Expression Language), avec seulement l'attribut #eppn pris en compte ainsi que la possibilité de mettre la valeur "true". Ex: pour ajouter à tout le monde le groupe "for.esup-signature.user" on peut mettre for.esup-signature.user: "true". On peut aussi utiliser la syntaxe suivante pour saisir "en dure" des personnes : for.esup-signature.admin: "#eppn == 'toto@univ-ville.fr' or #eppn == 'titi@univ-ville.fr' " |
...
Bloc de code | ||||
---|---|---|---|---|
| ||||
serverservlet: servletsession: session: timeout: 1800 # Durée de session en secondes tracking-modes: COOKIEcookie error: include-stacktrace: always port: 8080 tomcat: mbeanregistry: enabled: true remoteip: remote-ip-header: X-Forwarded-For basedir: ./tem |
...
sign
Vous pouvez ajuster finement les paramètres de signature électronique en particuler le niveau défini par la norme ETSI EN 319 102-1.
...
Bloc de code | ||||
---|---|---|---|---|
| ||||
sign:
cades-digest-algorithm: SHA256
cades-signature-level: CAdES_BASELINE_T
container-type: ASiC_E
default-signature-form: XAdES
pades-digest-algorithm: SHA256
pades-signature-level: PAdES_BASELINE_T
password-timeout: 60000
signature-packaging: ENVELOPED
xades-digest-algorithm: SHA256
xades-signature-level: XAdES_BASELINE_T
sign-with-expired-certificate: false #Débloque la possibilité de signer avec des certificats exprirés (pour les tests) |
...
logging
Permet de spécifier l'emplacement pour le fichier de logs ainsi que l'usage (facultatif) d'un fichier de configuration logback (voir chapitre suivant)
...
Bloc de code | ||||
---|---|---|---|---|
| ||||
application.title = Esup Signature application.footer=Université de Rouen Normandie |
...
Logos et filigrane
Vous avez la possibilité de modifier les logos et le filigrane de la signatire(watermark). Pour cela vous devez modifier les fichiers qui se trouvent dans le dossier src/main/resources/static/images/ :
- Le logo esup-signature correspond aux fichiers logo.png et logo.svg (le png doit faire maximun 45px de haut si vous ne voulez pas avoir à moddifier le css)
- Le logo de l'unviversité visible dans les emails correspond au fichier logo-univ.png
- Le filigrane correspond au fichier watermark.png. Ses dimenssions doivent être de 300*150 ou de 600*300
...
Astuce |
---|
La suite ici : Compilation et déploiement |
...