2016-06-27 21 views
10

Natknąłem się na wiele artykułów i wiele sugeruje użycie klucza OAuth over API. Z mojego zrozumienia, w OAuth, w końcu otrzymujemy token dostępu i jest on ważny przez wiele dni. Jednym z przykładów jest to, że token Oszczędnościowy w trybie online QuickBooks jest ważny przez 6 miesięcy.OAuth (token dostępu) Klucz interfejsu Vs API

Tak więc token dostępu jest równoważny kluczowi API. Ktokolwiek ją dostanie, powinien ją zabezpieczyć podobnie jak klucze API. Połączenia OAuth powinny być nawiązywane za pośrednictwem protokołu HTTPS, podobnie jak w przypadku wywołań opartych na klawiszach API.

Kolejną przewagą nad OAuth jest autoryzacja. Ale możemy zrobić to samo z modelem klucza API. Na przykład, możemy zdefiniować reguły w naszej bazie danych, takie jak te klucze API mają dostęp do tych API.

Teraz, jaka jest prawdziwa zaleta OAuth? Jeśli wdrażamy protokół OAuth, musimy poprosić wszystkich naszych klientów o zainstalowanie bibliotek obsługujących protokoły OAuth na swoim serwerze. I jest to złożone zadanie dla nich, a także dla nas. Natomiast w kluczowym modelu API jest to proste połączenie internetowe, bez innych dodatkowych bibliotek i złożoności.

Moim zamiarem jest po prostu lepsze zrozumienie protokołu OAuth i porównanie go z modelem klucza API.

Uwaga:
Nie mówię o Google & LinkedIn rodzaju modelu, w którym użytkownicy mogą zobaczyć i dać uprawnienia. Mówię tylko o interfejsach API, które udostępniamy naszym klientom.

Dzięki za pomoc z góry.

+1

Myślę, że ktoś już zadał to pytanie http://stackoverflow.com/questions/6767813/api-keys-vs-http-authentication-vs-oauth-in-a-restful-api –

+0

Tak. Cały opis odpowiedzi znajduje się w moim pytaniu. Dlaczego więc nadal OAuth? Czy to naprawdę przydatne tylko dla tego podejścia typu Google - LinkedIn? I nie ma żadnych rzeczywistych korzyści w małej bazie klientów? – user10

Odpowiedz

12

Potrzebujesz OAuth tylko wtedy, gdy chcesz włączyć użytkownika swojej usługi, aby umożliwić aplikacji klienta innej firmy dostęp do swoich danych przechowywanych w twojej usłudze bez ujawniania jego/jej poświadczeń (ID & hasło) do aplikacji .

Co za klucz API & API może zrobić tylko uwierzytelnienie aplikacji klienckiej. Jeśli możesz zezwolić uwierzytelnionej aplikacji klienckiej na dostęp do danych użytkownika bez wyraźnej zgody użytkownika, nie musisz używać protokołu OAuth.

+0

Ok. Idealny. Dziękuję Ci. – user10

+0

A co z używaniem protokołu OAuth bez klucza API i sekretu? Czy poświadczenia OAuth nie byłyby w jakiś sposób powiązane z identyfikatorem klienta (kluczem API)? – mko

Powiązane problemy