Architectures
Côté serveur
Les 3 architectures suivantes peuvent être mises en œuvre en même temps avec un seul container Docker. Il s’agit finalement de la mise en avant de chaque mode d’authentification dans l’écosysteme DevBox-Santé.
Docker avec certificat P12
Cette architecture permet d’accéder aux différents téléservices en utilisant un certificat serveur de l’IGC-Santé.
Particularité : Architecture qui convient bien au milieu hospitalier. Impossibilité d’accéder aux lecteurs de carte.
@startuml
!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 EPRESC_COLOR #555fa7
!define DATA_COLOR #ffa800
!define GREY_COLOR #cccccc
left to right direction
card "Docker Container" GREY_COLOR {
card "DevBox-Santé" as devbox DEVBOX_COLOR {
card "Connecteurs" as connecteurs {
[DevBox-sante DMP] as dmp DMP_COLOR
[DevBox-sante INSi] as ins INS_COLOR
[DevBox-sante MSS] as mss MSS_COLOR
}
}
}
[Solution logicielle\nintégrateur] as backend
cloud "**DMP**" as DMP
cloud "**Opérateurs MSS (Ségur)**" as operateur
cloud "**Téléservices Sesam-Vitale**" as TS
backend --> devbox : REST (envoi certificats dans l'entête HTTP)
dmp --> DMP : SOAP
ins --> TS : SOAP
mss --> operateur : SMTP/IMAP
@enduml
Docker dbx-agent
Cette architecture permet d’utiliser le lecteur de cartes CPS et Vitales tout en laissant la logique métier d’appel au backend de l’intégrateur.
Particularité : À l’avantage du client lourd et de la containarisation Docker. Reste l’installation du dbx-agent sur le poste de l’utilisateur.
@startuml
!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 EPRESC_COLOR #555fa7
!define DATA_COLOR #ffa800
!define GREY_COLOR #cccccc
left to right direction
card "Poste Client (Windows/Mac/Linux)" GREY_COLOR {
[FrontEnd intégrateur] as frontend
card "dbx-agent" as dbxagent DEVBOX_COLOR {
card "Composants" as composants {
[DevBox-sante CPS] as cps CPS_COLOR
[DevBox-sante Vitale] as vitale VITALE_COLOR
}
[CryptolibCPS] as cryptolibCPS
[Api Vitale] as sesamVitale
}
}
card "Docker Container" GREY_COLOR{
card "DevBox-Santé" as devbox DEVBOX_COLOR {
card "Connecteurs" as connecteurs {
[DevBox-sante DMP] as dmp DMP_COLOR
[DevBox-sante INSi] as ins INS_COLOR
[DevBox-sante ApCV] as apcv APCV_COLOR
[DevBox-sante E-Presc] as epresc EPRESC_COLOR
}
}
}
[Solution logicielle\nintégrateur] as backend
cloud "**DMP**" as DMP
cloud "**Téléservices Sesam-Vitale**" as TS
frontend --> backend
frontend ..> dbxagent : dbx://{dbxAgentSessionId}
backend --> devbox : {dbxAgentSessionId}
cps <--> cryptolibCPS : natif
vitale <--> sesamVitale : natif
devbox <--> dbxagent : wss://{dbxAgentSessionId}
dmp --> DMP : SOAP
ins --> TS : SOAP
apcv --> TS : SOAP
epresc --> TS : SOAP
@enduml
Docker eProxy
Cette architecture met en avant le support de ProSanté-Connect dans la DevBox-Santé.
Particularité : Elle permet d’ajouter le support de Pro-Santé Connect. Elle nécessite un composant supplémentaire la DevBox-Santé eProxy.
@startuml
!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 EPRESC_COLOR #555fa7
!define EPROXY_COLOR #2f78cc
!define DATA_COLOR #ffa800
!define GREY_COLOR #cccccc
left to right direction
card "Docker Network" GREY_COLOR {
component "DevBox-Santé eProxy\n(API / Auth)" as proxy EPROXY_COLOR
card "DevBox-Santé" as devbox DEVBOX_COLOR {
card "Connecteurs" as connecteurs {
[DevBox-sante DMP] as dmp DMP_COLOR
[DevBox-sante INSi] as ins INS_COLOR
[DevBox-sante MSS] as mss MSS_COLOR
[DevBox-sante E-Presc] as epresc EPRESC_COLOR
}
}
}
[Solution logicielle intégrateur] as backend
cloud "**DMP**" as DMP
cloud "**Opérateurs MSS (Ségur)**" as operateur
cloud "**Téléservices Sesam-Vitale**" as TS
cloud "**ProSantéConnect**" as PSC
backend --> proxy : Authentification PSC
proxy --> PSC : mTLS/Auth
backend --> devbox : jwt token
dmp --> proxy : SOAP
ins --> proxy : SOAP
epresc --> proxy : SOAP
proxy --> DMP : mTLS/SOAP
proxy --> TS : mTLS/SOAP
mss --> operateur : SMTP/IMAP
@enduml
Poste Utilisateur
Cette architecture permet d’accéder localement aux différents lecteurs de carte, à la cryptolibcps, aux apis de lecture sesam-vitale.
Particularité : Toute la DevBox-Santé est installé sur le poste de l’utilisateur.
@startuml
!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 EPRESC_COLOR #555fa7
!define DATA_COLOR #ffa800
!define GREY_COLOR #cccccc
left to right direction
card "Poste Utilisateur (Windows/Mac/Linux)" GREY_COLOR {
[Logiciel métier intégrateur\nClient Web/Lourd] as frontend
card "DevBox-Santé" as devbox DEVBOX_COLOR {
card "Connecteurs" as connecteurs {
[DevBox-sante DMP] as dmp DMP_COLOR
[DevBox-sante INSi] as ins INS_COLOR
[DevBox-sante MSS] as mss MSS_COLOR
[DevBox-sante ApCV] as apcv APCV_COLOR
[DevBox-sante E-Presc] as epresc EPRESC_COLOR
}
card "Composants" as composants {
[DevBox-sante CPS] as cps CPS_COLOR
[DevBox-sante Vitale] as vitale VITALE_COLOR
}
[Cryptolib CPS (ANS)] as cryptolibCPS
[Api SesamVitale] as sesamVitale
}
}
cloud "**DMP**" as DMP
cloud "**Mailiz**" as mailiz
cloud "**Téléservices Sesam-Vitale**" as TS
frontend --> connecteurs : REST (localhost)
frontend --> composants : REST (localhost)
cps <--> cryptolibCPS : appel natif
vitale <--> sesamVitale : appel natif
dmp --> DMP : SOAP
ins --> TS : SOAP
apcv --> TS : SOAP
epresc --> TS : SOAP
mss --> mailiz : SOAP
@enduml