Gå til hovedinnhold

Refresh tokens

Et Refresh Token er et token som brukes for å hente et nytt Access Token eller Id Token uten å autentisere brukeren på nytt. Her finner du litt mer informasjon om hvordan mekanismen fungerer, og hvordan den kan bistå i å begrense effekten av Access Tokens på avveie.

Refresh tokens

Refresh tokens er tokens utstedt av HelseID som klienten kan bruke for å hente nye Access Tokens eller Id Tokens uten å måtte autentisere brukeren på nytt. Med Refresh Tokens oppnår man altså langvarig tilgang til et tjenestegrensesnitt, siden de tillater en klient å forespørre nye access tokens uten brukerinteraksjon. 

For å motta et refresh token må klienten først konfigureres på riktig måte i HelseID. Når klienten er konfigurert kan den fortelle HelseID at den ønsker å motta et refresh token ved å legge til verdien "offline_access" i parameteret scope i autentiseringsforespørslene. Responsen fra HelseID vil da inneholde et refresh token.

Hvilke typer klienter kan få refresh tokens? 

Klienter som ikke ansees for trygge, såkalte public clients, kan ikke motta Refresh Tokens. Dette er fordi et refresh token på avveie lett kan misbrukes.

Det er mulig å nyttiggjøre refresh tokens i hybrid, authorization code eller resource owner password flows, gitt at man har forespurt scopet offline_access.

Levetid på tokens

Et Access Token eller Id Token kan ikke revokeres. Med andre ord: dersom det havner på avveie er det ikke mulig gjøre det ugyldig.

Men, Access Tokens har en utløpstid, og i HelseID ønsker vi at denne levetiden er kortest mulig for å minske muligheten for at tokens som er havnet på avveie kan misbrukes. Ved å ha en kort utløpstid på Access Tokens gjør man det tilgjengelige vinduet for misbruk mindre.

Et Refresh Token kan derimot revokeres, og kan dermed ha lengre utløpstid enn et Access Token. Dersom man kombinerer kort levetid på Access Tokens med lang levetid på Refresh Tokens begrenser du kraftig effekten av et Access Token på avveie, og gjør det mulig å hindre at klienter som er kompromittert mottar nye tokens ved å revokere Refresh Tokens.