Business
Bovenstaand diagram bevat een uitwerking voor de functie Verzamelen, maar voor de functie Delen geldt dezelfde flow.
Persoon opent zijn PGO. Persoon geeft binnen zijn PGO aan dat hij gegevens wil uitwisselen (verzamelen of delen) met één of meerdere aanbieders.
De eerste keer leidt de PGO de Persoon naar de Authorization server van Mitz. Later in de tijd is dit niet nodig, omdat de PGO en Mitz elkaar al kennen en geautoriseerd zijn.
Voor de authenticatie van de persoon stuurt Mitz de Persoon door naar Digid.
DigiD stuurt, nadat de persoon geauthenticeerd is, het BSN van de Persoon naar Mitz.
Mitz stuurt de persoon door naar het toestemmingen register om zijn toestemming voor het uitwisselen met het PGO vast te leggen.
Het toestemmingen register geeft terug dat er toestemmingen zijn vastgelegd.
Mitz stuurt naar de PGO dat deze geautoriseerd is om gegevens bij Mitz op te halen.
De PGO verzoekt Mitz om de gegevens van de persoon.
Mitz controleert de toestemmingen. De persoon moet eerder al toestemming hebben gegeven voor de uitwisseling van gegevens.
De bekende toestemmingen worden binnen Mitz gedeeld met de Authorization server, zodat deze kan bepalen wat teruggegeven moet worden aan de PGO.
Mitz controleert de locaties waar gegevens bekend zijn van (de BSN behorende bij) de Persoon.
De bekende locaties worden binnen Mitz gedeeld met de Authorization server, zodat deze kan bepalen wat teruggegeven moet worden aan de PGO.
De gegevens van de Persoon, inclusief de locaties (URA’s van de Zorgaanbieders) worden teruggegeven aan de PGO. Hierbij wordt de BSN niet meegestuurd.
De PGO stuurt een verzoek naar de Authorization server van de Dienstverlener aanbieder die namens een Zorgaanbieder gegevens uitwisselt binnen MedMij.
De Dienstverlener aanbieder vraagt Mitz om te controleren of dit verzoek ingewilligd mag worden.
Mitz geeft aan dat het verzoek oké is en geeft de BSN van bijbehorende Persoon terug aan de Dienstverlener aanbieder.
De Dienstverlener aanbieder voert een beschikbaarheids- of ontvankelijkheidstoets uit.
Als alles oké is, verleent de authorization server van de Dienstverlener aanbieder de PGO autorisatie om gegevens uit te wisselen.
De PGO verzoekt de Resource server van de Dienstverlener aanbieder om gegevens van de Persoon.
De Dienstverlener aanbieder stuurt de aanwezige gegevens terug naar de PGO.
Applicatie
Bovenstaand diagram bevat een uitwerking voor de functie Verzamelen, maar voor de functie Delen geldt dezelfde flow.
Persoon opent zijn PGO. Persoon geeft binnen zijn PGO aan dat hij gegevens wil uitwisselen (verzamelen of delen) met één of meerdere aanbieders.
De User agent stuurt een OpenIdConnect authorization request naar de AuthorizationServer van Mitz.
De AuthorizationServer van Mitz stuurt een authenticatie verzoek naar de DigiD.
DigiD stuurt, nadat de persoon geauthenticeerd is, het BSN van de Persoon naar de Authorization server van Mitz.
De Authorization server van Mitz stuurt de persoon naar het toestemmingen register van Mitz om daar de toestemming voor uitwisseling vast te leggen.
Toestemmingen register meldt de Authorization server dat er toestemming is vastgelegd.
De Authorization server stuurt een Authorization code naar de User agent.
De User agent stuurt een OpenIdConnect Token ruwst naar de Authorization server van Mitz.
De Authorization server van Mitz controleert de Authorization code of het refresh token.
Indien deze in orde is, stuurt de Authorization server van Mitz een access token en refresh token naar de User agent terug.
De User agent stuurt het acces token als verzoek om userinfo naar Authorization server van Mitz.
De Authorization server van Mitz controleert het acces token.
Als het acces token in orde is, stuurt de Authorization server van Mitz een verzoek om toestemmingen naar het Toestemmingen register.
Het Toestemmingen register stuurt de toestemmingen behorende bij het gegeven BSN en desbetreffend PGO terug naar de Authorization server van Mitz.
De Authorization server van Mitz stuurt vervolgens een verzoek om locaties naar de Lokalisatie server van Mitz.
De Lokalisatie server verzamelt de bekende locaties behorende bij het gegeven BSN
Vervolgens stuurt de Lokalisatie server de locaties terug naar de Authorization server.
De Authorization server van Mitz bepaalt voor welke locaties toestemming is afgegeven.
De Authorization server van Mitz stuurt dan een ID token inclusief de locaties naar de User agent.
De User agent bepaalt aan de hand van de verkregen URA’s de in de ZAL vastgelegde dicsovery endpoints.
De User agent stuurt een verzoek naar Discovery server van de Dienstverlener aanbieder.
De Discovery server van de Dienstverlener aanbieder stuurt het Endpoints van de authorization server van de Dienstverlener aanbieder terug naar de User agent.
De User agent stuurt een ID token als token request naar de Authorization server van de Dienstverlener aanbieder.
De Authorization server van de Dienstverlener aanbieder stuurt een verzoek toestemming tot gegevensuitwisseling naar de Authorization server van Mitz.
De Authorization server van Mitz controleert het ID token.
Indien er toestemming is, stuurt de Authorization server van Mitz de toestemming en BSN naar de Authorization server van de Dienstverlener aanbieder.
De Authorization server van de Dienstverlener aanbieder voert de beschikbaarheids- of ontvankelijkheidstoets uit.
Als de toets slaagt, stuurt de Authorization server van de Dienstverlener aanbieder een access token naar de User agent.
De User agent stuurt het access token als Resource request naar de Resource server van de Dienstverlener aanbieder.
De Resource server van de Dienstverlener aanbieder stuurt de gegevens naar de User agent.
Overwegingen/discussie
Risico : DVP doet uitvraag bij DVA die geen koppeling heeft met een aanbieder die een BSN van mij heeft. DVA kan dan beschikken over een BSN-URA combinatie, terwijl hij geen contract heeft met die URA. DVA werkt in opdracht van de aanbieder. Als hij dus niet vooraf de URA controle doet, houdt hij zich niet aan het afsprakenstelsel. Vertrouwensmodel.
Om gegevensvermenging te voorkomen, willen we graag een pseudoniem(vh BSN) mee terug krijgen in het token zodat een DVP altijd 1 persoon per dossier heeft.
Altijd een koppeling met Zorg-AB houden, voor de situatie dat een zorgaanbieder nog niet is aangesloten op Mitz (nog geen abonnement heeft). Toestemming is dan wel te controleren.
Omdat je als Persoon een gebruikersverklaring tekent bij DVP om een levensloopdossier aan te maken, ga je akkoord dat de DVP gegevens uitwisselt met Mitz en dus heeft Mitz grondslag om gegevens te delen met het DVP.
Na de eerste keer inloggen met DigiD kom je in Mitz en geef je toestemming om gegevens uit te wisselen tussen alle aanbieders en jouw PGOs. Vastleggen toestemming PGO, moet op dezelfde manier kunnen worden vastgelegd als voor zorverlener-zorgverlener toestemming. Vastleggen toestemming en gebruiken toestemming lostrekken. Vastleggen kan dus los via de browser. Of bij de eerste keer vanuit je DVP dat je naar Mitz gaat. Keuze individueel of categoraal vastleggen ligt bij Mitz. Bij categoraal zal Mitz wel de clientId’s moeten weten. Staan in de lijst OCL.
Vanuit je DVP geef je aan dat je gegevens wilt uitwisselen, dan word je naar Mitz geleid en ontvang je na authenticatie een acces token terug. Gebruik toestemming is dus altijd vanuit de DVP.
PGO wordt nu als derde partij gezien en niet als verlengstuk van de Persoon. Dus nu is toestemming nodig. Albert vraagt bij de juristen na of je als MedMij zonder toestemming toe kan. Koppeling met Mitz is dan voor lokalisatie (BSN).