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-R2dmp-cda-tools
: contient le code de validation des documents à envoyer au DMP ainsi que la génération htmldmp-client-impl
: implémentation du client DMPC en mode embeddeddmp-cnda-tools
: permet de récupérer les fichiers de tests du CNDAdmp-core
: contient le code commun a tous les modulesdmp-exemples
: contient différents exemples de déploiements du DMPC Clientdmp-hl7
: implémentation standard HL7 utile pour le DMPdmp-homologation
: contient le code permettant l’homologation de l’apidmp-proxy-rest
: implémentation du proxy REST du client DMPCdmp-proxy-ws
: implémentation du proxy SOAP du client DMPCdmp-schema-gen
: contient les outils de génération de code à partir des différents schémas xsd et des wsdls de XDS et desdmp-tool
: outil commun à tous les modules.dmp-security-**
: contient l’implémentation des différents modes de sécuritésdmp-ws-client
: contient le code des clients au webservices du DMP autre que XDSdmp-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.