Validering av Access-token

Hvis et API bruker HelseID for autorisasjon, må de følgende reglene for validering av Access-token appliseres:

  • API-et validere signaturen for alle inncommende Access-token i henhold til [RFC7515], med bruk av algoritmen som er spesifisert i alg-headeren i Access-tokenet. API-et avvise alle Access-tooken der innholdet i header-verdien alg er "none". API-et bruke HelseIDs offentlige nøkkel for å validere signaturen på Access-tokenet.

  • API-et bekrefte at verdien for typ-headeren i Access-tokenet er at+jwt eller JWT, og avvise ethvert Access-token som har en annen verdi.

  • API-et bekrefte at «Issuer Identifier» for HelseID (som kan hentes fra HelseIDs metadata-endepunkt) samsvarer med verdien for claimet iss (issuer) i Access-tokenet.

  • API-et validere at verdien for claimet aud (audience) samsvarer med kortnavnet (audience) slik som det er satt opp i HelseID Selvbetjening. Access-tokenet avvises hvis

    • Verdien for claimet aud mangler
    • Verdien for claimet aud ikke inneholder et kortnavn som er eksakt lik det som er satt opp i HelseID Selvbetjening.
  • API-et bør validere at kortnavnet er den eneste verdien for kortnavn (audience) i Acess-tokenet. Acess-token med multiple aud-verdier er ikke anbefalt, men kan være akseptable i spesialtilfeller.

  • API-et inspisere innholdet i exp-claimet for å bekrefte at Access-tokenet ikke har utløpt. Du kan lage denne verdien større, men ikke mer enn noen sekunder, enn den faktiske klokketiden for å unngå vandring mellom klokker.

  • API-et bekrefte innholdet i nbf-claimet for å bekrefte at Access-tokenet fremdeles er aktivt. Du kan lage denne verdien større, men ikke mer enn noen sekunder, enn den faktiske klokketiden for å unngå vandring mellom klokker.

  • Hvis API-et bruker scopes for tilgangskontroll, API-et bekrefte at verdiene i scope-claimet er i samsvar med scopene som er satt opp for API-et i HelseID Selvbetjening.

Hvis API-et krever informasjon om en innlogget bruker i Acess-tokenet:

  • Et API som krever informasjon om en innlogget bruker i Access-tokenet validere både identieteten til brukeren (fødselsnummer eller HPR-nummer) og sikkerhetsnivået for brukerens identitet ved å inspisere følgende claim:
    • Claim for fødselsnummer: helseid://claims/identity/pid
    • Claim for HPR-nummer: helseid://claims/hpr/hpr_number
    • Claim for sikkerhetsnivå: helseid://claims/identity/security_level

Se dette dokumentet for å lese om verdien til disse claimene.