Esup-Signature

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Bloc de code
languageyml
themeRDark
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-wizard-workflow: false										# Désactiver le bouton "Assistant de création de circuit" 
    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 du compte système et du support qui apparaitra dans l'aide. Il faut utiliser un alias pour éviter la correspondance avec un utilisateur
	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: true								# 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
    pdf-only: 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
	seal-all-docs: false											# Appliquer le cachet sur toutes les demandes terminées
    rest-ext-value-url: http://api.univ-ville.fr					# Adresse du web service de données externes
    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
#    forced-externals-domain-list:									# Liste permettant de forcer des domaines comme externes
	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
    sms-required: true												# Imposer la double authentification par SMS pour les externes
    file-name-spaces-replace-by: " "								# Remplacer les espaces dans les noms de fichiers par le caractère suivant
    csv-quote: "\""													# Quote CSV
    csv-separator: ";"												# Séparateur CSV
    otp-validity: 110													# Durée de validité des liens de OTP en minutes
 #    authorized-sign-types: certsignimagestamp, nexuSignnexucert						# Liste des types de signature autorisés (par défault tous les types)
. Les types  exportpossibles sont : autoCert, groupCert, imageStamp, nexuCert, openPkiCert, sealCert, userCert
    export-attachements: true										# Exporter les pièces jointes (si actif, l'export sera un dossier contenant le document signé ainsi que les PJ)
    external-signature-params:										# Configuration des signatures des externes
        add-watermark: false
        add-extra: true
        extra-type: false
        extra-name: false
        extra-date: true
        extra-on-top: true
#        extra-text: ""
    french-phone-number-only: false									# Activer la vérification des numéros de téléphone français pour l'OTP
	external-can-edit: false										# Activer les annotations pour les utilisateurs externes (pour les demandes hors circuit)
	search-for-external-users: false								# Faire apparaitre les users externes dans la recherche full texte

Pour la gestion des rôles voir : Documentation administrateur#Gestiondesr%C3%B4les

Info

Détails concernant le système de renommage des fichiers :

Le modèle est construit à l'aide d'attributs entre crochets.

default : [title]

Les attributs disponibles sont :

  • [title] : titre du document original
  • [id] : identifiant du parapheur
  • [worflowName] : nom du circuit
  • [user.name] : nom prénom de l'utilisateur courant
  • [user.eppn] : eppn de l'utilisateur courant
    [user.initials] : initiales de l'utilisateur courant
  • [UUID] : un identifiant unique
  • [order] : le numéro d'ordre de création pour un même circuit
  • [timestamp] : timestamp sous forme de long
  • [date-fr] : date dd/MM/yyyy hh:mm
  • [date-en] : date yyyy-MM-dd hh:mm

tomcat

Ce paramètre permet de spécifier le port ajp dans le cas ou l'application est démarrée directement (en lançant directement esup-signature.war ou en utilisant mvn springboot:run par exemple)

Par défaut ces lignes sont commentées, cela doit être ainsi lorsque l'application est démarrée par un serveur Tomcat.

Bloc de code
languageyml
themeRDark
tomcat:
    ajp:
        port: 6009

 

spring

session

À ne pas modifier. Permet l'activation de spring-session.

Bloc de code
languageyml
themeRDark
session:
  jdbc:
      initialize-schema: always
      save-mode: always
data, datasource

Configuration de la base de donnée :

Bloc de code
languageyml
themeRDark
    datasource:
        driver-class-name: org.postgresql.Driver
        url: jdbc:postgresql://localhost:5432/esupsignature
        password: esup
        username: esupsignature
		jdbc-url: ${spring.datasource.url}
		hikari:
		    auto-commit: false
jpa

Il faut prêter une attention particulière au paramètre ddl-auto. Mode update permet la création et la mise à jour de la base de donnée lors du démarrage de l'application ou des tests. Ce mode peut éventuellement être utilisé lors des mises à jour de l'application. Le reste du temps (en production par exemple) ce paramètre peut être positionné sur validate qui ne fera qu’exécuter un contrôle de la base de données. 

Avertissement

Attention au mode create qui, lui, détruit et re-crée la base complète au moment du démarrage de l'application

Bloc de code
languageyml
themeRDark
jpa:
	hibernate:	
	    ddl-auto: update
	properties:
	    hibernate:
	        dialect: org.hibernate.dialect.PostgreSQLDialect
	        format_sql: true
	        jdbc:	
    	        lob:
        	        non_contextual_creation: true
		show-sql: false
		open-in-view: false
ldap

Configuration de l'accès ldap pour spring (obligatoire si l'authentification CAS est activée)

Bloc de code
languageyml
themeRDark
    ldap:
        base: dc=univ-ville,dc=fr
        password: ********
        urls: ldap://ldap.univ-ville.fr
        username: cn=consult,dc=univ-ville,dc=fr
mail

Configuration du serveur de mail pour l'envoi des alertes

Bloc de code
languageyml
themeRDark
    mail:
        host: smtp.univ-ville.fr

servlet, thymeleaf, web, mvc

Ne pas modifier, concerne la configuration web de spring


    seal-for-externals: false										# Autoriser les externes à signer avec le cachet
    seal-authorized-for-signed-files: false							# Autoriser automatiquement le certificat cachet pour les demandes internes déjà signés avec un certificat
    hide-hidden-visa: false											# Indique si les vérification (visas cachés) doivent être masqués dans l'interface utilisateur.

Pour les types de signatures voir : Documentation administrateur#Lesmoyensdesignature

Pour la gestion des rôles voir : Documentation administrateur#Gestiondesr%C3%B4les


Info

Détails concernant le système de renommage des fichiers :

Le modèle est construit à l'aide d'attributs entre crochets.

default : [title]

Les attributs disponibles sont :

  • [title] : titre du document original
  • [id] : identifiant du parapheur
  • [worflowName] : nom du circuit
  • [user.name] : nom prénom de l'utilisateur courant
  • [user.eppn] : eppn de l'utilisateur courant
    [user.initials] : initiales de l'utilisateur courant
  • [UUID] : un identifiant unique
  • [order] : le numéro d'ordre de création pour un même circuit
  • [timestamp] : timestamp sous forme de long
  • [date-fr] : date dd/MM/yyyy hh:mm
  • [date-en] : date yyyy-MM-dd hh:mm

tomcat

Ce paramètre permet de spécifier le port ajp dans le cas ou l'application est démarrée directement (en lançant directement esup-signature.war ou en utilisant mvn springboot:run par exemple)

Par défaut ces lignes sont commentées, cela doit être ainsi lorsque l'application est démarrée par un serveur Tomcat.

Bloc de code
languageyml
themeRDark
tomcat:
    ajp:
        port: 6009

 

...

spring

session

À ne pas modifier. Permet l'activation de spring-session.

Bloc de code
languageyml
themeRDark
session:
  jdbc:
      initialize-schema: always
      save-mode: always
data, datasource

Configuration de la base de donnée :

Bloc de code
languageyml
themeRDark
    datasource
Bloc de code
languageyml
themeRDark
servlet:
    multipart:
        enabled: true
        max-file-size: 1280KB
        max-request-size: 1280KB
        resolve-lazily: true
thymeleaf:
    cache: false
    encoding: UTF-8
    mode: HTML
    servlet:
        produce-partial-output-while-processing: false
web:
    resources:
        cache:
            cachecontrol:
                max-age: 1d
driver-class-name: org.postgresql.Driver
        url: jdbc:postgresql://localhost:5432/esupsignature
        cache-publicpassword: trueesup
        static-locations: classpath:/static
mvc:
username: esupsignature
		jdbc-url: ${spring.datasource.url}
		hikari:
		    staticauto-path-pattern: /**
security

Via le protocole oauth2 inclus dans spring-security il est possible de configurer l'authentification avec n'importe quel fournisseur d'identité compatible.

Voici un exemple de configuration via France Connect

commit: false
jpa

Il faut prêter une attention particulière au paramètre ddl-auto. Mode update permet la création et la mise à jour de la base de donnée lors du démarrage de l'application ou des tests. Ce mode peut éventuellement être utilisé lors des mises à jour de l'application. Le reste du temps (en production par exemple) ce paramètre peut être positionné sur validate qui ne fera qu’exécuter un contrôle de la base de données. 

Avertissement

Attention au mode create qui, lui, détruit et re-crée la base complète au moment du démarrage de l'application


Bloc de code
languageyml
themeRDark
    security:
        oauth2:
            client:
                registration:
                    franceconnect:
jpa:
	hibernate:	
	                        provider: franceconnect-idp
                        authorization-grant-type: authorization_code
              ddl-auto: update
	properties:
	    hibernate:
	          client-id: <client_id>
dialect: org.hibernate.dialect.PostgreSQLDialect
	        format_sql: true
	        jdbc:	
    	   client-secret: <client_secret>
    lob:
        	        non_contextual_creation:    client-authentication-method: client_secret_post
true
		show-sql: false
		open-in-view: false
ldap

Configuration de l'accès ldap pour spring (obligatoire si l'authentification CAS est activée)

Bloc de code
languageyml
themeRDark
    ldap:
        base: dc=univ-ville,dc=fr
           redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"password: ********
        urls: ldap://ldap.univ-ville.fr
        username: cn=consult,dc=univ-ville,dc=fr
mail

Configuration du serveur de mail pour l'envoi des alertes

Bloc de code
languageyml
themeRDark
      scopemail:
        host: smtp.univ-ville.fr
servlet, thymeleaf, web, mvc

Ne pas modifier, concerne la configuration web de spring

Bloc de code
languageyml
themeRDark
servlet:
    multipart:
        enabled: true
        max-file-size: openid1280KB
        max-request-size: 1280KB
        resolve-lazily: true
thymeleaf:
    cache: false
    encoding: UTF- family_name
  8
    mode: HTML
    servlet:
        produce-partial-output-while-processing: false
web:
    resources:
         - given_namecache:
            cachecontrol:
                max-age: email1d
                providercache-public: true
        static-locations: classpath:/static
mvc:
           franceconnect-idp:
                        authorization-uristatic-path-pattern: /**
security

Via le protocole oauth2 inclus dans spring-security il est possible de configurer l'authentification avec n'importe quel fournisseur d'identité compatible.

Avertissement

Attention, depuis la version 1.24, les noms de fournisseur franceconnect et proconnect sont reservés pour l'authentification des externes... De plus la configuration a changée ; une page dédiée est disponible ici : Signature des extérieurs (ProConnect, FranceConnect, SMS...)


Pour configuer l'accès à la route /ws-jwt vous devez ajouter l'url de votre fournisseur de jetons :

Bloc de code
languageyml
themeRDark
    security:
: https://fcp.integ01.dev-franceconnect.fr/api/v1/authorize
            oauth2:
                token-uri: https://fcp.integ01.dev-franceconnect.fr/api/v1/tokenclient:
                        user-info-uri: https://fcp.integ01.dev-franceconnect.fr/api/v1/userinfoprovider:
                        user-name-attribute: subcas:
                        user-info-authentication-method: headerissuer-uri: https://cas.univ-ville.fr/oidc

...

ldap

La configuration ldap hors spring est spécifique à votre établissement,  elle précise les modalités de recherche de vos utilisateur dans l'annuaire

...

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.

Depuis la version 1.28.9 il est possible de saisir plusieurs urls. Dans ce cas le 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. 

trusted-certificat-url-list : ici vous pouvez ajouter des liens vers les url des certificats non présents dans le journal officiel mais valide dans votre établissent : 

Info

Les autres paramètres n'ont pas besoin d'être modifiésDans ce cas le système essai chaque adresse jusqu'a obtenir un timestamp.


Bloc de code
languageyml
themeRDark
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-servers: 
        - http://timestamp.sectigo.com/qualified
        - http://tsa.belgium.be/connect
    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
    country: FR																								# Informations de localisation qui apparaîtront dans les signatures électroniques
    state-or-province: Région																				# Informations de localisation qui apparaîtront dans les signatures électroniques
    postal-code: XXXXX																						# Informations de localisation qui apparaîtront dans les signatures électroniques
    locality: Ville																							# Informations de localisation qui apparaîtront dans les signatures électroniques
    check-revocation-for-untrusted-chains: true																# Débloque la possibilité de signer avec des certificats non eIDas si on met false (ex : Sectigo Rénater)
    multi-thread-tl-validation: true																		# Récupération des trustlists en multi thread
	accept-signature-field-overlap: false																	# Permet d'autoriser la superposition des signatures pades visuelles

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
languageyml
themeRDark
pdf:
    convert-to-pdf-a: true
    path-to-g-s: /usr/bin/gs
    pdf-a-level: 2
    pdf-to-image-dpi: 72
    auto-rotate: true											# Corrige automatiquement la rotation des documents en portait qui ont été tournés de 90° rotation des documents en portait qui ont été tournés de 90°
    gs-command-params:  -dSubsetFonts=true -dEmbedAllFonts=true -dAlignToPixels=0 -dGridFitTT=2 -dCompatibilityLevel=1.4 -sColorConversionStrategy=RGB -sDEVICE=pdfwrite -dPDFACompatibilityPolicy=1

Attention l'option -dPDFSTOPONERROR anciennement présente semble poser des problèmes lors de la convertion (en cas d'erreur le document est renvoyer même s'il n'est pas fini de convertir)


...

security

La sécurité est gérée par Spring Security. Il est possible d'activé 3 mécanismes de sécurité : OAuth, Shibboleth et/ou CAS. Pour désactiver une ou l'autre de ces méthodes, il suffit de commenter les lignes qui s'y réfèrent.

...

Bloc de code
languageyml
themeRDark
springdoc:
    api-docs:
        enabled: true
    swagger-ui:
        enabled: true
        supported-submit-methods: []
    		packages-to-scan: org.esupportail.esupsignature.web.ws, org.esupportail.esupsignature.web.wsjwt


...


Avertissement

Lorsque votre configuration sera terminée, vous devez creer un commit git, ceci afin d'éviter tout problème lors d'une prochaine mise à jour. Les commandes git à lancer:

Bloc de code
languagebash
themeEclipse
git add .
git commit -m "ma conf de prod"


...