Jak mogę się upewnić, że mój interfejs API REST odpowiada tylko na żądania generowane przez zaufanych klientów, w moim przypadku moje własne aplikacje mobilne? Chcę zapobiec niechcianym żądaniom pochodzącym z innych źródeł. Nie chcę, aby użytkownicy wpisywali klucz szeregowy lub cokolwiek innego, powinno to nastąpić za kulisami, podczas instalacji i bez wymaganej interakcji użytkownika.
O ile mi wiadomo, HTTPS służy wyłącznie do sprawdzania poprawności serwera, z którym się komunikujesz. Oczywiście używam HTTPS do szyfrowania danych.
Czy istnieje sposób na osiągnięcie tego?
Aktualizacja: użytkownik może wykonywać akcje tylko do odczytu, które nie wymagają zalogowania użytkownika, ale mogą także wykonywać akcje zapisu, które wymagają zalogowania użytkownika (uwierzytelnianie za pomocą tokena dostępu). W obu przypadkach chcę, aby interfejs API odpowiadał na żądania pochodzące tylko od zaufanych aplikacji mobilnych.
Interfejs API będzie również używany do rejestracji nowego konta za pośrednictwem aplikacji mobilnej.
Aktualizacja 2: Wygląda na to, że istnieje wiele odpowiedzi na to pytanie, ale szczerze mówiąc, nie wiem, którą z nich oznaczyć jako odpowiedź. Niektórzy twierdzą, że da się to zrobić, inni twierdzą, że nie da się tego zrobić.