Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Inleiding

...

Drawio
borderfalse
diagramNameDelen
simpleViewertrue
width600
linksauto
tbstyletop
lboxtrue
diagramWidth561
revision12

In elke voltrekking van de in het diagram beschreven flow is steeds sprake van één van elk van de bovenaan genoemde rollen.

...

In onderstaande tabel staan de uitzonderingssituaties beschreven. Alle worden door de Dienstverlener aanbiederontdekt. Om te voorkomen dat de Dienstverlener persooninformatie over het bestaan van behandelrelaties verkrijgt zonder dat (al) bevestiging is gegeven, moet het onderscheid tussen de uitzonderingen 2, 3 en 4 niet te maken zijn door de Dienstverlener persoon.

nr.uitzonderingactievervolg
nr.uitzonderingactievervolg
UC Delen 1Dienstverlener aanbieder vindt het ontvangen verzoek ongeldig.Dienstverlener aanbieder informeert Dienstverlener persoon over deze uitzondering. Dienstverlener persoon informeert daarop Persoonhierover.Allen stoppen de flow onmiddellijk na geïnformeerd te zijn over de uitzondering.
UC Delen 2Dienstverlener aanbieder kan de identiteit van de Persoonniet vaststellen.Dienstverlener aanbieder informeert Dienstverlener persoon dat delen niet toegelaten wordt.


Allen stoppen de flow onmiddellijk na geïnformeerd te zijn over de uitzondering.

UC Delen 3Dienstverlener aanbieder stelt op enig moment vast dat betreffende informatie van Persoon bij Aanbieder niet welkom is. Hiervan is in elk geval sprake indien hetzij:
  • er geen behandelrelatie is aan te wijzen als grondslag voor het delen;
  • Persoon nog geen zestien jaar oud is.

Zie de toelichting op Beschikbaarheids- en ontvankelijkheidsvoorwaarde.

UC Delen 4De bevestiging wordt niet gegeven.
UC Delen 5Dienstverlener aanbieder kan het antwoord op de bevestigingsvraag niet vaststellen.Dienstverlener aanbieder informeert Dienstverlener persoon over deze uitzondering. Dienstverlener persoon informeert daarop Persoonhierover.Allen stoppen de flow onmiddellijk na geïnformeerd te zijn over de uitzondering.
UC Delen 6Dienstverlener persoon kan, zelfs na bevestiging, de gezondheidsinformatie alsnog niet plaatsen bij Dienstverlener aanbieder.Dienstverlener persoon informeert daarop Persoonhierover, met opgave van oorzaak.Mocht gezondheidsinformatie deels wel (geautoriseerd) geplaatst kunnen worden, dan kan de flow dat nog verzorgen.
UC Delen 7Persoon annuleert het inloggen.Dienstverlener aanbieder presenteert een annuleringspagina en biedt Persoonde optie om toch in te loggen.Indien Persoonkiest niet in te willen loggen, kan het scherm gesloten worden. Persoonkan er ook voor kiezen toch in te loggen. In dat geval vraagt Dienstverlener aanbieder weer om credentials.

...

Menige actie in het stroomdiagram is gekleurd weergegeven. De lichtgrijs gekleurde acties vormen samen de autorisatieflow volgens OAuth 2; de zachtgeel gekleurde acties vormen samen de authenticatieflow. Deze kleuren verwijzen dus alleen maar naar de gebruikte standaarden en zeggen niets over welke component de stap zou moeten uitvoeren. Authenticatie is dus ingebed in autorisatie.

Verantwoordelijkheden inzake uitzonderingen op de happy flow zijn opgenomen bij de respectievelijke interface, waar de uitzonderingen bij de usecases zijn genoemd.

Stroomdiagram

Inc drawio
borderfalse
pageId82253822
diagramDisplayName
lboxtrue
diagramNameDelen
aspectVWMkXXox1a1iX5rb695w
IKdkaHY4zuAWgsnGIEO3-1
includedDiagram1
simpleViewer
true
false
width
600
561
aspectHash
3f692057ecc54ce52954fdbf865ecba1723cc626
aaa03f115d781c33340d0a4332c5c055665fe154
linksauto
tbstyletop
pageId76677955
lboxtrue

In elke voltrekking van de in het diagram beschreven flow is steeds sprake van één van elk van de bovenaan genoemde rollen.

...

  1. De DVP Server start de flow door in de User Agent van de Persoon de mogelijkheid te presenteren om een bepaalde Gegevensdienst met een zekere Aanbieder te delen. Het gaat altijd om precies één Gegevensdienst (één scope, in OAuth-termen). Uit de Aanbiederslijst weet de DVP Server welke Gegevensdiensten door een Aanbieder.
  2. aangeboden worden. Desgewenst worden de Gegevensdienstnamen uit de Gegevensdienstnamenlijst gebruikt.
  3. De Persoon maakt expliciet zijn selectie en laat de User Agent een deel-verzoek sturen naar de Authorization Server. Het adres van het authorization endpoint komt uit de Aanbiederslijst. De redirect URI geeft aan waarnaartoe de Authorization Server de User Agentverderop moet redirecten (met de authorization code).
  4. Daarop begint de Authorization Server de OAuth-flow (in zijn rol als OAuth Authorization Server) door een sessie te creëren.
  5. De Authorization Server vraagt de Persoon via zijn User Agent in te loggen.
  6. Dan start de Authorization Server (nu in de rol van Authentication Client) de authenticatieflow door de User Agent naar de Authentication Server te redirecten, onder meegeven van een redirect URI, die aangeeft waarnaartoe de Authentication Server straks de User Agent moet terugsturen, na het inloggen van de Persoon.
  7. De Authentication Server vraagt van de Persoon via zijn User Agent om inloggegevens.
  8. Wanneer deze juist zijn, redirect de Authentication Server de User Agent terug naar de Authorization Server, onder meegeven van een ophaalbewijs. Wanneer het inloggen is afgebroken geeft de Authorization Server de Persoon alsnog de mogelijkheid via zijn User Agent in te loggen.
  9. Met dit ophaalbewijs haalt de Authorization Server rechtstreeks bij de Authentication Server het BSN op.
  10. Dan breekt het vroegste moment aan waarop de Authorization Server ervoor instaat dat de Aanbieder voor de betreffende Gegevensdienst überhaupt ontvankelijk is voor de gezondheidsinformatie van die Persoon, of anders de happy flow afbreekt. Daarvan maakt deel uit dat de Persoon daarvoor minstens 16 jaar oud moet zijn.
  11. Zo ja, dan presenteert de Authorization Server via de User Agent aan Persoon de vraag of laatstgenoemde bevestigt de gevraagde persoonlijke gezondheidsinformatie door de DVP Server (als OAuth Client) te laten aanbieden. Onder het stroomdiagram staat gespecificeerd welke informatie, waarvandaan, de OAuth Authorization Server verwerkt in de aan Persoon voor te leggen bevestigingsvraag.
  12. Bij akkoord logt de Authorization Server dit als bevestiging, genereert een authorization code en stuurt dit als ophaalbewijs, door middel van een browser redirect met de in stap 1 ontvangen redirect URI, naar de DVP Server. De Authorization Server stuurt daarbij de local state-informatie mee die hij in de eerste stap van de DVP Server heeft gekregen. Laatstgenoemde herkent daaraan het verzoek waarmee hij de authorization code moet associëren.
  13. De DVP Server vat niet alleen deze authorization code op als ophaalbewijs, maar leidt er ook uit af dat de bevestiging is gegeven en logt het verkrijgen van het ophaalbewijs.
  14. Met dit ophaalbewijs wendt de DVP Server zich weer tot de Authorization Server, maar nu zonder tussenkomst van de User Agent, voor een access token.
  15. Daarop genereert de Authorization Server een access token. Dan breekt het uiterste moment aan waarop de Authorization Server ervoor moet instaan dat voor de betreffende Gegevensdienst de Aanbieder ontvankelijk is voor de gezondheidsgegevens van de betreffende Persoon. Is dat zo, dan verstuurt de Authorization Server het access token naar de DVP Server. Is dat niet zo, dan breekt de Authorization Server de happy flow af en stuurt zij geen access token naar de DVP Server.
  16. Nu is de DVP Server gereed om de gezondheidsinformatie aan de Resource Server aan te bieden, nadat hij de gebruiker eventueel nog nadere keuzes heeft laten maken. Het adres van het resource endpoint haalt hij uit de ZAL. Hij plaatst het access token in het bericht en zorgt ervoor dat in het bericht geen BSN is opgenomen.
  17. De Resource Server controleert of het ontvangen token recht geeft op het aanbieden van de informatie, plaatst deze (al dan niet) bij achterliggende bestemmingen en verstuurt een antwoord in een FHIR-response naar de DVP Server.
  18. Deze maakt hierover een aantekeningen bij de aangeboden gezondheidsinformatie in het persoonlijke dossier. Mocht de Gegevensdienst waartoe de Persoon heeft geautoriseerd uit meerdere Transacties bestaan (zie hiervoor de Catalogus), plaatst de DVP Serverdaarna mogelijk opnieuw bij de Resource Server voor de nog resterende Transacties, eventueel na nieuwe interactie met de Persoon. Dat geldt ook voor de situatie waarin één Transactie, blijkens de betreffende Informatiestandaard, uit meerdere FHIR creates bestaat. Zolang het access token geldig is, kan dat.

In de regel worden bij een eenmalig gebruik van de functie Delen het authorization interface, het token interface en het resource interface allemaal aangesproken, in die volgorde. Mocht de DVP Server echter nog beschikken over een nog niet verlopen access token voor de betreffende Aanbieder-Gegevensdienst-combinatie, dan kan het onmiddellijk het resource interface aanspreken.

...

Technologielaag

Inc drawio
borderfalse
pageId82253822
diagramDisplayName
lboxtrue
diagramNameDelen
aspectxuL6QZWjMyFWABkTuKpr vNLa4sLWtW2as5LIbVyj-1
includedDiagram1
simpleViewertruefalse
width600561
aspectHashedcd010f66c520fbe4e697cb87d02cf8936874b3e9cde3b2b72ed61ec802f327c871019cdd073d01
linksauto
tbstyletop
pageId76677955
lboxtrue

In bovenstaand stroomschema geven de dikke pijlen het MedMij-verkeer weer en zijn daarbinnen de vijf gevallen van frontchannel-verkeer (open pijlpunt) en vier gevallen van backchannel-verkeer (gesloten pijlpunt) aangegeven.

...