Versions Compared

Key

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

...

  1. Registreren: Bij het toetreden van een domein wordt voor elke applicatie-instantie een Device resource aangemaakt.
  2. Authenticeren: Alle communicatie met de FHIR resource service vereist een Bearer access_token . Dit token bevat (indirect) informatie over welke Device dit request uitvoert.
  3. Eigenaarschap: Alle resources die aangemaakt worden op de FHIR resource service, krijgen automatisch een resource-origin extensie. Deze extensie refereert naar de gekoppelde Device resource van de geauthenticeerde applicatie-instantie.
  4. Autoriseren: Alle CRUD-acties die plaatsvinden op een resource, worden - aan de hand van de resource-origin extensie en de rol van de geauthenticeerde applicatie-instantie - geautoriseerd.

...

  1. Resource: Een permissie is altijd gekoppeld aan een enkele FHIR Domain Resource.

  2. Actie: Is van toepassing op een Create (C), Read (R), Update (U) of Delete (D) actie.

  3. Scope: Heeft één van de volgende scopes:

    ScopeBeschrijving
    OWNDe permissie is enkel van toepassing op resources waarvan de resource-origin  overeenkomt met de geauthenticeerde applicatie.
    GRANTEDDe permissie is van toepassing op resources waarvan de resource-origin  overeenkomt met één van de geselecteerde applicatie(s).
    ALLDe permissie is van toepassing op alle resources in het domein.


...

{
  "system": "<https://koppeltaal.nl/client_id>",
  "value": "<CLIENT_ID>"
}

Mappen van

...

access_token naar Device

Wanneer een access_token opgehaald wordt door een applicatie-instantie, bevat MOET deze altijd het azp veld bevatten. Dit veld wordt door de autorisatieserver gevuld met de client_id van de applicatie die de access_token opvraagt. Aangezien elke Device resource een https://koppeltaal.nl/client_id identifier moet hebben, kan de mapping plaatsvinden.

...

Bij het uitgeven van een access_token worden MOET de autorisatieserver de gekoppelde permissies omgezet omzetten naar het scope veld. Raadpleeg [TODO: LINK TOEVOEGEN] voor de exacte uitwerking hiervan.

...

De FHIR resource service autoriseert elke binnenkomende CRUD request. Elke request MOET middels de volgende logica geautoriseerd worden:

  1. Zoek een scope (permissie) op voor de geauthoriseerde applicatie-instantie aan de hand van CRUD-actie en Resource type. Bijvoorbeeld UPDATE en ActivityDefinition.voor een UPDATE op een ActivityDefinition  wordt gezocht naar de volgende reguliere expressie:
    1. ((?:\d|,)*|\*)?\/ActivityDefinition\.(?:update|\*) 
      Image Added
  2. Indien niet aanwezig: FHIR resource service respond met een 403 Forbidden.
  3. Indien ‘actie CREATE' OF ‘scope ALL': Applicatie is geautoriseerd. Ga verder met aanmaken Resource.
  4. Controleer de scope (let op dat de access_token.scope  enkel de logical id van de Device  bevat):
    1. OWN : Verifieer dat de resource-origin waarde van de Resource overeenkomt met de Device van de geauthenticeerde applicatie-instantie. Indien dit niet het geval is: respond met een 403 Forbidden.
    2. GRANTED: Verifieer dat de resource-origin waarde van de Resource voorkomt in de lijst van geselecteerde Devices op de permissie. Indien dit niet het geval is: respond met een 403 Forbidden.

...

EisAuth serverDomeinbeheerApplicatie-instantieFHIR Resource service
Elk access_token MOET een azp veld hebben waar de client_id van de applicatie-instantie in staat.X


De permissies gekoppeld aan de rol van een applicatie-instantie MOETEN meegegeven worden als scope waarde van de access_token.X


Er MOET een Device resource aangemaakt worden voor elke applicatie-instantie op het moment dat een domein wordt toegetreden.
X

De client_id MOET uniek zijn over alle Devices.
X

De aangemaakte Device MOET een identifier bevatten die refereert naar de toegekende client_id van de applicatie-instantie. Deze identifier MOET als system de volgende system hebben: https://koppeltaal.nl/client_id.
X

Een applicatie-instantie MOET één rol bevatten.
X

Rollen en permissies MOETEN beschikbaar gesteld worden op het niveau van applicatie-instanties.
X

Een Create permissie MOET altijd de scope OWN  zijn
X

Elke CRUD request MOET een access_token bevatten.

X
Er mag GEEN POST [base] (batch/transactie) uitgevoerd worden met Bundles.

XX
Er mag GEEN gebruik gemaakt worden van de _include , _revinclude, _contained of _containedType search parameters.

XX
De autorisatie-flow MOET uitgevoerd worden voor elke CRUD request


X
De resource-origin extensie MOET toegevoegd worden bij het aanmaken van een Resource.


X
De resource-origin extensie MOET gezet worden bij een PUT indien deze niet aangeleverd wordt.


X
De resource-origin MAG meegegeven worden met een PUT, maar mag NIET veranderd zijn.


X
Er MOET search narrowing toegepast worden.


X
Er MOET subscription narrowing toegepast worden.


X

...