Architecture interne des différents composants

Pour les intéressés, l’architecture interne des différents composants

Diagramme de flux

!theme aws-orange
!define DEVBOX_COLOR #278ef5
!define DMP_COLOR #35D9C0
!define MSS_COLOR #DE5D80
!define INS_COLOR #07A2CF
!define CPS_COLOR #D34A3C
!define VITALE_COLOR #5FD67A
!define PSC_COLOR #ff7765
!define APCV_COLOR #c6e66d
!define ANNUAIRE_COLOR #7613e0
!define DATA_COLOR #ffa800
component "DevBox-santé DMP" as DevBoxSanteDMP

cloud "DMP" as DMP
cloud "fr.pool.ntp.org" as NTP

DevBoxSanteDMP --> DMP  : https (TLS 1.2 / IGC Santé)
DevBoxSanteDMP --> NTP : ntp 

Architecture interne des différents composants

!theme aws-orange
!define DEVBOX_COLOR #278ef5
!define DMP_COLOR #35D9C0
!define MSS_COLOR #DE5D80
!define INS_COLOR #07A2CF
!define CPS_COLOR #D34A3C
!define VITALE_COLOR #5FD67A
!define PSC_COLOR #ff7765
!define APCV_COLOR #c6e66d
!define ANNUAIRE_COLOR #7613e0
!define DATA_COLOR #ffa800
package "DevBox-santé DMP" {
    [dmp-proxy-xxx] 
    [dmp-cda]
    [dmp-cda-tools]
    [dmp-client-impl]
    [dmp-hl7]
    [dmp-security-xxx]
    [dmp-ws-client]
    [dmp-xds-client]
}

node "DMP"
[dmp-proxy-xxx] - [dmp-client-impl] : Proxy REST/SOAP/... du client DMP
[dmp-client-impl] - [dmp-ws-client]
[dmp-client-impl] -d- [dmp-xds-client]

[dmp-xds-client] -d- [dmp-hl7] : format HL7
[dmp-xds-client] -d- [dmp-cda] : génération CDA
[dmp-xds-client] -d- [dmp-cda-tools] : validation CDA
[dmp-xds-client] - [dmp-security-xxx]

[dmp-ws-client] -d- [dmp-security-xxx]
[dmp-security-xxx] - DMP : authentification TLS
[dmp-ws-client] - DMP : WS soap spécifique DMP
[dmp-xds-client] - DMP : requête XDS

Les différents modules Maven :

  • dmp-cda : sérialisation des documents dans le standard CDA-R2
  • dmp-cda-tools : contient le code de validation des documents à envoyer au DMP ainsi que la génération html
  • dmp-client-impl : implémentation du client DMPC en mode embedded
  • dmp-cnda-tools : permet de récupérer les fichiers de tests du CNDA
  • dmp-core : contient le code commun a tous les modules
  • dmp-exemples : contient différents exemples de déploiements du DMPC Client
  • dmp-hl7 : implémentation standard HL7 utile pour le DMP
  • dmp-homologation : contient le code permettant l’homologation de l’api
  • dmp-proxy-rest : implémentation du proxy REST du client DMPC
  • dmp-proxy-ws : implémentation du proxy SOAP du client DMPC
  • dmp-schema-gen : contient les outils de génération de code à partir des différents schémas xsd et des wsdls de XDS et des
  • dmp-tool : outil commun à tous les modules.
  • dmp-security-** : contient l’implémentation des différents modes de sécurités
  • dmp-ws-client : contient le code des clients au webservices du DMP autre que XDS
  • dmp-xds-client : contient le code des clients au webservices du DMP XDS

Zoom sur la sécurité

La Devbox-santé DMP permet de mettre en place des mécanismes de sécurités différents en fonction du contexte :

  • CPS
  • P12
  • CPSAgent

La sécurité est configurée via les mécanismes d’injection de Spring.

Securité via la CPS

Diagramme de composants
!theme aws-orange
!define DEVBOX_COLOR #278ef5
!define DMP_COLOR #35D9C0
!define MSS_COLOR #DE5D80
!define INS_COLOR #07A2CF
!define CPS_COLOR #D34A3C
!define VITALE_COLOR #5FD67A
!define PSC_COLOR #ff7765
!define APCV_COLOR #c6e66d
!define ANNUAIRE_COLOR #7613e0
!define DATA_COLOR #ffa800
package "DevBox-santé DMP" {
    [dmp-security-cps] 
    [cps-facade]
}

interface "Cryptolib cps" as cryptolib

[dmp-security-cps] - [cps-facade]
[cps-facade] - cryptolib
Diagramme de classes

Les différentes classes en charge de la sécurité dans le mode CPS :

!theme aws-orange
!define DEVBOX_COLOR #278ef5
!define DMP_COLOR #35D9C0
!define MSS_COLOR #DE5D80
!define INS_COLOR #07A2CF
!define CPS_COLOR #D34A3C
!define VITALE_COLOR #5FD67A
!define PSC_COLOR #ff7765
!define APCV_COLOR #c6e66d
!define ANNUAIRE_COLOR #7613e0
!define DATA_COLOR #ffa800

interface CpsOperationProviderSpi

CpsFacade -U-|> CpsOperationProviderSpi

CpsConfigurationAdapter o-- CpsOperationProviderSpi
CpsConfigurationAdapter : AuthenticationKeyManager
CpsConfigurationAdapter : SignatureKeyManager
CpsConfigurationAdapter : PersonnelSantePopulator
CpsConfigurationAdapter o-- CxfEndPointFactory

CxfEndPointFactory : createEndPoint(...)  // point d'accès au service DMP
CxfEndPointFactory : setVIHF(...)  // gestion du jeton SAML
CxfEndPointFactory : setTLS(...)  // gestion du canal TLS

La CpsConfiguration permet d’initialiser deux KeyManager s’appuyant sur la CpsFacade pour y accèder. Ces deux KeyManager permettent d’accéder aux différents certificats et d’effectuer les opérations de signature disponibles dans la carte CPS. La CpsConfiguration permet d’initialiser la CxfEndPointFactory qui a pour responsabilité la gestion des accès au services du DMP.

Securité via les certificats P12

Diagramme de composants
!theme aws-orange
!define DEVBOX_COLOR #278ef5
!define DMP_COLOR #35D9C0
!define MSS_COLOR #DE5D80
!define INS_COLOR #07A2CF
!define CPS_COLOR #D34A3C
!define VITALE_COLOR #5FD67A
!define PSC_COLOR #ff7765
!define APCV_COLOR #c6e66d
!define ANNUAIRE_COLOR #7613e0
!define DATA_COLOR #ffa800
package "DevBox-santé DMP" {
    [dmp-core] 
}

interface fichier.p12
[dmp-core] - fichier.p12 : load
Diagramme de classes

Les différentes classes en charge de la sécurité dans le mode CPS :

!theme aws-orange
!define DEVBOX_COLOR #278ef5
!define DMP_COLOR #35D9C0
!define MSS_COLOR #DE5D80
!define INS_COLOR #07A2CF
!define CPS_COLOR #D34A3C
!define VITALE_COLOR #5FD67A
!define PSC_COLOR #ff7765
!define APCV_COLOR #c6e66d
!define ANNUAIRE_COLOR #7613e0
!define DATA_COLOR #ffa800


P12Configuration - P12KeyManager : AuthenticationKeyManager
P12Configuration - P12KeyManager : SignatureKeyManager
P12KeyManager - P12KeyLoader
P12Configuration o-- CxfEndPointFactory

CxfEndPointFactory : createEndPoint(...)  // point d'accès au service DMP
CxfEndPointFactory : setVIHF(...)  // gestion du jeton SAML
CxfEndPointFactory : setTLS(...)  // gestion du canal TLS

La P12Configuration permet d’initialiser deux KeyManager s’appuyant sur la P12KeyLoader qui charge les certificats p12 disponibles. Ces deux KeyManager permettent d’accéder aux différents certificats et d’effectuer les opérations de signature. La P12Configuration permet d’initialiser la CxfEndPointFactory qui a pour responsabilité la gestion des accès au services du DMP.

Securité via le CPSAgent

Diagramme de composants
!theme aws-orange
!define DEVBOX_COLOR #278ef5
!define DMP_COLOR #35D9C0
!define MSS_COLOR #DE5D80
!define INS_COLOR #07A2CF
!define CPS_COLOR #D34A3C
!define VITALE_COLOR #5FD67A
!define PSC_COLOR #ff7765
!define APCV_COLOR #c6e66d
!define ANNUAIRE_COLOR #7613e0
!define DATA_COLOR #ffa800
package "DevBox-santé DMP" {
    [dmp-security-cps-with-agent] 
    [cps-agent-client]
}

interface CpsProxy

[dmp-security-cps-with-agent] - [cps-agent-client]
[cps-agent-client] - CpsProxy : transaction sur internet 
Diagramme de classes

Les différentes classes en charge de la sécurité dans le mode CPS :

!theme aws-orange
!define DEVBOX_COLOR #278ef5
!define DMP_COLOR #35D9C0
!define MSS_COLOR #DE5D80
!define INS_COLOR #07A2CF
!define CPS_COLOR #D34A3C
!define VITALE_COLOR #5FD67A
!define PSC_COLOR #ff7765
!define APCV_COLOR #c6e66d
!define ANNUAIRE_COLOR #7613e0
!define DATA_COLOR #ffa800

interface CpsOperationProviderSpi

CpsAgentClient -U-|> CpsOperationProviderSpi

CpsConfigurationAdapter o-- CpsOperationProviderSpi
CpsConfigurationAdapter : AuthenticationKeyManager
CpsConfigurationAdapter : SignatureKeyManager
CpsConfigurationAdapter : PersonnelSantePopulator
CpsConfigurationAdapter o-- CxfEndPointFactory

CxfEndPointFactory : createEndPoint(...)  // point d'accès au service DMP
CxfEndPointFactory : setVIHF(...)  // gestion du jeton SAML
CxfEndPointFactory : setTLS(...)  // gestion du canal TLS

La CpsConfiguration permet d’initialiser deux KeyManager s’appuyant sur la CpsAgentClient pour accèder aux opérations disponibles de la carte CPS au travers le réseau. Ces deux KeyManager permettent de manières transparents d’accéder aux différents certificats et d’effectuer les opérations de signature disponibles dans la carte CPS. La CpsConfiguration permet d’initialiser la CxfEndPointFactory qui a pour responsabilité la gestion des accès au services du DMP.