Wat is refresh token rotatie en waarom is het belangrijk?
Duik erin en laten we het hebben over waarom refresh token rotatie een effectieve manier is om de veiligheid van je refresh tokens te beschermen.
Duik erin en laten we het hebben over waarom refresh token rotatie een effectieve manier is om de veiligheid van je refresh tokens te beschermen.
Een refresh token is een speciaal type token dat wordt gebruikt om een nieuw toegangstoken te verkrijgen wanneer het huidige toegangstoken verloopt. Bekijk ons vorige bericht Begrip van tokens in OIDC voor meer informatie.
Tijdens de introductie hebben we ook vermeld dat in Logto, om je refresh token veiligheid te beschermen, we standaard een “refresh token rotatie” mechanisme hebben afgedwongen.
Maar wat is “refresh token rotatie” precies? Hoe profiteert het onze eindgebruikers? Laten we erin duiken!
Refresh token rotatie is een mechanisme dat de vorige refresh token ongeldig maakt en een nieuwe uitgeeft wanneer de refresh token wordt gebruikt om een nieuw toegangstoken te verkrijgen. Dit mechanisme zorgt ervoor dat de refresh token wordt vernieuwd voordat deze verloopt.
Refresh tokens hebben een verlengde levensduur, meestal in weken of zelfs maanden. En aangezien we nieuwe toegangstokens kunnen verkrijgen met een refresh token, wordt de refresh token ook een aantrekkelijk doelwit voor aanvallers. Daarom moet volgens OAuth 2.0 BCP, de autorisatieserver een van de volgende maatregelen nemen om dergelijke aanvallen te voorkomen.
Sec-Token-Binding) in de refresh-verzoekkop, zodat de uitgegeven refresh token cryptografisch is gebonden aan een specifieke client. Tegenwoordig zijn echter alleen enkele van de native clients afzender-gebonden, en de meeste moderne SPA's en mobiele clients zijn publiek.In Logto, wanneer een gebruiker succesvol is ingelogd, zal er eerst een Grant object worden aangemaakt in de database en de daaropvolgende uitgegeven refresh token zal een referentie grantId hebben en verwijzen naar het allereerste Grant object.
Telkens wanneer een refresh token rotatie plaatsvindt, zal de vorige refresh token worden gemarkeerd als gebruikt, en de Logto autorisatieserver zal een nieuwe refresh token uitgeven met hetzelfde grantId.
Laten we aannemen dat de vorige refresh token is gelekt, dan zou zowel de legitieme client of de aanvaller deze hebben gebruikt om een toegangstoken in te wisselen. En ongeacht wie dat deed, de gelekte refresh token moet al zijn geroteerd en als gebruikt zijn gemarkeerd. Een van hen die de gebruikte refresh token als tweede gebruikte, zal de autorisatieserver informeren over de inbreuk. De autorisatieserver zal alle refresh tokens met dezelfde grantId intrekken.
In het bovenstaande geval, na het activeren van het alarm, kan de legitieme client zich opnieuw authenticeren via de inlogstroom om een nieuwe refresh token te verkrijgen. De aanvaller daarentegen zal de controle over je systeem verliezen en buiten worden geblokkeerd.
In Logto, definieert het standaardgedrag van een refresh token rotatie:
In Logto beheerconsole, ga naar Admin Console > Applications en selecteer de applicatie waarvoor je refresh token rotatie wilt omschakelen. Op de applicatiedetailpagina, ga naar het tabblad “Geavanceerde instellingen” en scroll naar beneden, je zult de schakelaar vinden samen met enkele andere nuttige instellingen.

Als je de schakelaar uitzet, zal je refresh token nooit worden geroteerd totdat het verloopt. Daarom raden we sterk aan om refresh token rotatie altijd ingeschakeld te houden.
Refresh token rotatie is een best practice die de veiligheid van refresh tokens in je applicatie waarborgt. Het maakt de vorige refresh token ongeldig en geeft een nieuwe uit wanneer de refresh token wordt gebruikt om een nieuw toegangstoken te verkrijgen. Dit mechanisme vermindert het risico van een tokenlek en zorgt voor de veiligheid van je refresh token.
Logto volgt toonaangevende best practices in de industrie en stelt gebruikersveiligheid altijd als topprioriteit.
Ik hoop dat deze blog je twijfels over het refresh token rotatiemechanisme goed uitlegt. Laat ons weten als er nog iets onduidelijk is. Je feedback en suggesties zijn altijd welkom!
Probeer Logto vandaag nog en omarm een veiliger authenticatie-ervaring.