Vrsta odobrenja Implicit u OAuth 2.0

Vrsta odobrenja Implicit, također poznata kao "token" metoda, primarno je dizajnirana za aplikacije na strani klijenta gdje klijent ne može sigurno pohraniti tajnu klijenta. Takve aplikacije uključuju jednostranične aplikacije (SPA) ili druge aplikacije temeljene na pregledniku. Umjesto primanja koda autorizacije koji se treba zamijeniti za pristupni token, aplikacija dobiva pristupni token izravno.

Vrsta odobrenja Implicit u LoadFocusu

Kako funkcionira vrsta odobrenja Implicit?

  1. Preusmjeravanje:
  • Klijentska aplikacija preusmjerava korisnika na krajnju točku za autorizaciju poslužitelja za autorizaciju OAuth 2.0. Ovo preusmjeravanje obično uključuje parametre upita poput client_id, response_type (postavljeno na "token" za Implicit odobrenje), redirect_uri (gdje će poslužitelj za autorizaciju preusmjeriti nakon odobravanja/odbijanja pristupa) i scope (koji označava traženu razinu pristupa).
  1. Autentifikacija korisnika:
  • Korisnik se prijavljuje na poslužitelj za autorizaciju (ako već nije prijavljen) i pregledava zahtjev za pristup od klijentske aplikacije.
  1. Izdavanje pristupnog tokena:
  • Ako korisnik odobri pristup, poslužitelj za autorizaciju preusmjerava ga natrag na klijentsku aplikaciju putem navedenog redirect_uri. URI za preusmjeravanje uključuje pristupni token (i njegov istek) izravno u fragmentnom dijelu URL-a.
  1. Pristup zaštićenom resursu:
  • Klijentska aplikacija izdvaja pristupni token iz fragmenta URL-a i pohranjuje ga (npr. u lokalnu pohranu ili sesiju). Zatim koristi ovaj token za slanje zahtjeva poslužitelju resursa (API) u ime korisnika.

Kako konfigurirati vrstu odobrenja Implicit?

  1. Registrirajte svoju aplikaciju:
  • Započnite registracijom vaše aplikacije kod davatelja OAuth 2.0. Obično ćete dobiti client_id nakon uspješne registracije.
  1. Postavljanje URI-ja za preusmjeravanje:
  • Navedite redirect_uri tijekom registracije. Poslužitelj za autorizaciju preusmjerit će korisnike na ovaj URI nakon što odluče o odobravanju ili odbijanju pristupa. Osigurajte da je ovaj URI siguran (obično koristeći HTTPS) i da može rukovat izdvajanjem tokena iz fragmenta URL-a.
  1. Pokretanje OAuth toka:
  • Preusmjerite korisnike na krajnju točku za autorizaciju poslužitelja za autorizaciju s potrebnim parametrima. Koristite biblioteke ili SDK-ove prikladne za jezik ili okvir vaše aplikacije kako biste to olakšali.
  1. Izdvajanje i pohrana tokena:
  • Nakon preusmjeravanja natrag, izdvojite pristupni token iz fragmenta URL-a. Sigurno pohranite token, razmatrajući opcije pohrane na strani klijenta poput Web Storagea (localStorage ili sessionStorage) ili kolačića. Osigurajte da je zaštićen od napada cross-site scripting (XSS).
  1. Korištenje tokena:
  • Priložite pristupni token API zahtjevima upućenim poslužitelju resursa.
  1. Upravljanje istekom tokena:
  • Budući da vrsta odobrenja Implicit obično ne pruža tokene za osvježavanje, kada pristupni token istekne, možda ćete trebati ponovo pokrenuti OAuth tok za dobivanje novog.

Razmatranja:

  • Sigurnost: Vrsta odobrenja Implicit smatra se manje sigurnom od vrste odobrenja Authorization Code, posebno zato što je pristupni token izložen u URL-u. To bi mogao biti rizik u okruženjima gdje se URL-ovi mogu zapisivati ili im treće strane mogu pristupiti.

  • Bez tokena za osvježavanje: Obično vrsta odobrenja Implicit ne pruža tokene za osvježavanje. Stoga, kada pristupni token istekne, cijeli tok se možda mora ponoviti.

  • Zastarjelost: Zbog inherentnih sigurnosnih briga, dokument OAuth 2.0 Security Best Current Practice preporučuje izbjegavanje odobrenja Implicit u korist Authorization Code s PKCE (Proof Key for Code Exchange) za javne klijente, poput SPA-ova.

Zaključak:

Iako vrsta odobrenja Implicit nudi jednostavniji tok za aplikacije na strani klijenta, njene sigurnosne brige dovele su do preporuka protiv njene upotrebe u modernim aplikacijama. Ako gradite nove aplikacije, posebno SPA-ove, razmislite o korištenju vrste odobrenja Authorization Code s PKCE za sigurniji pristup.