Autoryzacja Rest API - aplikacja Android

0

Hej,
Posiadam prosty serwis Rest API napisany w spring boot.
Chciałbym do niego dopisać aplikację klienta na Androida. Aplikacja ma nie mieć logowania, tylko każdy użytkownik ma swój identyfikator (jeden na telefon).

W jaki sposób mogę zabezpieczyć endpointy przed dostępem nie z poziomu aplikacji ? Oraz w jaki sposób można byłoby przechowywać identyfikator użytkownika oraz jak wysyłać go na serwer ?

0

na podstawie telefonu id /iban/
https://stackoverflow.com/questions/2785485/is-there-a-unique-android-device-id

generujesz taki w apce wysylasz do serwera (gdy po raz pierwszy sie laczysz z backendem) i przy kazdym requescie sprawdzasz:

  • czy request posiada takie ID, jezeli nie to 403
  • jezeli tak, to sprawdz czy istnieje w bazie danych jezeli nie to 403
0

A w jaki sposób mogę mieć pewność że wysyłane id jest poprawne dla danego telefonu?
Każdy może przecież wysłać requesta z "podrobionym" id.

0

Czy warto wykorzystać SafetyNet ?

0

To co kolega wrzucił wyżej do niczego się nie nadaje, bo na nowych android-ach nic nie dostaniesz.
Nie da się też pobrać IMEI-a od Android-a 10, a na 11 to już zupełna dupa zbita.

Tak naprawdę nie ma dobrego sposobu na to o chcesz zrobić, poza jakimi już naprawdę wymyślnymi motywami ze skompilowanym kodem np, w C++ który Ci zwróci jakiś konkretny hash.

Są techniki do tego wykorzystujące blockchain, ale nie wiem czy to nie strzelanie z armaty do muchy w Twoim przypadku.

Proponuję zrobić jakaś maszynkę generująca hash, zobfuskować to , i liczyć na to że nikt nie będzie mocno zdeterminowany żeby wygrzebać to z kodu :P.

Ale to i tak nie za wiele da bo jak ktoś zrobić reinstall/reset data to stworzy Ci się nowy użytkownik. Chyba że to nie problem dla Ciebie

Możesz jeszcze skorzystać z firebase, i tam trzymać jakiś klucz autoryzacji, zasadniczo nikt spoza Twojej aplikacji nie ma tam dostępu

1 użytkowników online, w tym zalogowanych: 0, gości: 1