← strona głównaProgramowanie (Програмування)

Czym różni się OAuth 1 od OAuth 2

Post opisuje OAuth 1 i OAuth 2: ich historię, przeznaczenie, różnice, cechy bezpieczeństwa oraz zastosowanie w nowoczesnych API.

Spis treściKliknij link, aby przejść do wybranego miejsca
Ta treść została automatycznie przetłumaczona z ukraińskiego.

OAuth 1

OAuth 1 został opracowany na początku lat 2000 jako sposób bezpiecznego dostępu aplikacji zewnętrznych do zasobów użytkownika bez przekazywania hasła. Główna idea polegała na tym, że zewnętrzna usługa mogła wysyłać zapytania w imieniu użytkownika, ale każde zapytanie było podpisywane kryptograficznie, aby zapewnić, że nie zostało zmienione i pochodzi od autoryzowanego klienta.
Cecha OAuth 1:
  • Kryptograficzny podpis każdego zapytania (HMAC-SHA1 lub RSA-SHA1).
  • Używał dwóch typów tokenów: tokena żądania do rozpoczęcia autoryzacji i tokena dostępu do zasobów.
  • Mógł działać nawet bez HTTPS, ponieważ bezpieczeństwo zapewniał podpis zapytania.
  • Był głównie odpowiedni dla aplikacji serwerowych i ograniczonej liczby scenariuszy autoryzacji.
OAuth 1 był aktywnie wykorzystywany w takich usługach jak Twitter API v1 lub starsze wersje LinkedIn, ale z powodu złożoności w realizacji i problemów z podpisami został stopniowo zastąpiony przez OAuth 2.

OAuth 2

OAuth 2 pojawił się w 2012 roku jako uproszczona, bardziej elastyczna i nowoczesna wersja protokołu do autoryzacji i dostępu do zasobów. Jego celem jest uproszczenie pracy programistów, umożliwienie różnym typom klientów (web, aplikacje mobilne, SPA) łatwego dostępu do zasobów użytkownika bez przekazywania hasła.
Cecha OAuth 2:
  • Używa tokenów dostępu (access token) oraz opcjonalnie tokenów odświeżających (refresh token). Token dostępu jest krótkoterminowy, token odświeżający pozwala na przedłużenie sesji.
  • Nie wymaga kryptograficznego podpisu zapytania - bezpieczeństwo zapewnia HTTPS.
  • Obsługuje różne przepływy autoryzacji: kod autoryzacji (dla serwerowych klientów webowych), implicit (dla SPA), hasło (dla zaufanych klientów) oraz dane uwierzytelniające klienta (dla interakcji serwer-serwer).
  • Znacznie łatwiejszy w realizacji i wspierany przez nowoczesne API (Google, Facebook, GitHub, Microsoft, Stripe itp.).
Kiedy co lepiej używać:
  • OAuth 1: jeśli pracujesz z bardzo starymi API, które go wymagają, lub w środowisku bez HTTPS, gdzie ważna jest kryptografia na poziomie zapytania.
  • OAuth 2: dla nowoczesnych aplikacji webowych i mobilnych, SPA, API, gdzie HTTPS jest gwarantowane. Również wygodny dla zewnętrznych klientów, ponieważ wspiera tokeny odświeżające i różne przepływy autoryzacji.

Porównanie OAuth 1 i OAuth 2 w praktyce

  • Składność: OAuth 1 jest bardziej skomplikowany z powodu podpisów, OAuth 2 jest prostszy i bardziej elastyczny.
  • Bezpieczeństwo: OAuth 1 jest bezpieczny nawet bez HTTPS, OAuth 2 wymaga HTTPS.
  • Elastyczność: OAuth 1 jest ograniczony, OAuth 2 wspiera wiele przepływów autoryzacji.
  • Użycie dzisiaj: OAuth 1 jest prawie nieużywany, OAuth 2 to standard dla nowoczesnych API i usług.
OAuth 1 dotyczył bezpiecznej autoryzacji bez HTTPS, OAuth 2 - elastyczności, prostoty i nowoczesnych scenariuszy dla aplikacji webowych i mobilnych.

🔥 Więcej postów

Wszystkie wpisy
Czym jest złożoność faktorialna?
Programowanie (Програмування)16 wrz '25 19:03

Czym jest złożoność faktorialna?

Złożoność faktorialna to szybki wzrost liczby wariantów, gdy dla n elementów możliwych permutacji...

Czym jest NP-trudność?
Programowanie (Програмування)16 wrz '25 19:31

Czym jest NP-trudność?

NP-trudność – to klasa zadań, w której znalezienie rozwiązania jest niezwykle trudne, ale sprawdz...

Czym jest ivar w Ruby / Rails?
Programowanie (Програмування)19 paź '25 20:12

Czym jest ivar w Ruby / Rails?

ivar w Ruby to zmienna instancji (instance variable), która jest oznaczana @. W Rails przekazuje ...

Czym jest ORM i po co jest potrzebny?
Programowanie (Програмування)26 paź '25 14:00

Czym jest ORM i po co jest potrzebny?

ORM - to technologia, która pozwala na pracę z bazami danych za pomocą obiektów kodu, upraszczają...