Tip implicitne podelitve v OAuth 2.0

Tip implicitne podelitve, znan tudi kot metoda "token", je bil primarno zasnovan za aplikacije na strani odjemalca, kjer odjemalec ne more varno shraniti skrivnosti odjemalca. Takšne aplikacije vključujejo enostranske aplikacije (SPA) ali druge aplikacije, ki temeljijo na brskalniku. Namesto prejema avtorizacijske kode, ki jo je treba zamenjati za žeton za dostop, aplikacija pridobi žeton za dostop neposredno.

Tip implicitne podelitve v LoadFocus

Kako deluje tip implicitne podelitve?

  1. Preusmeritev:
  • Odjemalska aplikacija preusmeri uporabnika na končno točko avtorizacije avtorizacijskega strežnika OAuth 2.0. Ta preusmeritev običajno vključuje poizvedbene parametre, kot so client_id, response_type (nastavljen na "token" za implicitno podelitev), redirect_uri (kamor bo avtorizacijski strežnik preusmeril po odobritvi/zavrnitvi dostopa) in scope (ki nakazuje zahtevano raven dostopa).
  1. Avtentikacija uporabnika:
  • Uporabnik se prijavi v avtorizacijski strežnik (če še ni prijavljen) in pregleda zahtevo za dostop odjemalske aplikacije.
  1. Izdaja žetona za dostop:
  • Če uporabnik odobri dostop, ga avtorizacijski strežnik preusmeri nazaj v odjemalsko aplikacijo prek navedenega redirect_uri. Preusmeritev URI vključuje žeton za dostop (in njegov čas poteka) neposredno v fragmentnem delu URL-ja.
  1. Dostop do zaščitenega vira:
  • Odjemalska aplikacija izvleče žeton za dostop iz fragmenta URL-ja in ga shrani (npr. v lokalno shrambo ali sejo). Nato ta žeton uporabi za pošiljanje zahtev strežniku virov (API) v imenu uporabnika.

Kako konfigurirati tip implicitne podelitve?

  1. Registrirajte svojo aplikacijo:
  • Začnite z registracijo aplikacije pri ponudniku OAuth 2.0. Po uspešni registraciji boste običajno prejeli client_id.
  1. Nastavitev URI za preusmeritev:
  • Med registracijo navedite redirect_uri. Avtorizacijski strežnik bo uporabnike preusmeril na ta URI, ko se odločijo o odobritvi ali zavrnitvi dostopa. Zagotovite, da je ta URI varen (običajno z uporabo HTTPS) in da zmore izvlečenje žetona iz fragmenta URL-ja.
  1. Začnite tok OAuth:
  • Uporabnike preusmerite na končno točko avtorizacije avtorizacijskega strežnika z ustreznimi parametri. Za olajšanje tega postopka uporabite knjižnice ali SDK-je, ki ustrezajo jeziku ali ogrodju vaše aplikacije.
  1. Izvlečenje in shranjevanje žetona:
  • Po preusmeritvi nazaj izvlecite žeton za dostop iz fragmenta URL-ja. Žeton varno shranite ob upoštevanju možnosti shranjevanja na strani odjemalca, kot sta spletna shramba (localStorage ali sessionStorage) ali piškotki. Zagotovite zaščito pred napadi XSS (cross-site scripting).
  1. Uporaba žetona:
  • Žeton za dostop pripnite zahtevam API, poslanim strežniku virov.
  1. Obravnavanje poteka žetona:
  • Ker implicitna podelitev običajno ne zagotavlja žetonov za osvežitev, boste morda morali ob poteku žetona za dostop znova začeti tok OAuth za pridobitev novega.

Premisleki:

  • Varnost: Tip implicitne podelitve velja za manj varnega kot tip podelitve avtorizacijske kode, zlasti zato, ker je žeton za dostop izpostavljen v URL-ju. To bi lahko predstavljalo tveganje v okoljih, kjer so URL-ji lahko zabeleženi ali dostopni tretjim osebam.

  • Brez žetona za osvežitev: Običajno implicitna podelitev ne zagotavlja žetonov za osvežitev. Zato bo morda treba ob poteku žetona za dostop ponoviti celoten tok.

  • Opuščanje: Zaradi inherentnih varnostnih pomislekov dokument OAuth 2.0 Security Best Current Practice priporoča izogibanje implicitni podelitvi v korist avtorizacijske kode s PKCE (Proof Key for Code Exchange) za javne odjemalce, kot so SPA-ji.

Zaključek:

Čeprav tip implicitne podelitve ponuja enostavnejši tok za aplikacije na strani odjemalca, so njegovi varnostni pomisleki privedli do priporočil proti njegovi uporabi v sodobnih aplikacijah. Če gradite nove aplikacije, zlasti SPA-je, razmislite o uporabi podelitve avtorizacijske kode s PKCE za varnejši pristop.