Koppelmij Implementation Guide
0.1.0 - ci-build
Koppelmij Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
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.
Ontworpen voor/compatibel met vijf typen modules:
Voor het veilig starten van modules vanuit een PGO (Persoonlijke Gezondheidsomgeving) naar een DVA (Dienstverlener Aanbieder) zijn vijf verschillende oplossingen ontwikkeld:
DVA fungeert als SMART on FHIR authorization server waarbij browser authenticatie gebeurt via een cookie die tijdens de data verzamelfase wordt gezet. Het PGO initieert een OIDC flow met de DVA voor browser authenticatie. Voor gebruikers zonder langdurige toestemming wordt de bestaande cookie hergebruikt, terwijl gebruikers met langdurige toestemming opnieuw via DigID moeten inloggen. Deze aanpak biedt flexibele cookie-afhandeling en standaard OIDC compliance.
Het PGO fungeert als SMART on FHIR authorization server en gebruikt de bestaande PGO sessie voor browser authenticatie. De module start een standaard SMART launch flow met het PGO, waarna het PGO tijdens de /token
stap Token Exchange uitvoert met de DVA om namens de module een delegation token te verkrijgen. Module krijgt directe toegang tot DVA resources via DPoP tokens.
Vergelijkbaar met Optie 2a, maar hier voert de module zelf Token Exchange uit met de DVA. Het PGO geeft de module een tijdelijk token waarmee de module rechtstreeks een delegation token bij de DVA kan ophalen. Dit resulteert in de zuiverste implementatie van RFC 8693 omdat er geen tussenpartij namens de module handelt.
Deze optie combineert Token Exchange (RFC 8693) voor het verkrijgen van een launch token met verplichte gebruikersheridentificatie tijdens de SMART on FHIR flow. Het PGO gebruikt de opgeslagen DVA access_token om via Token Exchange een kortdurende launch_token te verkrijgen. Tijdens de module launch moet de gebruiker zich opnieuw identificeren via DigID, wat een dubbele beveiligingslaag biedt. Deze aanpak is bijzonder geschikt voor gevoelige zorgapplicaties vanwege de expliciete gebruikersverificatie per module launch.
In deze optie fungeert de DVA als centrale coordinator voor module launches. Het PGO stuurt de gebruiker naar een DVA launch endpoint, waarna de DVA bepaalt welke module te starten en zelf de SMART on FHIR launch naar de module initieert. De DVA behoudt volledige controle over het authenticatie- en autorisatieproces, waarbij de bestaande DVA-sessie uit de verzamelfase wordt hergebruikt. Deze aanpak vereenvoudigt de PGO-integratie aanzienlijk en biedt centrale controle voor compliance en audit doeleinden.
Alle opties gebruiken moderne OAuth2 extensies zoals Token Exchange (RFC 8693) en DPoP (RFC 9449) om veilige en standards-compliant oplossingen te bieden voor cross-domain module launches in de zorgverlening.