AORTA access_token
Inleiding
3.1.1 |
Feature | |
---|---|
Type | Subfeature |
Versie | 4.0.0 |
Groep | Tokens |
Gepubliceerd |
|
Delta | sub en act.sub claim kunnen ook een opaque user_id bevatten. |
Het JWT-based AORTA access_token bestaat uit een header, een payload en een signature, waarbij gebruik wordt gemaakt van JWS Compact Serialization.
Met een access_token wordt aan de ontvanger bewezen dat aan een gegeven subject bepaalde toegangsrechten zijn verstrekt.
Header
De header van het token bevat de volgende attributen:
Claim | Vaste waarde | Toelichting |
---|---|---|
alg | RS256 | |
typ | aorta-at+JWT | "aorta-at" is een afkorting voor AORTA access_token. |
kid | - | The identifier of the key-pair used to sign this JWT |
Signature
Het token wordt op basis van RS256 (RSA Signature met SHA-256), digitaal ondertekend met de private key van de Autorisatie Server. De signature wordt geplaatst over de header en de payload.
Payload
De payload van het token is omschreven in onderstaande tabel.
Claim | Cardinaliteit | Vaste waarde | Toelichting |
---|---|---|---|
jti | 1..1 | - | jti bevat een globaal uniek ID van het betreffende token. Aanbevolen wordt om een UUID te gebruiken. |
iat | 1..1 | - | iat bevat het tijdstip van uitgifte van dit token (aantal seconden sinds 1970-01-01T0:0:0Z gemeten in UTC). |
iss | 1..1 | - | iss bevat de HTTPS-URL van de autorisatieserver die het token heeft uitgegeven. Op deze manier kan automatisch de juiste metadata, met daarin de juiste endpoints, worden opgehaald. |
sub | 1..1 | - | Formaat: "<id-systeem>|<id>" Het ID van de gebruiker, of van een systeem, die uitgifte van dit access_token legitimeert. De claim kan bevatten:
|
role | 0..1 | - | Formaat: "<codesysteem>|<rolcode>" De rolcode van de gebruiker die uitgifte van dit access_token legitimeert. De claim kan bevatten:
Verplicht indien de sub claim is gevuld met een ID van een persoon. |
act | 0..1 | - | De act claim bevat een aantal subclaims en wordt opgenomen wanneer iets of iemand handelt namens een ander persoon. Zie ook RFC 8693 voor voorbeelden. |
act.sub | 1..1 (verplicht indien act aanwezig is) | - | Formaat: "<id-systeem>|<id>" Het ID van de gebruiker of van het systeem die handelt namens de persoon, die is opgenomen in de sub claim. De claim kan bevatten:
|
acr | 1..1 | - | De Authentication Context Class Reference. Geeft informatie over het niveau waarop de sub van het token is geauthenticeerd. Mogelijke waarden, zoals gespecificeerd binnen SAML zijn:
|
attest | 1..1 | - | Informatie over op welke grondslag of grondslagen dit token is gebaseerd. Het betreft een door spatie gescheiden set van strings. Mogelijk waarden:
Een voorbeeld van een attest claim is "MAP TR", waarmee dan wordt aangeduid dat het MAP is getoetst en dat toestemming is vastgelegd en getoetst in een toegelaten toestemmingsregister. |
nbf | 1..1 | - | nbf bevat het tijdstip waarvoor het token niet mag worden geaccepteerd (in dit geval gelijk aan tijdstip van uitgifte van dit token - aantal seconden sinds 1970-01-01T0:0:0Z gemeten in UTC). |
exp | 1..1 | - | Wordt gevuld met de expiration time van het MedMij access_token of met de expiration time van het AORTA transactietoken naar aanleiding waarvan dit AORTA access_token wordt uitgegeven. |
aud | 0..1 | - | JSON array met string values. |
scope | 1..1 | - | Het scope attribuut bestaat uit één of meerdere, door een spatie van elkaar gescheiden, onderdelen. De volgende scope onderdelen zijn mogelijk:
Voor de mogelijk vulling van de scope in specifieke situaties, zie de tekst onder deze tabel. De Autorisatie Server dient de scope slechts te vullen met onderdelen die vereist zijn om te gevraagde interactie of set van interacties te kunnen uitvoeren. |
patient | 0..1 | - | Het ID van de patiënt (BSN, hash van BSN of COA nummer), d.w.z. de persoon waarop de gegevens, die worden uitgewisseld, betrekking hebben. Verplicht gevuld bij patiëntgebonden interacties. Formaat (één van de volgende):
|
client_id | 1..1 | - | |
_vrb | 0..1 | - | De _vrb claim bevat, in een aantal subclaims, VZVZ Resource Broker specifieke informatie over de afhandeling van interacties. Een resource server (GBZ-applicatie) mag deze claim desgewenst negeren. Deze claim is slechts aanwezig wanneer een interactie, via RB VnC, wordt geïnitieerd bij een resource server. |
_vrb. _vrb_aud | 1..1 | - | JSON array met string values. |
_vrb. _vrb_client_id | 1..1 | - | JSON array met string values. |
_vrb. _vrb_ion | 1..1 | - | Een kenmerk van de organisatie die die het request heeft geïniteerd (de "initiating organisation name"). In de MedMij use case gaat het om de OAuthclientOrganisatienaam (naam van het PGO), zoals opgenomen in de MedMij OCL. In de ZA-ZA use case gaat het om de URA (formaat: "urn:oid:2.16.528.1.1007.3.3.<URA>"). |
_vrb. _vrb_ter_scope | 1..1 | - | De waarde van de scope parameter, zoals geretourneerd in het token exchange response. Indien van toepassing, dan bevat deze scope, per interactie, ook het van toepassing zijnde transformation-id. |
_vrb. _vrb_consent_id | 0..1 | Het ID kenmerk van het AORTA consent_token op basis waarvan dit AORTA access_token is uitgegeven. Slechts gevuld indien de attest claim de waarde "CNST" bevat. | |
_vrb._vrb_authz_base | 0..1 | - | Een Twiin authorization_base die moet worden doorgestuurd naar een extern GTK. Slechts gevuld indien het AORTA access_token wordt gebruikt om een pull uit te voeren, n.a.v. van een ontvangen notificatie van een extern GTK, die deze authorization_base bevatte. |
ver | 1..1 | 4.0 | De versie van de tokendefinitie die wordt gehanteerd. |
Scope claim
De scope claim van het token kan de volgende onderdelen bevatten, waarbij verschillende scope-onderdelen door een spatie van elkaar worden gescheiden. Van de genoemde onderdelen worden slechts die opgenomen die echt nodig zijn om te gevraagde interactie(s) te kunnen uitvoeren.
Bijvoorbeeld, wanneer een search wordt uitgevoerd op een DocumentManifest in de context van MedMij dan is de scope "patient/DocumentManifest.s medmij.gegevensdienst.51".
Ander voorbeeld, wanneer in een batch gelijktijdig een search wordt uitgevoerd op Immunization en op AllergyIntolerance, in de context van zorgaanbieder-zorgaanbieder BGZ uitwisseling, dan is de scope "patient/Immunization.s patient/AllergyIntolerance.s aorta.contextcode.BGZ".
Gegevensdienst / Interactie | Mogelijke SMART-on-FHIR scope onderdelen | Toevoeging op scope bij interactie vanuit MedMij | Toevoeging op scope bij interactie vanuit AORTA |
---|---|---|---|
Verzamelen Afspraken 2.0 | patient/Appointment.s | medmij.gegevensdienst.47 | nog niet beschikbaar |
Verzamelen Basisgegevens zorg 3.0 | patient/Patient.s patient/Practitioner.r patient/PractitionerRole.r patient/Coverage.s patient/Consent.s?category=http://snomed.info/sct|11291000146105,http://snomed.info/sct|11341000146107 (of een subset van deze codes) patient/RelatedPerson.r patient/DocumentReference.r patient/Binary.r patient/Condition.s patient/Observation.s?code=http://snomed.info/sct|228366006,http://snomed.info/sct|228273003,http://snomed.info/sct|365980008 patient/Observation$lastn?category=http://snomed.info/sct|118228005,http://snomed.info/sct|384821006,http://snomed.info/sct|275711006 patient/Observation$lastn?code=http://snomed.info/sct|365508006,http://loinc.org|85354-9,http://loinc.org|29463-7,http://loinc.org|8302-2,http://loinc.org|8306-3,http://loinc.org|8308-9 patient/Specimen.r patient/NutritionOrder.s patient/Flag.s patient/AllergyIntolerance.s patient/MedicationStatement.s?category=urn:oid:2.16.840.1.113883.2.4.3.11.60.20.77.5.3|6 patient/MedicationRequest.s?category=http://snomed.info/sct|16076005 patient/MedicationDispense.s?category=http://snomed.info/sct|422037009 patient/Medication.r patient/DeviceUseStatement.s patient/Immunization.s patient/Procedure.s?category=http://snomed.info/sct|387713003 patient/Encounter.s?class=http://hl7.org/fhir/v3/ActCode|IMP,http://hl7.org/fhir/v3/ActCode|ACUTE,http://hl7.org/fhir/v3/ActCode|NONAC (of een subset van deze codes) patient/ProcedureRequest.s?category=http://snomed.info/sct|387713003 patient/ImmunizationRecommendation.s patient/DeviceRequest.s patient/Device.r patient/Appointment.s | medmij.gegevensdienst.48 | aorta.contextcode.BGZ |
Verzamelen Huisartsgegevens 2.0 | patient/Patient.s patient/Practitioner.r patient/Organization.r patient/Observation.s?code=https://referentiemodel.nhg.org/tabellen/nhg-tabel-45-diagnostische-bepalingen| patient/AllergyIntolerance.s?category=medication patient/MedicationRequest.s?category=http://snomed.info/sct|16076005 patient/Composition.s?type=http://loinc.org|67781-5 patient/Encounter.s patient/EpisodeOfCare.s | medmij.gegevensdienst.49 | nog niet beschikbaar |
Verzamelen Basisgegevens GGZ 2.0 | patient/Patient.r patient/Patient.s patient/Coverage.s patient/Condition.s patient/Consent.s?category=http://snomed.info/sct|11291000146105,http://snomed.info/sct|11341000146107 (of een subset van deze codes) patient/Observation.s?category=http://snomed.info/sct|118228005,http://snomed.info/sct|384821006,http://hl7.org/fhir/observation-category|survey (of een subset van deze codes) patient/Observation.s?code=http://snomed.info/sct|228366006,http://snomed.info/sct|228273003,http://snomed.info/sct|365980008,http://snomed.info/sct|365470003,http://snomed.info/sct|55801000146105,http://snomed.info/sct|314845004 (of een subset van deze codes) patient/Observation$lastn?category=http://snomed.info/sct|275711006 patient/Observation$lastn?code=http://snomed.info/sct|365508006 patient/CarePlan.s?category=http://snomed.info/sct|243114000 patient/Procedure.s patient/DiagnosticReport.s patient/CareTeam.s | medmij.gegevensdienst.50 | nog niet beschikbaar |
Verzamelen Documenten 3.0 | patient/DocumentManifest.s patient/DocumentReference.s patient/Binary.r | medmij.gegevensdienst.51 | nog niet beschikbaar |
Verzamelen Meetwaarden vitale functies 2.0 | patient/Observation.s | medmij.gegevensdienst.52 | nog niet beschikbaar |
Delen Meetwaarden vitale functies 2.0 | patient/Observation.c patient/Patient.c | medmij.gegevensdienst.53 | nog niet beschikbaar |
Verzamelen verwijzingen naar vragenlijsten 2.0 | patient/Task.s?code=http://loinc.org|74468 | medmij.gegevensdienst.59 | nog niet beschikbaar |
Delen antwoorden op vragenlijsten 2.0 | patient/Task.u patient/QuestionnaireResponse.c | medmij.gegevensdienst.60 | nog niet beschikbaar |
Delen BgZ-wijzigingsverzoek 1.0 | patient/Communication.c?category="http://hl7.org/fhir/uv/fhir-patient-correction/CodeSystem/PatientCorrectionCommunicationTypes|medRecCxReq" patient/Patient.c patient/Organization.c | medmij.gegevensdienst.62 | n.v.t. |
$is-allowed | patient$is-allowed | - | n.v.t. |
Interacties m.b.t. het actualiteitsregister en de verwijsindex | Vulling bij interactie vanuit GBZ (zorgverlener/medewerker), afhankelijk van gevraagd interactie:
Vulling bij search vanuit GBP (patiënt) of GBK (GBK-medewerker):
| n.v.t. | Bij search vanuit GBP/GBK: aorta.contextcode.PATVWI Overige interacties: aorta.contextcode.VWIMGT |
Interacties m.b.t. de toegangslog (RB-logging) | patient/AuditEvent.s | n.v.t. | Bij search vanuit GBP/GBK: aorta.contextcode.PATLOG |
Interacties m.b.t. het Abonnementenregister | Vulling bij interactie vanuit GBZ (zorgverlener/medewerker), afhankelijk van gevraagd interactie:
Vulling bij interactie vanuit GBP (patiënt), afhankelijk van gevraagd interactie:
| n.v.t. | Bij search: aorta.contextcode.OPVABR Overige interacties: aorta.contextcode.<contextcode van betreffende subscription> |
$get-aorta-data | patient$get-aorta-data?context=<de geautoriseerde contextcode>, bijvoorbeeld "patient$get-aorta-data?context=BGZ" | n.v.t. | aorta.contextcode.<de geautoriseerde contextcode> |
Interacties m.b.t. notificaties bij een notified-pull | patient/Task.c?code=http://vzvz.nl/fhir/CodeSystem/aorta-taskcode|notified_pull | n.v.t. | aorta.contextcode.<contextcode die hoort bij de gevraagde pull interacties> |