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.
Kuinka Implicit Grant Type toimii?
- 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) jascope(pyydetyn käyttöoikeustason ilmaisemiseksi).
- Käyttäjän todennus:
- Käyttäjä kirjautuu valtuutuspalvelimelle (jos ei ole jo kirjautunut) ja tarkistaa asiakassovelluksen pääsypyynnön.
- 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.
- 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?
- Rekisteröi sovelluksesi:
- Aloita rekisteröimällä sovelluksesi OAuth 2.0 -palveluntarjoajalle. Onnistuneen rekisteröinnin jälkeen saat tyypillisesti
client_id:n.
- Redirect URI:n asetus:
- Anna
redirect_urirekisterö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.
- 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.
- 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ä.
- Tokenin käyttö:
- Liitä pääsytoken API-pyyntöihin resurssipalvelimelle.
- 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.