2012-02-10 13 views
5

Mam aplikację webową, która wykonuje wiele żądań ajax z serwerem php i serwerem bazy danych. Stworzyłem też aplikację na iPhone'a i aplikację na Androida, które do tej pory pracują jako aplikacje offline.OAuth: przypadek użycia implementacji protokołu OAuth

Teraz chcę utworzyć API, które będzie używane do synchronizowania danych między serwerem WWW i aplikacjami na smartfony. Czy powinienem używać do tego OAuth? O tym, co przeczytałem na temat OAuth - wygląda na to, że jest ono używane, jeśli chcę otworzyć mój interfejs API, aby mógł być używany przez aplikacje innych firm. Ale tutaj chcę tylko zapewnić bezpieczny transfer danych między API a moimi własnymi aplikacjami.

Czy ktoś może rzucić trochę światła na to?

Odpowiedz

4

Głównym zastosowaniem OAuth jest udostępnianie aplikacji firm trzecich do uzyskiwania dostępu do prywatnych zasobów użytkownika w witrynie internetowej bez podawania danych uwierzytelniających do aplikacji innej firmy. Załóżmy na przykład, że Twitter chce uzyskać listę kontaktów z konta Yahoo. Tradycyjny sposób podania nazwy użytkownika i hasła to Twitter. Ale z OAuth, dajesz im tymczasowy znak (tzw Access Token), który upoważnia Twittera dostęp do swoich kontaktów na Yahoo przez ograniczony okres czasu (do albo token ten wygasa albo Ty, jako właściciel zasobu prywatnego, wyraźnie odwołać).

To powiedziawszy, OAuth nie dotyczy bezpiecznego przesyłania danych w Internecie. To inna historia, którą zwykle osiąga się za pomocą SSL. Nawet jeśli używasz OAuth, musisz użyć SSL obok, aby upewnić się, że dane są bezpiecznie przesyłane i odbierane.

W twoim przypadku musisz sprawdzić, do czego służy API. Jeśli jest to publiczny interfejs API, który nie udostępnia żadnych danych prywatnych rozmówcom, nie ma potrzeby używania numeru OAuth. Jeśli interfejs API służy do uzyskiwania dostępu do prywatnych zasobów poszczególnych użytkowników, możesz rozważyć użycie numeru OAuth. Jeśli zdecydujesz się na implementację OAuth, możesz zezwolić innym aplikacjom innych firm na dostęp do Twojego API w przyszłości bez żadnych obaw.

0

Wiele zależy od sposobu zabezpieczenia interfejsu API. Czy Twoje API jest otwarte dla publiczności, szczególnie adresy pocztowe? Jeśli twoje dane nie są czymś, co każdy użytkownik powinien zobaczyć, to w jaki sposób sprawdzasz uwierzytelnienie poświadczeń użytkownika?

Najważniejsze, że powinniśmy unikać udostępniania nazwy użytkownika i hasła przez kabel, aby cały czas sprawdzać autentyczność. Oznacza to, że Twój interfejs API nie powinien wymagać nazwy użytkownika i hasła do sprawdzania, czy użytkownik jest ważny. Możesz to zrobić, wysyłając nazwę użytkownika i hasło z telefonu komórkowego lub identyfikatora urządzenia lub innej rzeczy.

W takiej sytuacji serwer OAuth przychodzi na ratunek. Zasadniczo na jednym adresie URL użytkownik wyśle ​​swoją nazwę użytkownika i hasło, aby uzyskać swój token dostępu. Po uzyskaniu tego możemy użyć tokenu dostępu do sprawdzenia poprawności każdego żądania i podjęcia niezbędnych działań.

Możesz polecać filmy z zainstalowanym serwerem OAuth w Laravel 5 za pomocą bshaffer, który jest jedną z najlepszych bibliotek OAuth dla dowolnego frameworka PHP dla użytkownika. https://www.youtube.com/watch?v=0vGXbWdtjls