Data dodania: 18-05-2025
Znany również jako:
Open Authorization 2.0
Definicja OAuth 2.0
OAuth 2.0 to otwarty standard autoryzacji, który umożliwia aplikacjom stron trzecich dostęp do zasobów użytkownika przechowywanych na innym serwerze — bez potrzeby udostępniania loginu i hasła. Działa poprzez przydzielanie ograniczonego i odwoływalnego tokenu dostępowego.
Kluczowe komponenty
Komponent | Opis |
---|---|
Resource Owner | Użytkownik, którego dane są chronione. |
Client | Aplikacja żądająca dostępu do danych użytkownika. |
Authorization Server | Serwer wydający tokeny na podstawie autoryzacji. |
Resource Server | Serwer, który przechowuje zasoby i honoruje tokeny dostępu. |
Typowe scenariusze autoryzacji
Grant Type | Przeznaczenie |
---|---|
Authorization Code | Bezpieczny przepływ dla aplikacji webowych. |
Implicit | Stosowany przez aplikacje SPA (obecnie niezalecany). |
Client Credentials | Dostęp bez użytkownika – dla integracji serwer–serwer. |
Resource Owner Password | Bezpośrednie podanie loginu i hasła (już niezalecane). |
Device Code | Autoryzacja na urządzeniach z ograniczonym UI (TV, IoT). |
Zalety OAuth 2.0
- Bezpieczeństwo – użytkownik nie musi udostępniać swojego hasła aplikacjom.
- Kontrola dostępu – możliwość ograniczenia zakresu (ang. scope) uprawnień.
- Możliwość odwołania dostępu – użytkownik może cofnąć zgodę w dowolnym momencie.
- Powszechność – wspierany przez większość dużych platform (Google, Microsoft, GitHub).
Wyzwania wdrożeniowe
- Złożoność – różnorodność grantów i mechanizmów odświeżania tokenów.
- Zagrożenia CSRF i redirect URI spoofing – wymagają stosowania dobrych praktyk.
- Brak standaryzacji sesji – konieczność własnej implementacji logiki sesji.
- Ryzyko błędnej implementacji – np. przechowywanie tokenów w lokalnej pamięci przeglądarki.
OAuth vs OpenID Connect
OAuth 2.0 zapewnia autoryzację, natomiast OpenID Connect (OIDC) to rozszerzenie OAuth 2.0 o uwierzytelnianie. OIDC pozwala na uzyskanie danych tożsamości użytkownika, co czyni go idealnym do logowania jednokrotnego (SSO).
Przykłady zastosowania
- Logowanie przy użyciu konta Google lub Facebooka.
- Integracja aplikacji z API CRM, kalendarza czy chmury.
- Automatyczne przyznawanie dostępu serwisom w imieniu użytkownika (np. synchronizacja danych).
Dobre praktyki
- Zawsze stosuj
PKCE
dla aplikacji klienckich. - Ograniczaj zakres tokenów (
scope
) do minimum. - Przechowuj tokeny bezpiecznie – najlepiej poza przeglądarką.
- Monitoruj i odświeżaj tokeny w sposób kontrolowany i zgodny z RFC 6749.
Standardy i specyfikacje
- RFC 6749 – podstawowa specyfikacja OAuth 2.0.
- RFC 6750 – Bearer Token Usage.
- OAuth 2.1 (draft) – uproszczona, zaktualizowana wersja, eliminująca starsze granty.
- OpenID Connect – warstwa uwierzytelnienia oparta na OAuth 2.0.