Authentification Directe via le CPS Agent

Authentification via le CPS Agent (Démon sur le poste client minimaliste)

Authentification Directe avec 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.

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


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

Diagramme de séquences

!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

CPS Agent Livre de cuisine

Comment mettre en œuvre les différentes DevBox-santé pour une authentification DMP en mode CPS-Agent