OAuth wyjaśniony: role, przepływ PKCE i OAuth vs SAML

OAuth wyjaśniony

Czym jest OAuth? Role, przepływ PKCE, OAuth vs SAML vs OIDC | We.Inc

OAuth 2.0 prostymi słowami: cztery role, przepływ authorization code z PKCE krok po kroku, scopes oraz czym OAuth różni się od OpenID Connect i SAML.

OAuth 2.0 to standard, który pozwala jednej aplikacji działać w Twoim imieniu w innej usłudze, nigdy nie widząc Twojego hasła. Zatwierdzasz żądanie na stronie logowania samej usługi, a aplikacja dostaje access token ograniczony do zakresów (scopes), na które się zgodziłeś. OAuth zajmuje się autoryzacją; OpenID Connect dodaje na nim logowanie.

OAuth 2.0 vs OpenID Connect vs SAML 2.0

Przed OAuth połączenie dwóch usług często oznaczało wpisanie hasła do jednej z nich w drugiej. OAuth zastąpił to krótkotrwałymi tokenami o wąskim zakresie, wydawanymi dopiero po Twojej zgodzie. Poniższy generator tworzy w Twojej przeglądarce prawdziwy verifier i challenge PKCE oraz buduje URL autoryzacji, abyś zobaczył każdy parametr używany w przepływie.

Najczęściej zadawane pytania

OAuth to uwierzytelnianie czy autoryzacja?

Autoryzacja. Access token mówi, co aplikacja może zrobić, a nie kim jest użytkownik, i API może Ci tego nawet nie zdradzić. Gdy potrzebujesz tożsamości osoby, użyj OpenID Connect, który zwraca podpisany ID token z claimami takimi jak sub, iss, aud i exp.

Czym jest PKCE i czy go potrzebuję?

PKCE (RFC 7636) wiąże kod autoryzacji z aplikacją, która rozpoczęła przepływ. Aplikacja najpierw wysyła hash losowego sekretu, a później sam sekret, więc skradziony kod jest bezużyteczny. Używaj S256, który serwery muszą obsługiwać, zamiast plain.

Czym różni się OAuth od SAML?

SAML to starszy standard oparty na XML, w którym dostawca tożsamości wysyła podpisaną asercję o użytkowniku do dostawcy usługi, głównie na potrzeby firmowego single sign-on w przeglądarkach. OAuth wydaje tokeny do dostępu do API i dobrze sprawdza się w aplikacjach mobilnych i API. Bliższym odpowiednikiem logowania SAML w świecie OAuth jest OpenID Connect.

Czym są scopes?

Scopes (zakresy) to uprawnienia, o które prosi aplikacja, zapisane jako lista rozdzielonych spacjami ciągów znaków z rozróżnianiem wielkości liter, definiowanych przez serwer autoryzacji, na przykład openid email lub repo read:user. Ekran zgody je pokazuje, a token obejmuje tylko to, co zostało zatwierdzone.

Czy nadal używać implicit flow?

Nie w nowych projektach. Zwracał tokeny we fragmencie URL, skąd mogą wyciec przez historię i logi. Przepływ authorization code z PKCE daje aplikacjom przeglądarkowym tę samą wygodę bez takiego ryzyka.

Cztery role

Po co istnieje wymiana kodu

Gdzie pasuje OpenID Connect

Przepływ authorization code z PKCE

Każdy krok i parametry, które przenosi

PKCE w kodzie

Utwórz verifier i challenge S256 w przeglądarce

32 losowe bajty zakodowane jako base64url dają verifier o długości 43 znaków, najkrótszej, na jaką pozwala RFC 7636.

Wymień kod na tokeny

Uruchamiane po przekierowaniu. Najpierw porównaj state, a potem wyślij zapisany verifier razem z kodem.

Generator PKCE i URL autoryzacji

Tworzy świeży code_verifier i jego code_challenge S256 za pomocą kryptografii Twojej przeglądarki, a potem składa URL autoryzacji z Twoich ustawień. Nic nie jest wysyłane; poniższy endpoint to placeholder, który podmieniasz.

Endpoint autoryzacji

Zakresy (rozdzielone spacjami)

Nowy verifier

code_verifier (znaków: {n}, trzymaj w tajemnicy do kroku 4)

code_challenge (S256)

URL autoryzacji

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony