Option 3b - DVA-ge??nitieerde Module Launch met SMART on FHIR
Koppelmij Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Option 3b - DVA-ge??nitieerde Module Launch met SMART on FHIR
Optie 3b: DVA-geïnitieerde Module Launch met SMART on FHIR
Het probleem wat we oplossen is het feit dat in het launch proces de browser geauthenticeerd moet worden. Indien we dit niet doen, is het stelen van de launch request (POST of GET) een onacceptabel risico.
In deze optie doet het PGO een launch naar de DVA, die vervolgens de module opstart met een SMART on FHIR flow. De DVA fungeert als tussenpartij die de module launch coördineert en beheert, waarbij de DVA volledige controle heeft over het authenticatie- en autorisatieproces.
Deze optie beschrijft een architectuur waarbij het PGO de gebruiker naar de DVA stuurt, waarna de DVA zelf de module launch initieert via SMART on FHIR. De DVA heeft hierdoor maximale controle over het proces. Op hoog niveau:
Het PGO doet het verzamelen en krijgt een access_token van de DVA
Voor module launch: PGO stuurt gebruiker naar DVA launch endpoint
DVA valideert de gebruikerssessie en bepaalt welke module te starten
DVA initieert SMART on FHIR launch naar de module
Module doorloopt standaard SMART flow met DVA als authorization server
Module krijgt access_token van DVA voor directe resource toegang
Voordelen van deze DVA-geïnitieerde aanpak:
Centrale controle: DVA beheert het volledige launch proces
Vereenvoudigde PGO integratie: PGO hoeft alleen naar DVA te redirecten
Consistente gebruikerservaring: DVA kan uniforme launch flow aanbieden
Module isolatie: Modules hoeven geen kennis te hebben van PGO
Flexibele module selectie: DVA kan dynamisch bepalen welke module te starten
Audit en compliance: Centrale logging en controle bij DVA
Standaard SMART compliance: Module gebruikt normale SMART launch
Hoofdstappen van het proces
1. Initiële PGO login
De gebruiker logt in bij zijn Persoonlijke Gezondheidsomgeving (PGO)
PGO maakt een sessie-status aan en bindt deze aan de PGO-sessie
Dit vormt het startpunt voor toegang tot digitale interventies
2. Verzamelen van gegevens
PGO vraagt DVA (Dienstverlener Aanbieder) om gegevens te verzamelen
DVA laat gebruiker inloggen via DigID voor authenticatie
Na succesvolle authenticatie krijgt DVA toegang en geeft een access_token terug aan PGO
PGO gebruikt dit token om FHIR-taken op te halen van DVA
PGO bewaart context informatie voor module launch
Opmerking: Dit is een OIDC (OpenID Connect) flow tussen PGO en DVA
3. Launch naar DVA
Gebruiker klikt op "start module" in PGO
PGO redirect gebruiker naar DVA launch endpoint:
GET {DVA_URL}/launch-module?module={module_id}&context={launch_context}
DVA valideert bestaande gebruikerssessie (cookie van stap 2)
Indien geen geldige sessie: DVA start nieuwe DigID authenticatie
DVA bepaalt welke module te starten op basis van context
4. DVA initieert SMART on FHIR launch
DVA genereert een launch token voor de moduleDVA redirect gebruiker naar module met SMART launch:
GET {MODULE_URL}/launch?launch={launch_token}&iss={DVA_FHIR_BASE_URL}
Launch token bevat module-specifieke context
Module ontvangt DVA als issuer voor SMART flow
5. SMART on FHIR Authorization Flow
5a. /authorize stap (front-channel):
Module redirects browser naar DVA /authorize endpoint
GET {DVA_URL}/authorize?response_type=code&client_id={module_id}&redirect_uri={module_redirect}&launch={launch_token}&state={module_state}
DVA valideert launch token en gebruikerssessie
DVA toont eventueel toestemmingsscherm
Na goedkeuring: redirect naar module met authorization code
5b. /token stap (back-channel):
Module doet /token request naar DVA met authorization code
Module authenticeert zich via client credentials
DVA genereert access_token voor FHIR toegang
Module ontvangt tokens voor resource toegang
6. Module functioneren
Module gebruikt access_token voor directe FHIR requests naar DVADVA beheert en monitort alle module interactiesVolledige audit trail van PGO launch tot module toegang
Module kan functioneren met DVA resources via geauthenticeerde toegang