Czy tokeny dostępu OAuth2 dla aplikacji mobilnej muszą wygasnąć?
Przyjęta odpowiedź tutajdlaczego tokeny dostępu OAuth2 wygasają:
Wielu dostawców obsługuje żetony okaziciela, które są bardzo słabe pod względem bezpieczeństwa. Sprawiając, że są one krótkotrwałe i wymagają odświeżenia, ograniczają czas, w którym atakujący może nadużyć skradzionego tokena. (Co to znaczy? Mam na myśli umożliwienie transmisji bez TLS? Coś jeszcze?).Wdrożenie na dużą skalę nie chce przeprowadzać wyszukiwania bazy danych w każdym wywołaniu API, więc zamiast tego wydają samo-zakodowany token dostępu, który można zweryfikować przez deszyfrowanie. Oznacza to jednak również, że nie ma możliwości odwołania tych żetonów, więc są wydawane na krótki czas i muszą zostać odświeżone.Znacznik odświeżania wymaga uwierzytelnienia klienta, co czyni go silniejszym. W przeciwieństwie do powyższych tokenów dostępu, jest on zwykle implementowany przy wyszukiwaniu bazy danych.Zakładając, że nie obsługujemy nieszyfrowanej transmisji tokena dostępu, zajmiemy się pierwszym punktem.
Zakładając, że jesteśmy w stanie przeprowadzić wyszukiwanie bazy danych na odwołanym, całkowicie losowym tokenie dostępu, zajmuje się drugi.
W przypadku aplikacji mobilnych uwierzytelnianie klienta nie może być silniejsze, ponieważ „id_klienta i sekret_klienta uzyskane podczas rejestracji są osadzone w kodzie źródłowym aplikacji. W tym kontekście klient_sekret nie jest oczywiście traktowany jako tajemnica”. (Google). To eliminuje trzeci problem.
Jaka jest zatem korzyść z oddzielenia żetonów dostępu krótkożyciowego i żetonów odświeżania długotrwałego w tym scenariuszu? Czy jest „w porządku”, aby po prostu wystawić nie wygasające tokeny dostępu i zignorować całą część znacznika odświeżania?