Raccordement et implémentation

Rejoignez le Hub Santé.

Retrouvez ci-dessous toutes les étapes pour vous connecter au Hub Santé et implémenter les messages des différents périmètres.

Découvrez le parcours guidé pour rejoindre le Hub Santé

L'Agence du Numérique en Santé vous accompagne dans votre raccordement au Hub Santé.
Pensez également à consulter l'ensemble de la documentation mise à votre disposition sur le site.

01

Accès au Slack éditeurs

Un channel Slack dédié à chaque éditeur est disponible pour communiquer avec l'équipe du Hub Santé de manière fluide et sécurisée. Le lien ci-dessous vous permet de rejoindre le Slack, pensez à nous envoyer un email afin qu'on paramètre les accès à votre channel dédié.

02

Accès aux repositories GitHub

Deux repositories liés au Hub Santé vous sont mis à disposition sur le GitHub de l'ANS.

1 - Modèle de données (public)

Les modèles de données associés au Hub Santé sont disponibles sur un repository GitHub public.
Les schémas, exemples, diagrammes UML et documents détaillés y sont consultables; ainsi que des SDK Java et Ruby associés et directement utilisables dans votre code.

2 - Code applicatif Hub Santé (public)

Ce repository GitHub public permet de partager les travaux et les développements réalisés par l'équipe Hub Santé. Il contient notamment des tutoriels Java pour l'utilisation de RabbitMQ; ainsi que des exemples de code de client AMQP (pour lire et écrire dans les files ouvertes par le Hub Santé) en Java, Spring Boot et Python.

03

Accès au Hub Santé

Certificats IGC Santé TEST et demande de droits

Attention

La démarche d'obtention des certificats IGC Santé est essentielle et peut prendre du temps.
Pensez à bien l'anticiper !

Les certificats IGC Santé permettent d'identifier les logiciels dans le cadre des échanges sur le Hub Santé.

  • Pour les éditeurs souhaitant raccorder leur environnement développement/usine sur l'environnement bac-a-sable du Hub Santé, des certificats IGC Santé TEST sont nécessaires.
  • Pour les SAMU et entités de Santé souhaitant raccorder leur logiciel sur les environnements de pre-production et production du Hub Santé, des certificats IGC Santé PROD sont nécessaires. La génération de ces certificats est à la charge de l'entité concernée.

1 - Commande de cartes CPX et obtention des droits d'administrateur technique

Afin de pouvoir générer des certificats, vous devez obtenir des cartes CPX et des droits d'administrateur technique.

Vous avez la possibilité de réaliser cette démarche via le portail mesHabilitations ou en utilisant le formulaire de demande de cartes CPX et/ou de droits d'administrateur technique F414 :

2 - Lecture des cartes CPX

Afin de pouvoir générer les certificats via les cartes CPX et les droits d'administrateur technique obtenus précédemment, il est nécessaire de disposer d'un lecteur de carte à puce et de télécharger le driver correspondant à l'OS de votre poste.
  • Vous pouvez consulter le guide du socle technique sur la page dédiée de l'ANS .
  • Les drivers sont à télécharger ici .
  • En cas de problème de lecture de carte ou de droits manquants une fois connecté, n'hésitez pas à consulter le site d'assistance et diagnostic et à utiliser Chrome ou Firefox en navigation privée pour éviter les conflits avec d'autres cartes et/ou problèmes de cache.

3 - Génération des certificats

Une fois les cartes et droits d'administrateur technique obtenus et lisibles par un lecteur de cartes, il faut utiliser la plateforme IGC pour générer des certificats SSL_SERV. Le FQDN (domaine) utilisé est à votre main mais doit permettre d'identifier l'entité concernée. Le Hub Santé ne fera pas de requêtes vers ce domaine et n'y demande pas l'exposition de services (ni sur ce domaine ni sur tout autre domaine).

En cas de besoin, reportez-vous à la section 8.2. du guide d'utilisation de la Plateforme IGC Santé .
Attention : pour la génération de certificats de TEST, seule la connexion par "Carte CPS" fonctionne (pas par "Pro Santé Connect" qui ne fonctionne que pour les certificats de PROD).

4 - Enregistrement des certificats sur le Hub Santé

Une fois les certificats obtenus, veuillez envoyer le certificat public à l'équipe Hub Santé (par Slack ou email) afin que vos accès, files et droits soient configurés.

Afin d'extraire le certificat public du fichier p12 généré sur la plateforme IGC, vous pouvez utiliser la commande suivante : openssl pkcs12 -in cert.p12 -clcerts -nokeys -out publicCert.crt dans laquelle vous remplacerez cert.p12 par le nom du fichier p12 généré sur la plateforme IGC et publicCert.crt par le nom du domaine utilisé.crt (par exemple : test.chu-xxx.fr.crt).

5 - Chaîne de certification et truststore

Les étapes précédentes permettent de générer un certificat SSL_SERV auprès de l'IGC Santé pour vous identifier lors de vos accès au Hub Santé. Les échanges étant en mTLS (mutual TLS), le Hub Santé présente également un certificat serveur. Afin que la connexion puisse s'établir correctement, vous devez également autoriser ce certificat de votre côté.

Pour cela, il est recommandé d'autoriser plutôt les certificats de l'Autorité de Certification (AC, ou CA en anglais) qui constituent la chaine de certification du certificat pour que cette autorisation reste valable lorsque nous renouvelerons nos certificats. Les chaînes de certification sont les suivantes :

04

Raccordement au Hub Santé

Le raccordement technique est le prérequis à l'implémentation d'échanges fonctionnels (15-15, 15-SMUR, etc.) tels que décrits dans les Dossiers de Spécifications Fonctionnelles (DSF).

Tous les détails techniques sont disponibles dans le Dossier des Spécifications Techniques (DST).

Dossier des Spécifications Techniques (DST)

1 - Messages asynchrones, AMQP et RabbitMQ.

Les échanges entre un Client et le Hub Santé se font via des opérations d'envoi et de réception de messages en mode asynchrone. La solution technique proposée est basée sur le protocole AMQP 0-9-1 et son implémentation open-source RabbitMQ.

2 - Autorisations : acteurs et messages

La liste des Clients autorisés à échanger des messages sur le Hub Santé est maintenue par l'ANS. Les Clients auront le droit d'échanger uniquement avec les acteurs également enregistrés. Les échanges autorisés sont définis par les Dossiers de Spécifications Fonctionnelles (DSF) ; qui précise notamment les modèles de données attendus et contrôlés lors des échanges de messages par le Hub Santé.

3 - Communications : point à point, files fixées et nommage

Le mode de communication est basé sur un mode d'échange point à point .
  • Un Client émetteur publie un message pour un unique destinataire sur l'échangeur d'envoi.
  • Un Client destinataire reçoit ses messages sur des files d'écoute dédiées. Chaque Client dispose de 3 files d'écoute selon la typologie des messages reçus :
    • message pour les échanges fonctionnels,
    • ack pour les acquittements de réception finale,
    • info pour les messages généraux d'information, alerte et erreur.
  • Grace à un mécanisme de routage interne au Hub Santé, chaque message publié sur l'échangeur d'envoi est transféré sur une file de messages accessible au destinataire (déterminé avec l'enveloppe du message). Le message est ensuite récupéré par le Client destinataire pour traiter ce message au sein de son système d'information.

    Le schéma ci-dessous illustre les différentes étapes du transit d'un message par le Hub Santé ainsi que la configuration des différentes clés et attributs.

    05

    Accès aux environnements

    Trois environnements du Hub Santé sont disponibles.

    1 - Bac-à-sable : pour les travaux, tests et recettes éditeurs

    Cet environnement est à disposition des éditeurs souhaitant se raccorder au Hub Santé et réaliser les développements associés à l'implémentation de périmètres fonctionnels d'échanges du Hub Santé (tels que définis dans les DSF). Il est également utilisé pour réaliser les tests puis recettes des travaux des éditeurs en amont des déploiements sur les environnements de production.

    Les URL sur l'environnement bac-à-sable sont :
    • Hub Santé : amqps://messaging.bac-a-sable.hub.esante.gouv.fr:5671
    • LRM de test : https://bac-a-sable.hub.esante.gouv.fr/lrm/

    2 - Pré-production : pour les tests et formations métiers

    Cet environnement, iso à la production, permet de réaliser les tests et formations sur une instance déployée chez le métier (au SAMU par exemple) en amont du déploiement d'un lien en production.

    3 - Production

    Cet environnement porte l'échange des messages en production. L'enregistrement d'un Client sur la production se fait suite une recette réussie avec l'éditeur sur l'environnement de bac-à-sable puis un déploiement réussi sur l'environnement de pré-production.

    06

    Implémentation des messages fonctionnels

    Pour chaque périmètre, il est nécessaire d'implémenter et de tester les messages fonctionnels associés.

    1 - Implémentation des messages

    Les messages à implémenter pour chaque périmètre fonctionnel sont décrits dans la documentation téléchargeable dans la rubrique Ressources éditeurs.
    Une roadmap d'implémentation spécifique à chaque périmètre est également disponible : dans les supports des Projectathons et séparément sur demande.
    Nous mettons également à votre disposition un LRM de test , ainsi que des cahiers de recette spécifiques à chaque périmètre, publiés dans le bundle de chaque version .

    2 - Recette ANS

    L'équipe du Hub Santé procède à une première recette avec chaque éditeur, sur la base des cahiers de recette fournis, afin de valider l'implémentation des messages par rapport au modèle publié.

    3 - Recette fonctionnelle

    Une fois la recette ANS validée, des tests de bout en bout sont réalisés avec un autre éditeur. Puis, pour chaque première mise en production, des tests utilisateurs de bout en bout sont effectués au sein des SAMU pilotes.

    07

    Compatibilité Hub Santé

    Lorsque l'intégralité d'un périmètre fonctionnel a été implémenté et validé en recette, a minima avec l'équipe du Hub Santé (recette ANS), il est possible pour l'éditeur d'utiliser le badge Hub Santé correspondant. La charte d'utilisation du badge est téléchargeable ci-dessous.

    Accès au Hub Santé

    Certificats IGC Santé et demande de droits

    Les certificats IGC Santé permettent d'identifier les logiciels dans le cadre des échanges sur le Hub Santé.

    Pour les SAMU et entités de Santé souhaitant raccorder leur logiciel en production sur les environnements de pre-production et production du Hub Santé, des certificats IGC Santé PROD sont nécessaires.

    Attention

    La démarche d'obtention des certificats IGC Santé est essentielle et peut prendre du temps.
    Pensez à bien l'anticiper !

    01

    Obtention des droits d'administrateur technique

    Afin de pouvoir générer des certificats logiciel SERVEUR, vous devez obtenir des droits d'administrateur technique.

    Vous avez la possibilité de réaliser cette démarche via le portail mesHabilitations ou en utilisant le formulaire de demande de cartes CPX et/ou de droits d'administrateur technique F413 :

    02

    Génération des certificats

    Une fois les droits d'administrateur technique obtenus, il faut utiliser la plateforme IGC pour générer des certificats SSL_SERV. Le FQDN (domaine) utilisé est à votre main mais doit permettre d'identifier l'entité concernée. Le Hub Santé ne fera pas de requêtes vers ce domaine et n'y demande pas l'exposition de services (ni sur ce domaine ni sur tout autre domaine).

    En cas de besoin, reportez-vous à la section 8.2. du guide d'utilisation de la Plateforme IGC Santé .

    03

    Enregistrement des certificats sur le Hub Santé

    Une fois les certificats obtenus, veuillez envoyer le certificat public à l'équipe Hub Santé (par Slack ou email) afin que vos accès, files et droits soient configurés.

    Afin d'extraire le certificat public du fichier p12 généré sur la plateforme IGC, vous pouvez utiliser la commande suivante : openssl pkcs12 -in cert.p12 -clcerts -nokeys -out publicCert.crt dans laquelle vous remplacerez cert.p12 par le nom du fichier p12 généré sur la plateforme IGC et publicCert.crt par le nom du domaine utilisé.crt (par exemple : test.chu-xxx.fr.crt).