Skip to content

ansforge/psc-edc-proxy-esante

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

293 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Exemple de mis en œuvre d'un Proxy eSanté

Fonctionalités implémentées

  1. Authentification auprès de ProSantéConnect par le flux CIBA en mTLS ou "Basic Auth"
  2. Echange du jeton PSC par un jeton d'API à longue durée de vie en mTLS
    • 4 heures dans le cas de l'API de vérification de la conformité :
    • le hash du certificat utilisé pour l'échange du jeton est ajouté dans le claim cnf du jeton d'API.
  3. Gestion de la session du proxy par utilisateur/LPS et production d'un cookie de session
  4. Contrôle d'accès sur le endpoint '/send' du cookie de session.
  5. Deconnexion explicite de l'utilisateur avec appel au endpoint /logout de ProSantéConnect
  6. Collecte des traces des actions de connexion, déconnnexion et appels aux endpoint /send
  7. Restitution des traces sur le endpoint /traces au format JSON.

Ne comprend pas :

  1. Expiration de session (Remplacer le composant ReactiveMapSessionRepository (Gestion des sessions en mémoire pour l'exemple) par le composant ReactiveRedisIndexedSessionRepository pour gérer nativement l'expiration de session et émettre les évenements SessionDestroyedEvent
  2. Revocation des jeton d'API à l'expiration de session et à la déconnexion
  3. Rafaichissement des jetons d'API si nécessaire.
  4. Persistance des traces.

Build

Que faire si le build échoue avec le message Some files do not have the expected license header. Run license:format to update them. ?

  1. Rectifier les en-têtes à l'aide de cette commande :

    mvn validate license:format
  2. Vérifier puis committer les changements

Construction de l'image docker

Exécuter la commande suivante à la racine du projet:

docker build . -t ans.gouv.fr/psc-edc-proxy-esante

Exécution

En ligne de commande

Lancer la ligne de commande ci-dessous, où peut être :

  • OFF
  • ERROR
  • WARN
  • INFO
  • DEBUG
  • TRACE
java -Dlogging.level.fr.gouv.ans=<LEVEL> -Dspring.config.location=/path/to/cfg/application.yml -jar psc-esante-proxy-example-0.0.1-SNAPSHOT.jar

En déployant l'image docker

Pour déployer le proxy sous forme de container Docker, il faut lui fournir un fichier de configuration monté sur le chemin /usr/app/config/application.yml.

docker run -v /host/path/to/configuration/application.yml:/usr/app/config/application.yml ans.gouv.fr/psc-edc-proxy-esante

Débuggage

Les logs de debug du code applicatif peuvent être activés en définissant la variable LOG_LEVEL avec la valeur DEBUG

docker run -e LOG_LEVEL=DEBUG -v /host/path/to/configuration/application.yml:/usr/app/config/application.yml ans.gouv.fr/psc-edc-proxy-esante

Configuration

Voir fichier exemple : src/test/resources/application.yml

Autorités de certification

Si vous souhaitez ajouter des autorités de certification spécifiques à votre environnement à celles qui sont automatiquement reconnues, vous pouvez ajouter les paramètres -v /path/to/AC/directory:/certificates -e USE_SYSTEM_CA_CERTS=1

docker run -v /path/to/AC/directory:/certificates -e USE_SYSTEM_CA_CERTS=1 -v /host/path/to/configuration/application.yml:/usr/app/config/application.yml ans.gouv.fr/psc-edc-proxy-esante

Le répertoire /path/to/AC/directory doit contenir le ou les certificat(s) au format PEM avec l'extension .crt.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors