Pracuję nad serwerem oAuth2 i natknąłem się na to pytanie.Czy serwer OAuth powinien przekazać to samo hasło dostępu do tego samego żądania klienta?
Załóżmy scenariusz, w którym moje żetony wygasną w ciągu jednej godziny. W tym przedziale czasowym niektórzy klienci przechodzą przez domyślną autoryzację pięćdziesiąt razy, używając tego samego client_id
i tego samego redirect_uri
. Zasadniczo to samo.
Czy powinienem podać ten sam numer accessToken
wygenerowany na pierwsze żądanie kolejnych, dopóki nie wygaśnie, czy też powinienem wydać nowy accessToken
na każde żądanie?
Zaletą wysyłania tego samego tokaonu jest to, że nie pozostawi nieużywanych i nieużywanych tokenów klienta na serwerze, minimalizując okno dla intruza próbującego odgadnąć poprawny token.
Wiem, że powinienem ograniczyć stawki rzeczy i robię to, ale w przypadku dużego ataku botnetowego z tysięcy różnych maszyn, niektóre ograniczenia nie zaczną obowiązywać natychmiast.
Jednak nie jestem pewien co do wad tego rozwiązania i dlatego przyjechałem tutaj. Czy jest to prawidłowe rozwiązanie?
Jestem zdezorientowany z trzecim punktem twojego. OP nie wspomina o parametrze "stan". Nie sądzę, aby stan został wysłany jako parametr do pobrania nowego tokena. –
@KiranShakya Klient może wysłać lub nie wysłać parametru stanu. Serwer autoryzacji MUSI wysłać parametr stanu, jeśli został przekazany wraz z żądaniem autoryzacji do skonfigurowanego identyfikatora URI przekierowania. Zobacz https://tools.ietf.org/html/rfc6749#section-4.2.2. To jest istotne. – vap78
w punkcie 2 jest więcej wniosków, które mogą spowolnić czas reakcji. Popraw mnie, jeśli się mylę – Prageeth