Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

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

  • “jku” eller “x5u” er headerverdier som peker på en URL. Ikke følg URLene før de er validert for å unngå SSRF angrep

  • No labels