Nederlands
  • iat
  • issued at time
  • invalid-iat
  • invalid issued at time
  • id token

Begrijpen van het belang van de "iat" tokenclaim en het oplossen van de fout "Ongeldige afgegeven tijd"

In dit artikel gaan we het belang van de "iat" claim in het ID-token verkennen en hoe we de fout "Ongeldige afgegeven tijd in ID-token" kunnen oplossen.

Charles
Charles
Developer

Begrijpen van het belang van de "iat" tokenclaim en het oplossen van de fout "Ongeldige afgegeven tijd"

Achtergrond

In onze gemeenschap horen we zo nu en dan van onze gebruikers over dit verwarrende probleem van "Ongeldige afgegeven tijd in het ID-token". Onze gebruikers klagen dat "Het werkte gisteren nog, maar plotseling niet meer vandaag" of "Het werkt op deze computer, maar niet op een andere".

In dit artikel gaan we verkennen waarom dit probleem optreedt in Logto en je uitrusten met de kennis om het aan te pakken.

Inleiding

In OAuth 2.0 en OpenID Connect (OIDC) spelen ID-tokens een cruciale rol in het veilig overbrengen van gebruikersidentiteitsinformatie tussen partijen. Een van de claims in een ID-token wordt "iat" (afgegeven-tijd) genoemd, wat de tijdstempel vertegenwoordigt waarop het ID-token door de autorisatieserver is afgegeven.

Dus waarom is de "iat" claim belangrijk?

  1. Token actualiteit en vervaldatum: De "iat" claim biedt cruciale informatie voor het beoordelen van de actualiteit van een ID-token. Door de "iat" tijdstempel te vergelijken met de huidige tijd, kunnen vertrouwende partijen bepalen hoe recent het token is afgegeven. Deze informatie is waardevol voor applicaties die ervoor moeten zorgen dat ze actuele identiteitsinformatie gebruiken.
  2. Voorkomen van herhalingsaanvallen: De "iat" claim speelt een essentiële rol bij het voorkomen van herhalingsaanvallen. In een herhalingsaanval probeert een tegenstander een eerder onderschept token opnieuw te gebruiken. De "iat" claim helpt bij het detecteren van dergelijke aanvallen door de vertrouwende partij een tolerantievenster voor de leeftijd van het token in te laten stellen. Tokens buiten dit venster kunnen als ongeldig worden beschouwd.
  3. Handhaven van token gebruiksbeleid: Applicaties leggen vaak beperkingen op aan de maximale toegestane leeftijd van een ID-token om veiligheidsredenen. De "iat" claim stelt vertrouwende partijen in staat deze beleidslijnen af te dwingen, waardoor tokens binnen een bepaalde tijdspanne worden gebruikt. Dit helpt de risico's verbonden aan het gebruik van verouderde tokens te minimaliseren.
  4. Ondersteunen van token intrekking: In sommige scenario's moet een autorisatieserver uitgegeven tokens mogelijk intrekken. De "iat" claim is cruciaal in token-intrekkingsprocessen door een duidelijk tijdstempel te bieden voor wanneer het token is uitgegeven. Het vereenvoudigt de identificatie en intrekking van specifieke tokens op basis van hun afgiftetijd.

Beste praktijken voor het omgaan met de "iat" claim

  • Valideer de "iat" claim: Vertrouwende partijen moeten altijd de "iat" claim valideren om te verzekeren dat deze binnen een acceptabel bereik valt. Dit bereik kan variëren afhankelijk van de specifieke beveiligingseisen van de applicatie.
  • Houd rekening met klokverschuiving: Sta een zekere mate van klokverschuiving toe bij het vergelijken van de "iat" tijdstempel met de huidige tijd. Klokverschuiving houdt rekening met eventuele tijdsverschillen tussen de autorisatieserver en de vertrouwende partij.
  • Stel token vervalbeleid in: Maak gebruik van de "iat" claim in combinatie met de "exp" (vervaltijd) claim om uitgebreide tokengebruik beleidslijnen af te dwingen, wat de algehele beveiligingshouding van de applicatie versterkt.

Probleemoplossing

Nu is de hoofdoorzaak van de beruchte fout "Ongeldige afgegeven tijd" bijna duidelijk.

Om herhalingsaanvallen te voorkomen en ook rekening te houden met de klokverschuiving, stelde Logto eerder een tolerantievenster van 60 seconden in voor de ID-tokens. Elke vertrouwende partij waarvan het tijdsverschil meer dan 60 seconden is met de wereldtijd, wordt als potentieel risicovol beschouwd en zal de ID-token validatie niet doorstaan. Dus de fout "Ongeldig token bij tijd".

Echter, in de echte wereld, geldt klokverschuiving, soms kan je computer niet met de wereldtijdserver verbinden om de computertijd te synchroniseren. Soms is de autorisatieserver niet gesynchroniseerd. Soms, nog erger, zijn beide niet gesynchroniseerd.

Bovendien, in SSO-scenario's kunnen de tijdsverschillen tussen verschillende clients en de SSO-aanbieder zelfs nog groter zijn.

Oplossing

Om de problemen te verminderen en ook rekening te houden met veiligheidsmaatregelen, heeft Logto nu de iat-tolerantie verhoogd van 60 seconden naar 5 minuten voor niet-SSO-authenticaties en 10 minuten voor SSO-scenario's.

Ondertussen kun je controleren of je computertijd is gesynchroniseerd met de wereldtijd door simpelweg deze handige tool website te gebruiken: https://time.is Synchroniseer je tijd handmatig of wijzig naar een andere tijdserver, om ervoor te zorgen dat het tijdsverschil altijd binnen ons tolerantievenster valt.

Conclusie

De "iat" claim in ID-tokens is een cruciaal element voor het verbeteren van de beveiliging van identiteits- en toegangsbeheer in moderne applicaties. Het opnemen van beste praktijken voor het omgaan met de "iat" claim zorgt voor een sterk en veilig identiteitsauthenticatieproces.

Zorg er ook voor dat je computertijd altijd is gesynchroniseerd met de wereldtijdserver.