Het specificeren van toegang houdt in dat toegangsregels gedefinieerd worden a.d.h.v. systemen en/of personen aan de hand van applicatierollen welke bevoegdheden (toegangsrechten) ze krijgen de applicatieinstantie krijgt met betrekking tot welke gegevens (resource) en interacties (functies). Hierbij kan onderscheid gemaakt worden in de bevoegdheden tot het aanmaken (C=Create), lezen (R=Read), wijzigen (U=Update), en verwijderen (D=Delete).
Let op: Hier zit het kunnen lanceren van een applicatie nog niet als interactie toegevoegd, omdat dit geen FHIR interactie is. We zouden wel een E=Execute interactie ($operatie) kunnen definiëren op een Device resource.
Verder
Overwegingen
Applicatieinstantie
Een applicatie kan één of meerdere applicatierollen hebben. Binnen een domein heeft een applicatie slechrs een applicatieinstantie en daarmee één applicatierol.
rollen en rechten toekennen
RBAC
twist: 1 type recht kijkt naar eigenaarschap van het object
Toepassing, restricties en eisen
Hoe:
- We gaan de toegangsregels voor resources in de FHIR Store koppelen aan een (FHIR)
Device
identiteit, in plaats van dit namens een gebruiker te doen. Een Device is een gefabriceerd product (applicatie of systeem) dat bij het verlenen van gezondheidszorg gebruikt wordt, zonder dat het door die activiteit substantieel wordt gewijzigd. - De identiteit (
Device.identifier
) wordt gemapt op de client_id van de een applicatie instantie. - Bij elke interactie , met de FHIR Resource Provider MOET er een toegangstoken meegestuurd worden. In dit toegangstoken staat aangegeven welk Device, zie het veld "
azp
"- authorized party in het toegangstoken,toegang vraag vraagt tot bepaalde resources. - Verder kan wordt in het toegangstoken het veld "
sub
"- subject meegestuurd worden , dat de (technische) identifier van een gebruiker aangeeft, waarop een Device verdere acties op kan ondernemen. Zie ook: Het token introspection endpoint. - Toegangstokens worden alleen toegekend aan vertrouwde (en geïdentificeerde)
Devices
, die acteren in een bepaalde systeemrol rol en hiermee wordt de toegang gecontroleerd tot de FHIR Resource Provider. - Elke resource instantie heeft een (
Device
) eigenaar, die in het extensie veld 'resource-origin
' van een resource wordt vastgelegd. - Wanneer er geen toegang verleend wordt is de response simpelweg "
Unauthorized
". Technische details over waarom iets niet mag wordt in de FHIR Store applicatie logs geregistreerd.
De volgende toegangsrechten (scopes) op resources en de daarbij behorende interacties worden toegekend:
...
Bij Koppeltaal 2.0 willen we alleen gecertificeerde (en vervolgens geregistreerde) applicaties of systemen (Devices) machtigen op bewerkingen op een object (resource) waartoe een consument 'consumer' of 'client' toegang wil hebben. De machtigingen zullen gegroepeerd en vastgelegd worden in (systeem/applicatie) rollen. Een (systeem/applicatie) rol kenmerkt de functies die iedereen, een vergunner of eigenaar kan uitvoeren. ( Systeem/Applicatie ) rollen kunnen worden toegewezen aan 1 of meerdere consumenten 'consumer'en (of client instanties). Elk consument Elke 'consumer' of 'client instantie' krijgt een rol. Als de rol de juiste machtigingen heeft om toegang te krijgen tot een object, krijgt die gebruiker dat systeem toegang tot het object om zijn bewerkingen op die objecten uit te voeren.
Let op: Indien de juiste machtigingen niet in de (basis) rol zijn vastgelegd, kan een nieuwe rol (eventueel) gedefinieerd worden, waarin wel de juiste machtigingen zijn gedefinieerd.
Terminologieën
Er zijn verschillende soorten termen en specificaties in Koppeltaal voor systemen en/of applicaties. Het is voor de coherentie van de architectuur belangrijk het gebruik van deze verschillende termen nader te specificeren. De volgende specificaties worden voor de volgende termen gehanteerd:
eHealth. Het gebruik van informatie- en communicatietechnologie ter ondersteuning of verbetering van de gezondheid en de gezondheidszorg.
Client of Consument'consumer'. Is een gebruiker (persoon of systeem) die systeem wat een dienst afneemt bij een dienstverlener.Anchor Client Client Platform. Een platform is waarmee een (eind)gebruiker interactie heeft om toegang te krijgen tot een op (afstand) gelanceerde gelanceerd of opgestarte opgestart programma, module of app. Het platform kan gebruik maken van, of diensten verlenen aan het programma, module of app.
Dienstverlening (Provider). Een programma, module of app die onderdeel is van een activiteit die informatie verzameld en gebruikt in een (zorg)proces.
Portaal. Een toegangspoort of -(verzamel)punt tot informatie over een bepaald onderwerp. Het kan ook worden beschouwd als een bibliotheek met gepersonaliseerde en gecategoriseerde inhoud voor een groep personen die toegang krijgen tot functionaliteiten over of het gebruik van een activiteit.
EPD. Elektronische Elektronisch Patiënten of Client Dossier die informatie bevat over de participanten die betrokken zijn in het zorgproces en die van belang voor het zorgproces.
ROM. Routine Outcome Measurement worden ingezet om voor, tijdens en na het zorgproces te meten wat de conditie/status is van de patiënt of cliënt.
- Zorgverlener. Omvat alle professionelen of instellingen die geneeskundige verzorging verlenen.
(Basis) rollen voorstel voor Koppeltaal v2.0
Voor de toegangscontrole zijn de volgende basis (systeem) rollen gedefinieerd voor applicaties (LET OP: Draft):
- Clientportaal. Is een beveiligde online omgeving waarin een client (de patiënt of derde) inzage heeft in de 'eigen' gegevens die in het informatiesysteem van één zorgverlener staan.
- Behandelaarsportaal. Is een beveiligde online omgeving waarin een behandelaar (zorgverlener) inzage heeft in de voortgang en resultaten van een uitgezette (zorg)behandeling.
- Zorg ondersteuning. Is een beveiligde product die de ondersteuning levert voor de GGZ instelling, zoals het opvoeren van patiënten en behandelaren.
- eHealth Module. Is een module (eventueel ontsloten via een ander platform) die gebruikt of ingezet wordt voor of tijdens een bepaalde behandeling.
- Beheerportaal. Is een beveiligde online omgeving waarin beheerders (technische) configuraties voor Koppeltaal kunnen doorvoeren en beheren.
Een resourceType kan dus aangemaakt (C-Create) worden, uitgelezen (R-Read) worden, aangepast worden (U-Update) of verwijderd worden (D-Delete), door iedereen (ALL), vergunners (GRANTED) of alleen de resource eigenaars (OWN) .
De volgende matrix is een autorisatie matrix, die per (basis) rol de rechten weergeeft op een resourceType die in Koppeltaal 2.0 gebruikt wordt.
Deze autorisatie matrix kan als basis dienen voor het verlenen van rechten aan nieuwe applicaties door ze aan een basisrol te koppelen, om zo toegang te krijgen tot Koppeltaal 2.0, om het vertrouwen in en tussen partijen en organisaties te bevorderen. Het moet inspelen op de behoeften van een breed scala aan organisaties in de zorg. We proberen hiermee inzicht te krijgen in de soort producten, en de omgang tussen de verschillende producten met risico's, zoals reikwijdte, locatie, bedrijfsmiddelen, afhankelijkheden en infrastructuur van Koppeltaal.
Autorisatie Matrix
...
(Systeem)rol /resourceType
...
ActivityDefinition
...
Patient
...
Practitioner
...
RelatedPerson
...
EndPoint
...
Subscription
...
C(),
...
C(), R(ALL), U(ALL), D(ALL)
...
C(), R(ALL), U(ALL), D(ALL)
...
C(), R(OWN), U(OWN)
...
- Een rol kan pas aan een applicatie instantie toegekend worden, als de applicatie zich geregistreerd is en een client_id gekregen heeft.
- De rol 'Clientportaal' mag hier bijvoorbeeld dus Patient gegevens niet direct aanpassen, dat gebeurt dan via de rol 'Zorg ondersteuning'. Anders moeten we elk veld apart gaan autoriseren, wat het clientportaal wel en niet mag.
- De rol 'Beheerportaal' beheren en geven primair de 'Subscription' (abonnementen) uit. De reden waarom dit alleen bij de rol 'Beheerderportaal wordt gelegd zijn:
- Overzicht houden van alle abonnementen binnen een domein
- Het voorkomen van het lekken van indirect informatie via notificatie berichten. Bijvoorbeeld kennis vergaren van hoe vaak bepaalde gebeurtenissen plaatsvinden
- Controle en beheer van endpoints, waar notificaties heen gestuurd worden
- Voorkomen van performance problemen, afhankelijk van: #subscriptions, subcscription.criteria, #gebeurtenissen per tijdseenheid, data volume, etc. Lawine gevaar, doordat twee partijen op één zelfde gebeurtenis geabonneerd zijn en wat dan tot één zelfde gebeurtenis tot gevolg heeft.
- Bij elke interactie wordt het toegangstoken meegestuurd.
- Deze bevat het veld "
azp
: Authorized party - the party to which the ID Token was issued". Hiermee kan men de eigenaar (OWN) of vergunner (GRANTED) bepalen. - Deze bevat het veld "
sub
": Subject - de (technische) identifier van een gebruiker". Hiermee kan een applicatie instantie (Device) bepaalde logica uitvoeren, afhankelijk van het subject.
- Deze bevat het veld "
- Elke resource bevat zelf de informatie over wie de originele eigenaar is van de resource, via het extended element '
resource-origin
'. Deze wordt door de FHIR Resource Provider beheerd. - Bij het uitvoeren van een Read (GRANTED) op Task in het Clientportaal wordt "Search Narrowing" toegepast. Zo kan je als client zeggen "Geef mij alle Taken (Tasks)", en geeft de FHIR Resource Provider enkel die taken (Taks) die jij mag zien. Dit is dus bij de toegangsrechten met scope OWN of GRANTED.
- Zowel een applicatie in de rol van 'Beheerportaal' als in de rol van 'eHealth Module' kan een ActivityDefinition resource publiceren. Echter de voorkeur gaat uit dat een applicatie in de rol van 'eHealth Module' zijn eigen ActivityDefinition publiceert.
- Indien een applicatie in de rol van 'eHealth Module' geen verbinding kan opzetten met de FHIR Resource Server, kunnen de interacties uitgevoerd worden door een applicatie met de rol van 'Beheerportaal', die tevens dan de originele eigenaar is van de aangemaakte resources.
- Een applicatie in de rol van 'eHealth Module' kan geen CRU interacties uitvoeren op de ActivityDefinition resource als deze applicatie niet de originele eigenaar is.
- AuditEvent's mogen NOOIT aangepast en/of verwijderd worden. Wordt een aparte procedure voor gemaakt.Zorgaanbieder: Instelling die de zorg verleent.
Child pages (Children Display)