Applicatierollen en rechten - [review]
Het specificeren van toegang houdt in dat toegangsregels gedefinieerd worden aan de hand van applicatierollen welke bevoegdheden (toegangsrechten) 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).
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 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 vraagt tot bepaalde resources. - Verder wordt in het toegangstoken het veld "
sub
"- subject meegestuurd , 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 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
".
De volgende toegangsrechten (scopes) op resources en de daarbij behorende interacties worden toegekend:
- Iedereen (ALL) - Ongeacht wie de resource-origin is.
- Aan vergunners (GRANTED) (Hierbij moet expliciet vermeld worden wie die vergunners of de resource-origin's zijn)
- Eigenaar van de resource (OWN). (Hierbij moet de resource-origin overeenkomen met de vragende Device, zie veld "azp"- Authorized party in toegangstoken)
Bij Koppeltaal 2.0 willen we alleen gecertificeerde (en vervolgens geregistreerde) applicaties of systemen (Devices) machtigen op bewerkingen op een object (resource) waartoe een '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 'consumer'en (of client instanties). Elke 'consumer' of 'client instantie' krijgt een rol. Als de rol de juiste machtigingen heeft om toegang te krijgen tot een object, krijgt 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 'consumer'. Is een systeem wat een dienst afneemt bij een dienstverlener.
Platform. Een platform is waarmee een (eind)gebruiker interactie heeft om toegang te krijgen tot een op (afstand) gelanceerd of 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. 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 die geneeskundige verzorging verlenen.
- Zorgaanbieder: Instelling die de zorg verleent.