Arborescence des pages

Vous regardez une version antérieure (v. /wiki/display/SIGN/Configuration) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 96) afficher la version suivante »



Récupération des sources

Lorsque tous les Prérequis sont installés et PostgreSQL configuré, vous pouvez récupérer les sources.

A partir de cette étape vous n’êtes plus en root. Ici l'utilisateur courant est le compte local esup :


cd /opt/
sudo mkdir esup-signature
sudo chown esup:esup esup-signature/ -R
git clone https://github.com/EsupPortail/esup-signature.git
cd esup-signature


Le code est donc cloné dans le dossier ./esup-signature, le dépôt est positionné sur la branche master. Pour toutes les informations relative à l'exploitation et à la mise à jour du code voir le page dédié ici : Exploitation

Configuration

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 utiliser 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.

src/main/resources/i18n/messages.properties

Vous pouvez modifier les premières ligne du fichier messages.properties pour spécifier le texte du footer et le titre de l'application

application.title = Esup Signature
application.version=1.0
application.footer=Université de Rouen Normandie


src/main/resources/logback.xml

Par défaut le chemin est relatif.

Si vous modifiez l'emplacement du fichier de log par un chemin absolu, celui-ci doit exister et être accessible au compte qui exécute esup-signature. 

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>logs/esup-signature.log</file>
        <append>true</append>
        <immediateFlush>true</immediateFlush>
        <encoder>
            <pattern>[%-5level] %date{dd/MM/yyyy HH:mm:ss} %logger{35} - %msg%n</pattern>
        </encoder>
    </appender>

src/main/resources/application.yml

La configuration d' esup-signature se fait au travers du fichier src/main/ressource/application.yml

Pour commenter une ligne il faut ajoute un # devant.

Il faut faire attention à l'indentation lors de la modification du fichier. Une mauvaise indentation peut faire échouer la compilation

global

Dans la plupart des cas il s'agit ici de modifier root-url par l'adresse de votre esup-signature. Vous pouvez aussi configurer le système d'archivage et activer le switch user.

Pour des tests en local, il est possible d'utiliser http://localhost:8080 pour root-url
global:
    root-url: https://esup-signature.univ-ville.fr					# Adresse d'accès à votre instance
    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 siganture"
    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 avec laquelle seront envoyés les alertes mail
	hours-before-refresh-notif: 24									# Nombre d'heures entre deux relances utilisateur
	shareMode: 3													# valeur de 0 à 3 : 0 = relances désactivé, 1 = force le mode signature du délégué, 2 = force signature du mandant, 3 = choix du mode possible

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

tomcat

Ce paramètre permet de spécifier le port ajp dans le cas ou l'application est démarrée directement (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.

#tomcat:
#    ajp:
#        port: 6009



spring

datasource

Configuration de la base de donnée :

    datasource:
        driver-class-name: org.postgresql.Driver
        hikari:
            auto-commit: false
        password: esup
        url: jdbc:postgresql://localhost:5432/esupsignature
        username: esupsignature
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. 

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

hibernate:
    ddl-auto: update
properties:
    hibernate:
        dialect: org.hibernate.dialect.PostgreSQLDialect
        format_sql: true
        jdbc:
            lob:
                non_contextual_creation: true
show-sql: false
ldap

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

    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

    mail:
        host: smtp.univ-ville.fr



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

ldap:
    search-base: ou=people							# base de recherche (ou dans laquelle se trouve les comptes utilisateurs
	group-search-base: ou=groups					# base des groupes
    user-id-search-filter: (uid={0})				# le champ dans lequel on trouve le login des utilisateurs
    group-search-filter: member={0}					# filtre pour la recherche des groupes
    member-search-filter: (&(uid={0})({1}))			# filtre pour contrôler l'appartenance à un groupe
    mapping-filters-groups:							# liste d'attribution de groupe en fonction d'un filtre LDAP
		student : "eduPersonAffiliation:=student"
        staff : "eduPersonAffiliation:=staff"

On peut utiliser mapping-filters-groups pour attribuer des groupes à un utilisateur, par exemple : avec mes-users : "eduPersonAffiliation:=member", toutes les personnes issue de ce filtre se verront affectées au groupe "mes-users"

Si dans mapping-groups-roles on a mes-users: ROLE_USER, l'utilisateur obtiendra le rôle ROLE_USER.


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

mail

Dans la partie mail (hors spring) vous pouvez paramétrer l'adresse from pour l'envoi de mails

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. Pour l'instant seule une implémentation pour SMSU est disponible

sms:
    enable-sms : false
#    service-name: SMSU
#    url: https://smsu-api.univ-ville.fr/
#    username: sms-account
#    password: ********


dss

tsp-server : adresse url du serveur de temps utilisé pour les horodatages des signatures électroniques

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 : 

Les autres paramètres n'ont pas besoin d'être modifiés


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: http://timestamp.sectigo.com
    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-list: 


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.

fs:
#    smb-login: esup-signature
#    smb-password: ********
#    smb-uri: smb://smb.univ-ville.fr
    vfs-uri: /tmp
#    cmis-uri: https://esup-signature.univ-ville.fr/nuxeo
#    cmis-login: Administrator
#    cmis-password: Administrator
#    cmis-respository-id: default
#    cmis-root-path: /default-domain/workspaces

pdf

Paramètres de traitement des PDF

pdf:
    convert-to-pdf-a: true
    path-to-g-s: /usr/bin/gs
    pdf-a-level: 2
    pdf-to-image-dpi: 72

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.

CAS nécessite la configuration d'un LDAP. C'est la solution idéale pour une utilisation interne


Pour CAS :

domain : votre domaine

key : une clé CAS (Spring Security nécessite une clé, il est possible de mettre ce que l'on veut)

url : l'adresse de votre serveur CAS


Pour Shibboleth :

credentials-request-header : attribut dans lequel on trouve les groupes de l'utilisateur

idp -url : adresse de votre IDP Shibboleth

principal-request-header : attribut dans lequel on trouve l'identifiant de l'utilisateur


security:
    cas:
        service: https://esup-signature.univ-ville.fr/login/cas
        title: Compte Université (CAS)
        url: https://cas.univ-ville.fr
#    shib:
#        credentials-request-header: MEMBER
#        idp-url: https://idp.univ-ville.fr
#        principal-request-header: REMOTE_USER
#        title: Compte d’un autre établissement (Shibboleth)
#		 domains-white-list-url: https://eduspot.renater.fr/eduspot/whitelist-eduspot.txt
	web:
    	group-to-role-filter-pattern: <pattern groupe esup-signature>(\w*)		#ici on configure un pattern permettant de retrouver (discerner) vos groupes dédiés à esup-signature
	    mapping-groups-roles:										
	        <nom du groupe des administrateurs>: ROLE_ADMIN
	        <nom du groupe utilisateur autorisés à accéder à l'application>: ROLE_USER	        
	    ws-access-authorize-ips: 127.0.0.1
#	    group-mapping-spel:
#	        for.esup-signature.user: "true"

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

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' "

server

Paramètre du serveur lors d'un lancement hors tomcat

server:
    error:
        include-stacktrace: always
    port: 8080

sign

Vous pouvez ajuster finement les paramètres de signature électronique en modifiant les lignes suivante:

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

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:

git add .
git commit -m "ma conf de prod"
  • Aucune étiquette