Zrozumienie znaczenia roszczenia tokena "iat" i rozwiązywanie błędu "Invalid issued at time"
W tym wpisie zbadamy znaczenie roszczenia "iat" w tokenie identyfikacyjnym i jak rozwiązać błąd "Invalid issued at time in ID token".
W tym wpisie zbadamy znaczenie roszczenia "iat" w tokenie identyfikacyjnym i jak rozwiązać błąd "Invalid issued at time in ID token".
W naszej społeczności co jakiś czas słyszymy od naszych użytkowników o tym trudnym do zrozumienia problemie „Invalid issued at time in the ID token”. Nasi użytkownicy narzekają, że „Wczoraj działało, ale nagle dziś nie działa” lub „Działa na tym komputerze, ale nie na innym”.
W tym poście zbadamy, dlaczego ten problem występuje w Logto, i wyposażymy Cię w wiedzę, jak go rozwiązać.
W OAuth 2.0 i OpenID Connect (OIDC), tokeny identyfikacyjne odgrywają kluczową rolę w bezpiecznym przesyłaniu informacji o tożsamości użytkownika między stronami. Jednym z roszczeń w tokenie identyfikacyjnym jest "iat" (czas wydania), reprezentujący znacznik czasu, w którym token identyfikacyjny został wydany przez serwer autoryzacji.
Teraz przyczyna słynnego błędu „Invalid issued at time” jest niemal jasna.
Aby łagodzić ataki powtórzeniowe i również uwzględniać przesunięcia czasu, Logto wcześniej ustawiło okno tolerancji wynoszące 60 sekund dla tokenów identyfikacyjnych. Każda strona polegająca, która ma różnicę czasu większą niż 60 sekund od czasu światowego, jest uznawana za potencjalnie zagrożoną i nie przejdzie walidacji tokena ID. Stąd błąd „Invalid token at time”.
Jednak w realnym świecie przesunięcia zegara się zdarzają, czasami twój komputer nie może się połączyć z serwerem czasu światowego, aby zsynchronizować czas komputera. Czasami serwer autoryzacji jest rozstrojony. Czasami, co gorsza, oba są rozstrojone.
Ponadto w scenariuszach SSO różnice czasowe między różnymi klientami a dostawcą SSO mogą być jeszcze większe.
Aby złagodzić ten ból, a także uwzględniając środki ostrożności, Logto zwiększyło teraz tolerancję iat z 60 sekund do 5 minut dla uwierzytelnień bez SSO, i 10 minut dla scenariuszy SSO.
W międzyczasie możesz sprawdzić, czy czas na komputerze jest zsynchronizowany z czasem światowym, korzystając po prostu z tej poręcznej strony narzędziowej: https://time.is Zsynchronizuj czas ręcznie lub zmień na inny serwer czasu, aby upewnić się, że różnica czasu mieści się zawsze w naszym oknie tolerancji.
Roszczenie "iat" w tokenach identyfikacyjnych jest kluczowym elementem dla poprawy bezpieczeństwa zarządzania tożsamością i dostępem w nowoczesnych aplikacjach. Włączanie najlepszych praktyk dotyczących obsługi roszczenia "iat" zapewnia solidny i bezpieczny proces uwierzytelniania tożsamości.
Upewnij się także, że twój czas na komputerze jest zawsze zsynchronizowany z serwerem czasu światowego.