Implicit Grant Type OAuth 2.0:ssa

Implicit Grant Type, tunnetaan myös "token"-menetelmänä, suunniteltiin ensisijaisesti asiakaspuolen sovelluksille, joissa asiakas ei voi turvallisesti tallentaa client secretiä. Tällaisia sovelluksia ovat yksisivuiset sovellukset (SPA:t) tai muut selainpohjaiset sovellukset. Sen sijaan, että sovellus saisi authorization coden, joka pitäisi vaihtaa pääsytokeniin, sovellus saa pääsytokenin suoraan.

Implicit Grant Type LoadFocuksessa

Kuinka Implicit Grant Type toimii?

  1. Uudelleenohjaus:
  • Asiakassovellus ohjaa käyttäjän OAuth 2.0 -valtuutuspalvelimen valtuutuspäätepisteeseen. Uudelleenohjaus sisältää tyypillisesti kyselyparametreja kuten client_id, response_type (asetettu "token"-arvoksi Implicit Grantissa), redirect_uri (minne valtuutuspalvelin ohjaa pääsyn myöntämisen/kieltämisen jälkeen) ja scope (pyydetyn käyttöoikeustason ilmaisemiseksi).
  1. Käyttäjän todennus:
  • Käyttäjä kirjautuu valtuutuspalvelimelle (jos ei ole jo kirjautunut) ja tarkistaa asiakassovelluksen pääsypyynnön.
  1. Pääsytokenin myöntäminen:
  • Jos käyttäjä myöntää pääsyn, valtuutuspalvelin ohjaa hänet takaisin asiakassovellukseen annetun redirect_uri:n kautta. Uudelleenohjaus-URI sisältää pääsytokenin (ja sen vanhenemisajan) suoraan URL:n fragment-osassa.
  1. Suojattuun resurssiin pääsy:
  • Asiakassovellus purkaa pääsytokenin URL-fragmentista ja tallentaa sen (esim. paikalliseen tallennustilaan tai istuntoon). Se käyttää sitten tätä tokenia pyyntöjen tekemiseen resurssipalvelimelle (API) käyttäjän puolesta.

Kuinka konfiguroida Implicit Grant Type?

  1. Rekisteröi sovelluksesi:
  • Aloita rekisteröimällä sovelluksesi OAuth 2.0 -palveluntarjoajalle. Onnistuneen rekisteröinnin jälkeen saat tyypillisesti client_id:n.
  1. Redirect URI:n asetus:
  • Anna redirect_uri rekisteröinnin yhteydessä. Valtuutuspalvelin ohjaa käyttäjät tähän URI:iin pääsyn myöntämis-/kieltämispäätöksen jälkeen. Varmista, että URI on turvallinen (tyypillisesti HTTPS:ää käyttäen) ja pystyy käsittelemään tokenin purkamisen URL-fragmentista.
  1. OAuth-vuokulun aloittaminen:
  • Ohjaa käyttäjät valtuutuspalvelimen valtuutuspäätepisteeseen tarvittavilla parametreilla. Käytä sovelluksesi kielen tai kehyksen mukaisia kirjastoja tai SDK:ita tämän helpottamiseksi.
  1. Tokenin purkaminen ja tallennus:
  • Uudelleenohjauksen jälkeen purka pääsytoken URL-fragmentista. Tallenna token turvallisesti, harkiten asiakaspuolen tallennusvaihtoehtoja kuten Web Storage (localStorage tai sessionStorage) tai evästeet. Varmista, että se on suojattu cross-site scripting (XSS) -hyökkäyksiltä.
  1. Tokenin käyttö:
  • Liitä pääsytoken API-pyyntöihin resurssipalvelimelle.
  1. Tokenin vanhenemisen käsittely:
  • Koska Implicit Grant ei yleensä tarjoa refresh tokeneita, pääsytokenin vanhetessa saatat joutua aloittamaan OAuth-vuokulun uudelleen uuden tokenin hankkimiseksi.

Huomioitavaa:

  • Turvallisuus: Implicit Grant Typeä pidetään vähemmän turvallisena kuin Authorization Code Grant Typeä, erityisesti koska pääsytoken on näkyvissä URL:ssa. Tämä voi olla riski ympäristöissä, joissa URL:eja saatetaan lokittaa tai kolmannet osapuolet voivat käyttää niitä.

  • Ei Refresh Tokenia: Tyypillisesti Implicit Grant ei tarjoa refresh tokeneita. Siksi pääsytokenin vanhetessa koko vuokulku saatetaan joutua toistamaan.

  • Vanheneminen: Luontaisten turvallisuushuolien vuoksi OAuth 2.0 Security Best Current Practice -dokumentti suosittelee Implicit Grantin välttämistä Authorization Code with PKCE (Proof Key for Code Exchange) -menetelmän hyväksi julkisille asiakkaille kuten SPA:ille.

Yhteenveto:

Vaikka Implicit Grant Type tarjoaa yksinkertaisemman vuokulun asiakaspuolen sovelluksille, sen turvallisuushuolet ovat johtaneet suosituksiin sen käytön välttämisestä nykyaikaisissa sovelluksissa. Jos rakennat uusia sovelluksia, erityisesti SPA:ita, harkitse Authorization Code Grant with PKCE -menetelmän käyttöä turvallisempaa lähestymistapaa varten.