Versions Compared

Key

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

...

Excerpt


a001. Voordat bevoegdheden worden vastgelegd moeten eerst de entiteiten (applicaties of personen), (applicatie en gebruikers) rollen, autorisatieregels en domeinen worden vastgelegd. Er zijn al meerdere applicatie- en beheerdersrollen beschreven en vastgelegd door de architecten. Als we een vaste set aan (applicatie) rollen definiëren, kunnen we autorisatieregels samenstellen omdat we al grotendeels weten welke FHIR resources we gebruiken binnen Koppeltaal. De entiteiten, rollen, autorisatieregels en domeinen kunnen door Support (de systeembeheerder)  worden opgevoerd. Dit is een domein- en applicatie onafhankelijke taak.

a002. Een domein bevat (minimaal) de volgende gegevens/attributen:

a. Een unieke domein identifier

b. Een (leesbare) naam voor het domein

c. een (logische) domein naam voor een URL

d. Contact gegevens voor het domein

i. contactpersoon

ii. e-mail adres/telefoon

e. Type domein (nader uitwerken)

003. Een entiteit (applicatie) bevat (minimaal) de volgende gegevens/attributen:

a. Een unieke entiteit identifier

b. Een (leesbare) naam van de entiteit

c. Een (logische) naam van de entiteit

d. Toekennen van 0 of meer rol identifiers.

e. Contact gegevens voor de entiteit

i. contactpersoon

ii. e-mail adres/telefoon

a004. De autorisatieregels bevatten wie (eigenaar of iedereen) de toegestane CRUD operaties op de FHIR resources mag uitvoeren. Elke vastgelegde rol krijgt een verzameling autorisatieregels.

a005. Een (applicatie) rol bevat (minimaal) de volgende gegevens/attributen:

a. Een unieke rol identifier,

b. Een (leesbare) naam

c. Een (logische) naam

d. Een verzameling autorisatieregels.

e. Contact gegevens voor de rolbeschrijving

i. contactpersoon

ii. e-mail adres/telefoon

a006. Er mogen geen afhankelijkheden in een rol vastgelegd worden naar andere digitale identiteiten. Voorbeeld: Rol X bepaalt (Grant) een autorisatieregels voor Rol Y waar een ander digitale entiteit aan is gekoppeld.

a007. De invulling van één domein en de uitgave van digitale identiteiten (voor applicatie instanties – client id’s) gebeurt door de domeinbeheerder.

a008. Het toekennen van bevoegdheden aan digitale identiteiten (applicatie instanties) of het intrekken van bevoegdheden, gebeurt via het toekennen van een (applicatie of gebruikers) rol aan een digitale identiteit. Dit wordt door de domeinbeheerder uitgevoerd. Het intrekken van bevoegdheden gebeurt dus door de digitale identiteiten (applicatie instantie) zijn rol te ontnemen.

a. Je kan een entiteit (applicatie) certificeren voor meerdere rollen, maar een applicatie instantie heeft maar één (actieve) rol binnen een domein.

1. Hiermee kan de systeembeheerder aangeven welke rollen er zijn weggelegd voor de applicatie
Controleren of we bij de beheerschermen kunnen aangegeven dat een applicatie meerdere rollen kan hebben.

2. De domeinbeheerder kan uit de aangegeven rollen, één rol selecteren/activeren voor een domein voor de applicatie instantie. Hierdoor maak je dus niet de fout dat de domeinbeheerder een andere rol kiest dan wat de systeembeheerder aangeeft.
Een lijst van rollen voor de domeinbeheerder moet dus opgebouwd worden uit de selectie die een systeembeheerder heeft gemaakt op een ander beheerscherm. 

b. De gehele toegangscontrole van een entiteit is gebaseerd op een rol. Hierbij worden entiteiten niet rechtstreeks geautoriseerd op resources, maar krijgen uitsluitend rechten in de vorm van een groepslidmaatschap, op basis van een rol die ze vervullen binnen één domein. 

c. Een applicatie instantie krijgt alleen een (actieve) rol als deze aan een domein is toegekend. 

d. Het daadwerkelijk toekennen van rechten (en daarbij behorende permissies) aan een entiteit en het verstrekken van gerelateerde objecten (tokens e.d.) heet provisioning.

a009. Een digitale identiteiten (applicatie instanties) bevat (minimaal) de volgende gegevens/attributen:

a. Een uniek (uitgegeven) client identifier

b. Een (leesbare) naam

c. Een (logische) naam

d. Een entiteit (applicatie) identifier

d. Een Key Identifier (KID). Is een unieke identifier voor het kunnen bepalen en ophalen van de (geregistreerde) publieke sleutel. Zie JWKS (RFC 7515 sectie 4 en voor de algoritmen RFC 7518)

e. Een domein Identifier.

f. Rol Identifier. Deze wordt pas vastgelegd nadat de domein en entiteit identifiers bekend zijn bij deze digitale identiteit. 

g. Endpoints (lijst van endpoints die gebruikt worden door de applicatie instantie, zoals lanceer of notificatie endpoints)

i. Endpoint.identifier (globale identifier, bruikbaar over domeinen heen)

ii. Endpoint.name naam van het endpoint

ii. Endpoint.status: active | off | test

iii. Endpoint.period.start: dateTime (startdatum dat endpoint actief is)

iv. Endpoint.period.end: dateTime (einddatum dat endpoint actief is)

iv. Endpoint.connectionType: notification | launch | fhir-rest

v. Endpointaddress: url (technisch basis adres van het endpoint)

vi. Endpoint.header: string (header info, zodat men security tokens kan meesturen, tijdens communicatie)

...