CPS Agent Livre de cuisine
Comment mettre en œuvre les différentes DevBox-santé pour une authentification DMP en mode CPS-Agent
Scenario possible : Le frontend de l’intégrateur, passe le contexte d’authentification de la DevBox-Santé CPS agent se trouvant sur le poste client au backend. Le backend initie une session TLS/SSL avec le serveur DMP grâce au CpsAgentClient.
!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
node "Poste Client (Windows/Mac/Linux)" {
[FrontEnd intégrateur] as frontend
package "DevBox-Santé Proxy REST" as cpsAgent DEVBOX_COLOR {
[DevBox-sante CPS] as cps CPS_COLOR
}
[Cryptolib CPS (ANS)] as cryptolibCPS
}
node "Environnement intégrateur" {
[BackEnd intégrateur] as backend
package "DevBox-Santé Proxy REST" DEVBOX_COLOR {
component "DevBox-sante DMP" as dmpFacade DMP_COLOR {
[CpsAgentClient] CPS_COLOR
}
}
}
cloud "**DMP**" as DMP
frontend -d-> backend : 1
backend -d-> dmpFacade : 2
CpsAgentClient -> cpsAgent : 3
cps -down-> cryptolibCPS : 4
dmpFacade -down-> DMP : 5
!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
box "Poste Client"
participant frontend
participant cpsAgent CPS_COLOR
end box
box "Environnement intégrateur" #white
participant "DevBox-Santé DMP" as dbxdmp DMP_COLOR
participant backend
end box
participant "**DMP**" as dmp
frontend -> backend : storeDocumentPatient
backend -> dbxdmp : /dmp/td21SubmitDocuments
== initialisation d'une connexion SSL en authentification mutuelle avec le DMP ==
dbxdmp -> "DMP" as dmp : [SSL] 1. Client Hello
dmp -> dbxdmp : [SSL] 2. Server Hello (certificat du DMP server inclus)
dmp -> dbxdmp : [SSL] 3. Client certificate request
dbxdmp -> cpsAgent : HTTP GET /cps/authenticationCertificate
cpsAgent -> dbxdmp : {certificate authentification}
dbxdmp -> dmp : [SSL] 4. Client certificate
dbxdmp -> dmp : [SSL] 5. Client sends key info \n(encrypted with DMP server public's key)
dbxdmp -> cpsAgent : HTTP POST /cps/sign/for/authentication/SHA256WithRSA body : {handshake data}
cpsAgent -> dbxdmp : {signed handshake data}
dbxdmp -> dmp : [SSL] 6. Certificate verify \n (with Digital Signature)
dbxdmp -> dmp : [SSL] 7. Finnished message \n (encrypted with symmetric key)
dmp -> dbxdmp : [SSL] 8. Finnished message \n (encrypted with symmetric key)
== fin de l'initialisation de la connexion ssl avec le DMP ==
dbxdmp -> dmp : POST SOAP message de soumission (XDS/CDA)
dmp -> dbxdmp : SOAP response OK
dbxdmp -> backend : HTTP 200 Ok
backend -> frontend : ok
Comment mettre en œuvre les différentes DevBox-santé pour une authentification DMP en mode CPS-Agent