Architecture technique
Architecture logicielle de la DevBox-Santé eProxy
Le eProxy peut être intégré indépendamment ou pas des autres composants de la DevBox Santé.
EProxy seul
Dans cette architecture le eProxy rempli les fonctions définies par l’ANS à savoir:
- Connexion à PSC
- Intérrogation des services de l’Espace de Confiance via des messages SOAP notamment pour les télé-services des services socles.
!theme aws-orange
!define DEVBOX_COLOR #278ef5
!define EPROXY_COLOR #2f78cc
skinparam dpi 150
left to right direction
actor "Utilisateur\n(navigateur / mobile)" as Client
rectangle "Espace de confiance PSC" as EspacePSC {
component "Backend Solution métier" as Backend
card "Docker Network\n(private)" as DockerNet DEVBOX_COLOR {
component "DevBox-Santé eProxy\n(API / Auth / CIBA / Code flow)\n(port 443)" as proxy EPROXY_COLOR
database "MongoDB\n(port 27017)" as mongo
database "Redis(optionnel)\n(port 6379)" as redis
}
cloud "Pro Santé Connect" as PSC
cloud "Fournisseurs Services PSC \nDMP, INSi, ePresc... " as services
}
' Flows
Client --> Backend : HTTPs\n / API
Backend --> proxy : HTTPs (Authentification PSC)
Backend --> proxy : HTTPs (SOAP)
proxy --> PSC : mTLS
proxy --> mongo : TCP 27017\nDB read/write (internal)
proxy --> redis : TCP 6379\nDB read/write (internal)
proxy --> services : mTLS\nAPI calls (SOAP)
' Annotations
note right of proxy
- Stocke tokens PSC en session ou sur Redis (access/refresh/id_token)
- Endpoint /oauth2/ciba -> CIBA
- Endpoint /oauth2/codeflow/{{clientId}} -> Code Flow
end note
Avec les composants de la DevBox-Santé
Dans cette architecture le eProxy rempli les fonctions que précédemment mais en ajoutant la possibilité d’utiliser les composants de la DevBox Santé.
- La compléxité de l’appel aux services socles est pris en charge. L’intégrateur utilise à la place des services REST simplifiés.
!theme aws-orange
!define DEVBOX_COLOR #278ef5
!define EPROXY_COLOR #2f78cc
!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
left to right direction
actor "Utilisateur\n(navigateur / mobile)" as Client
rectangle "Espace de confiance PSC" as EspacePSC {
node "Environnement Integrateur" {
component "Backend Solution métier" as Backend
card "Docker Network\n(private)" as DockerNet DEVBOX_COLOR {
together {
component "DevBox-Santé" as devbox DEVBOX_COLOR {
component "DevBoxSanté_DMP\n\n Validation/CI-SIS\n CDA/XDS\n SOAP/SAML\n Schematron" as dbx_dmp DMP_COLOR
component "DevBoxSanté INS\n\n Validation/CI-TLSI-AMO\n SOAP/SAML" as dbx_ins INS_COLOR
}
}
component "DevBox-Santé eProxy\n(API / Auth)" as proxy EPROXY_COLOR
database "MongoDB" as mongo
database "Redis" as redis
}
}
cloud "Pro Santé Connect" as PSC
cloud "Fournisseurs Services PSC \nDMP, INSi, ePresc... " as services
}
' Flows
Client --> Backend : HTTPs
Backend --> devbox : HTTPs (REST) \n/dmp, /insi, /epresc ...
dbx_dmp --> proxy : HTTP (SOAP)
dbx_ins --> proxy : HTTP (SOAP)
Backend --> proxy : \n\n\nHTTPs\n(Authentification PSC)
proxy --> PSC : mTLS
proxy --> mongo
proxy --> redis
proxy --> services : mTLS\nAPI calls
Pour installer/composer avec les différents composants : voir Installation