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.

Authorization Code Grant Type in LoadFocus

Jak Authorization Code funguje?

  1. 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í) a scope (který specifikuje úroveň přístupu, kterou aplikace požaduje).
  1. 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.
  1. 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.
  1. 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_uri a grant_type (nastavený na "authorization_code").
  1. 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.
  1. 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?

  1. 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_id a client_secret.
  1. 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).
  1. 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.
  1. Zabezpečení Client Secret:
  • Nikdy nevystavujte svůj client_secret v 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.
  1. 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.
  1. 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.