Typ udělení Authorization Code v OAuth 2.0
Typ udělení Authorization Code je jedním z nejčastěji používaných typů udělení OAuth 2.0. Je speciálně navržen pro aplikace, které mohou důvěrně uchovávat svůj client secret, což ho činí ideálním pro serverové aplikace.
Jak Authorization Code funguje?
- Přesměrování:
- Klientská aplikace přesměruje uživatele na autorizační endpoint autorizačního serveru OAuth 2.0. Toto přesměrování obvykle zahrnuje parametry dotazu jako
client_id,response_type(nastavený na "code"),redirect_uri(kam autorizační server odešle uživatele po udělení/zamítnutí oprávnění) ascope(který specifikuje úroveň přístupu, kterou aplikace požaduje).
- Autentizace uživatele:
- Uživatel se přihlásí k autorizačnímu serveru (pokud ještě není přihlášen) a zkontroluje požadavek na přístup ze strany klientské aplikace.
- Vydání autorizačního kódu:
- Pokud uživatel udělí oprávnění, je přesměrován zpět do klientské aplikace prostřednictvím dříve poskytnutého
redirect_uri. Přesměrování také obsahuje autorizační kód v URL.
- Výměna tokenu:
- Klientská aplikace vymění autorizační kód za přístupový token odesláním POST požadavku na token endpoint autorizačního serveru. Tento požadavek obsahuje autorizační kód,
client_id,client_secret,redirect_uriagrant_type(nastavený na "authorization_code").
- Vydání přístupového tokenu:
- Pokud autorizační server úspěšně ověří poskytnutý kód a přihlašovací údaje klienta, vrátí přístupový token (a volitelně refresh token) klientské aplikaci.
- Přístup k chráněnému zdroji:
- Klientská aplikace použije získaný přístupový token k odesílání požadavků na resource server (API) jménem uživatele.
Jak nakonfigurovat Authorization Code?
- Registrace vaší aplikace:
- Před zahájením OAuth toku zaregistrujte svou aplikaci u poskytovatele OAuth 2.0. Po úspěšné registraci obdržíte
client_idaclient_secret.
- Nastavení Redirect URI:
- Při registraci aplikace budete často požádáni o poskytnutí
redirect_uri. Na tuto URI autorizační server odešle uživatele poté, co udělí/zamítne přístup. Ujistěte se, že tato URI je přesná a bezpečná (typicky s použitím HTTPS).
- Implementace OAuth toku:
- Použijte knihovnu nebo SDK kompatibilní s jazykem a frameworkem vaší aplikace pro zjednodušení tohoto procesu.
- Začněte tok přesměrováním uživatelů na autorizační endpoint autorizačního serveru s potřebnými parametry dotazu.
- Implementujte endpoint na vašem serveru, který odpovídá registrovanému
redirect_uri. Tento endpoint bude zpracovávat příchozí autorizační kód. - Vyměňte autorizační kód za přístupový token odesláním POST požadavku na token endpoint.
- Zabezpečení Client Secret:
- Nikdy nevystavujte svůj
client_secretv kódu na straně klienta. Používejte ho pouze na straně serveru při výměně autorizačního kódu za přístupový token.
- Uložení tokenu:
- Jakmile máte přístupový token, uložte ho bezpečně. V závislosti na potřebách vaší aplikace to může být v paměti serveru, databázi nebo bezpečném cookie. Vždy používejte HTTPS pro zajištění šifrované komunikace.
- Zpracování expirace tokenu:
- Přístupové tokeny jsou často krátkodobé. Pokud máte refresh token, použijte ho k získání nového přístupového tokenu bez nutnosti opětovné autentizace uživatele.
Závěrečné poznámky k Authorization Code
Typ udělení Authorization Code je robustní a bezpečná metoda pro získání autorizace uživatele, zejména pro serverové aplikace. Další krok výměny autorizačního kódu za přístupový token zajišťuje, že se vyhnete přímému přístupu k přihlašovacím údajům uživatele. Při implementaci vždy upřednostňujte bezpečnost, používejte HTTPS a bezpečně spravujte client secrets a tokeny.