Skip to main content
Skip table of contents

HealthcareProviderPresentation

Feature

HealthcareProviderPresentation

Type

Subfeature

Versie

1.0.0

Systeemrolcode

-

Groep

Presentations

Gepubliceerd

Delta

Initiële versie van feature.

Met een HealthcareProviderPresentation worden Verifiable Credentials gepresenteerd waarmee de partij die de VP presenteerd kan bewijzen namens welke zorgaanbieder wordt gehandeld en, indien van toepassing, welke zorgprofessional en welke behandelrelatie (patiëntcontext) hierbij betrokken zijn. Een HealthcareProviderPresentation levert de organisatorische, gebruikers- en optionele patiëntcontext die benodigd is een AORTA access_token te krijgen.

Een Holder van Verifiable Credentials (VC’s) kan één of meerdere VC’s aan een Verifier presenteren in een Verifiable Presentation (VP). Een VP wordt, net als de VC’s die erin worden opgenomen, digitaal ondertekend.

Een VC wordt getekend door de Issuer van de betreffende credential. Een VP wordt getekend door de partij die de VP presenteert. Deze partij moet Holder zijn van alle VC’s die ze m.b.v. een VP presenteert.

Een VP wordt gemaakt voor een specifieke Verifier. Binding tussen VP en Verifier vindt plaats m.b.v. een audience attribuut in de VP.

Verifiable Presentations worden gemodelleerd conform het W3C Verifiable Credentials Data Model en geserialiseerd als JWT (JWT-VP). Een JWT-VP heeft een JWT Header, en JWT Payload en een JWT Signature.

JWT Header

De JWT Header van deze Verifiable Presentation bevat de volgende velden:

Veld

Cardinaliteit

Toelichting

alg

1..1

Het gehanteerde signing-algoritme.

Toegestane waarden:

  • ES256;

  • ES512.

ES256 is de aanbevolen keuze vanwege de balans tussen veiligheid, prestaties en brede ondersteuning in libraries en hardware.

typ

1..1

Het type token. Vaste waarde: JWT.

kid

1..1

Verwijzing naar de verification method in het DID-document.

Voorbeeld VP JWT header:

JSON
{
  "alg": "ES256",
  "typ": "JWT",
  "kid": "did:web:huisarts-delinden.nl#keys-2"
}

JWT Payload

De JWT Payload van deze VP bevat de volgende velden:

Veld

Cardinaliteit

Toelichting en validatie

iss

1..1

DID van de entiteit die deze Verifiable Presentation uitgeeft en presenteert aan de Verifier.

aud

1..1

De audience waarvoor de VP bestemd is

iat

0..1

Uitgiftetijdstip als UNIX timestamp.

nbf

1..1

Tijdstip vanaf wanneer de VP geldig is.

exp

1..1

Verloopdatum als UNIX timestamp (indien van toepassing).

De maximale geldigheid is 10 seconden na uitgifte (exp moet dus kleiner of gelijk zijn dan iat + 10 seconden).

jti

1..1

Unieke ID van deze VP.

vp

1..1

Genest object met de volledige VP.

@context

1..1

JSON‑LD context conform het W3C Verifiable Credentials Data Model.

Vaste waarde: ["https://www.w3.org/2018/credentials/v1", "https://[aorta-gbc-base-URL]/gbc/context/v1"].

type

1..1

Vaste waarde:

["VerifiablePresentation"]

verifiableCredential

1..1

Array met base64url-encoded JWT-VC’s. Mag enkel VC’s bevatten die geldig zijn op het moment van presentatie.

Voorbeeld VP JWT payload:

JSON
{
  "iss": "did:example:ebfeb1f712ebc6f1c276e12ec21",
  "jti": "urn:uuid:3978344f-8596-4c3a-a978-8fcaba3903c5",
  "aud": "did:example:4a57546973436f6f6c4a4a57573",
  "nbf": 1541493724,
  "iat": 1541493724,
  "exp": 1573029723,
  "vp": {
    "@context": [
      "https://www.w3.org/2018/credentials/v1",
      "https://[aorta-gbc-base-URL]/gbc/context/v1"
    ],
    "type": ["VerifiablePresentation"],   
    "verifiableCredential": [""]
  }
}

Voor een HealthcareProviderPresentation bevat de verifiableCredential een lijst met de volgende VC’s.

Credential

Cardinaliteit

Toelichting

HealthcareProviderCredential

1..1

Bewijst de identiteit van de zorgaanbieder namens wie het verzoek wordt gedaan. Dit credential is verplicht en vormt de primaire organisatorische context (URA) voor autorisatie. Voor meer informatie zie HealthcareProviderCredential.

HealthcareProfessionalDelegationCredential

0..1

Bewijst dat een zorgprofessional een geldig mandaat heeft om namens de zorgaanbieder te handelen binnen een afgebakende autorisatie-scope. Indien aanwezig levert dit credential gebruikers- en rolcontext. Voor meer informatie zie HealthcareProfessionalDelegationCredential.

PatientEnrollmentCredential

0..1

Bewijst dat er een geldige behandelrelatie bestaat tussen de patiënt en de zorgaanbieder. Indien aanwezig levert dit credential patiënt- en behandelrelatiecontext voor autorisatie. Voor meer informatie zie PatientEnrollmentCredential.

JWT Signature

De JWT Signature van een Verifiable Presentation borgt de integriteit en herkomst van de JWT en de daarin opgenomen VP. De JWT signature MOET worden geplaatst over de base64url‑gecodeerde JWT header en payload conform JWS (RFC 7515).

  • De JWT moet worden ondertekend door de issuer van de VP.

  • De issuer van het credential wordt geïdentificeerd via de iss claim in de JWT payload.

  • De kid‑claim in de JWT header moet verwijzen naar de signing key waarmee de JWT is ondertekend.

  • De signing key wordt gepubliceerd als een verificationMethod in het DID‑document dat via HTTPS wordt ontsloten. De relatie tussen de signing key en de issuer wordt vastgesteld door resolutie en validatie van het DID‑document.

  • De signing key moet geautoriseerd zijn voor gebruik als authentication methode binnen het DID‑document van de issuer, en moet verschillen van de sleutel in de assertionMethod.

Verificatie van de presentation

De presentation MOET voldoen aan de specificaties van de betreffende presentation, inclusief eventuele de normatieve structuur en inhoudelijke eisen zoals gedefinieerd.

Daarnaast MOETEN de onderstaande verificaties plaatsvinden. Indien één van de onderstaande verificaties faalt MOET de presentation als ongeldig beschouwd. Het systeem MAG stoppen bij de eerste geconstateerde fout en hoeft niet alle verificaties uit te voeren.

  • Verificatie van de JWT-signature:

    • De JWT‑handtekening MOET cryptografisch correct zijn en succesvol valideren over de JWT header en payload.

    • De presentation MOET zijn ondertekend door de presenterende partij.

    • De kid‑claim in de JWT header MOET aanwezig zijn en verwijst naar de signing key waarmee de presentation is ondertekend.

    • Het DID‑document van de presenterende partij (iss) MOET worden geresolveerd conform de toepasselijke DID‑methode.

    • Het bijbehorende DID-document MOET gepubliceerd zijn over TLS 1.3 of hoger op een .nl‑domein.

    • De kid MOET voorkomen in de authentication verification relationship van het DID‑document van de presenterende partij. De kid mag verwijzen naar:

      • een verification method in hetzelfde DID‑document, of

      • een verification method in een ander DID‑document.

    • De publieke sleutel behorend bij de kid MOET resolvable zijn:

      • indien de kid verwijst naar een lokale verification method, wordt de bijbehorende sleutel gebruikt.

      • indien de kid verwijst naar een externe verification method, wordt het betreffende DID‑document geresolveerd en wordt daaruit de publieke sleutel opgehaald.

    • De JWT‑handtekening van de presentation MOET met de geresolveerde publieke sleutel geverifieerd worden.

  • Verificatie van de audience‑binding:

    • De waarde van aud MOET exact overeenkomen met de identifier van het verifiërende systeem.

  • Verificatie van geldigheid in tijd:

    • De presentation MOET geldig zijn op het moment van gebruik:

      • het nbf‑tijdstip MOET in het verleden liggen,

      • het exp‑tijdstip MOET in de toekomst liggen.

  • Verificatie deelname GBC:

    • De presenterende partij (iss) MOET worden vastgesteld als een vertrouwde GBC‑deelnemer. Op termijn zal deze controle uitgevoerd worden door een controle in ZORG-AB. Vooralsnog zal de controle worden uitgevoerd tegen een interne lijst van vertrouwde GBC deelnemers.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.