Nodea — logo

OAuth

OAuth (Open Authorization) to otwarty standard autoryzacji, który pozwala aplikacji uzyskać ograniczony dostęp do danych użytkownika przechowywanych w innej usłudze — bez konieczności udostępniania jej loginu i hasła. To właśnie ten mechanizm stoi za przyciskami „Zaloguj się przez Google” czy „Połącz z Facebookiem” oraz za integracjami między aplikacjami korzystającymi z API.

Na czym polega OAuth?

Ideą OAuth jest oddzielenie dostępu do zasobów od poświadczeń użytkownika. Zamiast wpisywać hasło w aplikacji zewnętrznej, użytkownik loguje się bezpośrednio u dostawcy usługi (serwera autoryzacji) i wyraża zgodę na konkretny, ograniczony zakres uprawnień. W zamian aplikacja otrzymuje token dostępu — czasowy klucz, którym potwierdza swoje uprawnienia przy każdym zapytaniu do API. Tokeny często przyjmują format JWT.

Standard OAuth 2.0 definiuje kilka scenariuszy (grantów) dopasowanych do różnych sytuacji: Authorization Code dla aplikacji webowych, Client Credentials dla komunikacji serwer–serwer czy Device Flow dla urządzeń bez przeglądarki. Kluczowe pojęcia to zakres uprawnień (scope) określający, do czego token daje dostęp, oraz token odświeżający (refresh token), pozwalający uzyskać nowy token dostępu bez ponownego logowania.

Zastosowanie w praktyce

OAuth jest fundamentem nowoczesnych integracji: logowania społecznościowego (SSO), aplikacji mobilnych łączących się z backendem oraz usług, które w imieniu użytkownika sięgają po dane innej platformy — np. narzędzie do publikacji postów uzyskujące dostęp do konta w mediach społecznościowych. Kluczowa korzyść to bezpieczeństwo: hasło nigdy nie trafia do aplikacji trzeciej, a przyznany dostęp można w dowolnym momencie cofnąć.

Warto odróżnić OAuth od uwierzytelniania. Sam OAuth odpowiada na pytanie „do czego aplikacja ma prawo”, a nie „kim jest użytkownik” — do potwierdzania tożsamości służy zbudowana na nim warstwa OpenID Connect. OAuth uzupełnia się też z innymi mechanizmami bezpieczeństwa, jak uwierzytelnianie dwuskładnikowe, tworząc razem spójny model kontroli dostępu w architekturach opartych na REST.

Powiązane pojęcia

Najczęstsze pytania

Czym różni się OAuth od uwierzytelniania?

OAuth to protokół autoryzacji, czyli przyznawania dostępu do zasobów, a nie uwierzytelniania tożsamości. Mówi, do czego aplikacja ma prawo, ale sam nie potwierdza, kim jest użytkownik. Do logowania i potwierdzania tożsamości służy nadbudowana nad OAuth 2.0 warstwa OpenID Connect, często mylona z samym OAuth.

Czy OAuth przekazuje moje hasło aplikacji?

Nie i to jest jego kluczowa zaleta. Zamiast podawać hasło aplikacji zewnętrznej, logujesz się bezpośrednio u dostawcy (np. Google), a aplikacja otrzymuje jedynie token dostępu o ograniczonym zakresie. Hasło nigdy nie trafia do aplikacji, a przyznany dostęp można w każdej chwili cofnąć.