Versions Compared

Key

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

Retningslinjer for bruk av JSON Web Tokens (JWTs)

Bruk av JSON Web Tokens (JWTs) for å sikre APIs er en ad-hoc standard i IT-bransjen i dag. Men de underliggende konseptene og mekanismene kan være komplekse og blir ofte misforstått.

Generelle råd for bruk av JWTs

  • Å bruke JWTs for sesjoner introduserer risiko. Gjennomfør alltid en grundig risikovurdering før du ruller ut til ditt produksjonsmiljø.

  • JWTs forutsetter at hemmeligheter håndteres på ordentlig måte i API-klienter og i API. Hemmeligheter kan være både passord og kryptografisk nøkkelmateriale. Sørg for å lagre nøkkelmaterialet ditt på en trygg måte!

  • Ikke aksepter usikrede JWTs med JOSE header {"alg": none; }. JWTs skal alltid være signerte og bruke et gyldig og riktig signaturskjema

  • Dersom en JWT inneholder sensitive data skal det være kryptert

Ting å tenke på i forbindelse med Access Tokens

  • Et "self contained" JWT kan ikke revokeres før gyldigheten utløper. Vurder å kreve bruk av referansetokens dersom tokenet gir tilgang til sensitive eller kritiske data.

  • Access Tokens skal ha så kort levetid som mulig - som en generell regel kan vi si at levetiden skal være være kortere dess mer sensitive data et API eksponerer

  • For å forbedre brukeropplevelsen bør sesjoner med lang levetid kombineres med Access Tokens som har kort levetid. Dette kan oppnåes ved å bruke refresh tokens på klientsiden.

Alltid verifiser en JWTs integritet

  • Du må alltid validerere signature til tokenet

  • Alltid bruk bibliotek og rammeverk som validerer signaturen til tokenet

  • HelseID tilbyr bare bruk av asymetriske signaturer

Alltid valider påstander (claims) i access tokenet

  • Du må alltid sjekke påstanden "exp" for å sikre at tokenet ikke har utløpt

  • Du må alltid sjekke påstanden "nbf" for å sikre at tokenet faktisk er "aktivt"

  • Du må alltid sjekke påstanden "iss" for å sikre at utstederen av tokenet er noen du har tillit til

  • Du må alltid sjekke påstanden "aud" for å være sikker på at tokenet er ment for deg

  • Dersom "aud" claim ikke er tilstede i tokenet må du avvise JWTen

  • Dersom du bruker "scope" for tilgangsstyring må du alltid verifisere at verdiene i claimet er riktige.

  • Alltid valider og verifiser at verdien i claimet "security_level" stemmer overens med kravene for ditt API.

  • Alltid valider og verifiser at verdien i claimet "pid" er gyldig.

  • Alltid valider og verifiser at veriden i claimet "hpr_nr" er gyldig.

  • Alltid valider og verifiser at verdien i claimet "orgnr" er gyldig.

IKKE STOL PÅ PÅSTANDER

...

“kid” - ikke gjør sertifikatforespørsler før verdiene er validert

...

Dette dokumentet har blitt flyttet til Utviklerportalen, og skilt i to dokumenter:

This document has been separated into two documents in NHN Utviklerportalen: