Typ implicitneho udelenia v OAuth 2.0

Typ implicitneho udelenia (Implicit Grant Type), tiez znamy ako metoda "token", bol primarne navrhnuty pre klientske aplikacie, kde klient nemoze bezpecne ulozit client secret. Taketo aplikacie zahrnaju single-page aplikacie (SPA) alebo ine aplikacie zalozene na prehliadaci. Namiesto prijatia autorizacneho kodu, ktory je potrebne vymenit za pristupovy token, aplikacia dostane pristupovy token priamo.

Implicit Grant Type in LoadFocus

Ako funguje Implicit Grant Type?

  1. Presmerovanie:
  • Klientska aplikacia presmeruje pouzivatela na autorizacny endpoint autorizacneho servera OAuth 2.0. Toto presmerovanie zvycajne obsahuje query parametre ako client_id, response_type (nastaveny na "token" pre Implicit Grant), redirect_uri (kam autorizacny server presmeruje po udeleni/zamietnu pristupu) a scope (udavajuci pozadovanu uroven pristupu).
  1. Autentifikacia pouzivatela:
  • Pouzivatel sa prihlasi na autorizacny server (ak este nie je prihlaseny) a skontroluje poziadavku na pristup od klientskej aplikacie.
  1. Vydanie pristupoveho tokenu:
  • Ak pouzivatel udeli pristup, autorizacny server ho presmeruje spat do klientskej aplikacie cez poskytnute redirect_uri. URI presmerovania obsahuje pristupovy token (a jeho expiraciu) priamo vo fragmentovej casti URL.
  1. Pristup k chranenym zdrojom:
  • Klientska aplikacia extrahuje pristupovy token z fragmentu URL a ulozi ho (napr. do lokalneho uloziska alebo relacie). Potom pouzije tento token na odosielanie poziadaviek na zdrojovy server (API) v mene pouzivatela.

Ako konfigurovat Implicit Grant Type?

  1. Zaregistrujte vasu aplikaciu:
  • Zacnite registraciou vasej aplikacie u poskytovatela OAuth 2.0. Po uspesnej registracii zvycajne dostanete client_id.
  1. Nastavenie Redirect URI:
  • Poskytnite redirect_uri pocas registracie. Autorizacny server presmeruje pouzivatelov na toto URI po tom, co sa rozhodnu o udeleni alebo zamietnuti pristupu. Zabezpecte, ze toto URI je bezpecne (typicky pomocou HTTPS) a dokaze spracovat extrakciu tokenu z fragmentu URL.
  1. Inicializacia toku OAuth:
  • Presmerujte pouzivatelov na autorizacny endpoint autorizacneho servera s potrebnymi parametrami. Pouzite kniznice alebo SDK vhodne pre jazyk alebo framework vasej aplikacie na uladenie tohto procesu.
  1. Extrakcia a ulozenie tokenu:
  • Po presmerovani spat extrahujte pristupovy token z fragmentu URL. Token ulozte bezpecne, zvazujuc moznosti uloziska na strane klienta ako Web Storage (localStorage alebo sessionStorage) alebo cookies. Zabezpecte, ze je chraneny pred utokmi cross-site scripting (XSS).
  1. Pouzitie tokenu:
  • Pripojte pristupovy token k API poziadavkam odosielanym na zdrojovy server.
  1. Spracovanie expiracie tokenu:
  • Kedze Implicit Grant zvycajne neposkytuje refresh tokeny, ked pristupovy token vyprsi, mozno budete musiet znova inicializovat tok OAuth na ziskanie noveho.

Uvahy:

  • Bezpecnost: Typ implicitneho udelenia je povazovany za menej bezpecny nez typ udelenia autorizacneho kodu, najma preto, ze pristupovy token je vystaveny v URL. To moze byt riziko v prostrediach, kde mozu byt URL logovane alebo pristupne tretim stranam.

  • Ziadny Refresh Token: Zvycajne implicitne udelenie neposkytuje refresh tokeny. Preto, ked pristupovy token vyprsi, cely tok mozno bude treba zopakovat.

  • Zastaranie: Kvoli inherentnym bezpecnostnym obavam dokument OAuth 2.0 Security Best Current Practice odporuca vyhnut sa implicitnemu udeleniu v prospech Authorization Code s PKCE (Proof Key for Code Exchange) pre verejnych klientov, ako su SPA.

Zaver:

Aj ked typ implicitneho udelenia ponuka jednoduchsi tok pre klientske aplikacie, jeho bezpecnostne obavy viedli k odporucaniam proti jeho pouzivaniu v modernych aplikaciach. Ak vytvarate nove aplikacie, najma SPA, zvazujte pouzitie Authorization Code Grant s PKCE pre bezpecnejsi pristup.