• token
  • oidc
  • päivitystoken
  • pääsytoken
  • tunnistetoken

Ymmärtäminen pääsytokenit, päivitystokenit ja tunnistetokenit OpenID Connect (OIDC) -protokollassa

OpenID Connect (OIDC) -protokollasta on tullut laajasti hyväksytty standardi identiteetin hallinnalle. Mutta ymmärrätkö todella näiden tokenien roolit ja ominaisuudet?

Charles
Charles
Developer

OIDC, OAuth 2.0 ja tokenit

OpenID Connect Protocol, myös tunnettu nimellä OIDC, on noussut laajasti hyväksytyksi standardiksi tarjoten perustavanlaatuisen kehyksen identiteetin hallintaan. Se on todennuskerros, joka on rakennettu tunnetun OAuth 2.0 -protokollan päälle. Vaikka OAuth 2.0 on pelkästään resurssien valtuuttamiseen, OIDC on protokolla, joka standardoi ja vahvistaa asiakastodennuksen, uusien tunnistetokenien avulla.

Odota... Olet ehkä kuullut pääsytokeneista ja päivitystokeneista OAuth-aikakaudella, ja nyt OIDC tuo mukanaan uuden konseptin? Ymmärrätkö todella eroja näiden tokenien välillä?

Mitä ovat pääsytokenit, päivitystokenit ja tunnistetokenit OIDC:ssä?

Aloitetaan käytännön skenaariolla.

Kuvittele, että kehität tyypillistä asiakas-palvelin-sovellusta, ja ne kommunikoivat keskenään RESTful-rajapintojen kautta. Haluat pitää suurimman osan rajapinnoistasi yksityisinä, sallien vain valtuutettujen asiakkaiden pääsyn. Tarvitset mekanismin asiakkaan todentamiseen ja rajapintapyyntöjen valtuuttamiseen palvelimellesi.

Ihannetapauksessa RESTful-rajapintojen tulisi olla tilattomia, mikä tarkoittaa, että palvelin ei saa tallentaa mitään asiakaskohtaista istuntotietoa. Aina, kun kelvollinen pyyntö saapuu, palvelimen tulisi vain vastata pyydetyillä tiedoilla. Tässä kohtaa tokenit astuvat kuvaan. Joten, millaista tokenia tässä tapauksessa pitäisi käyttää?

Pääsytokenit suojaavat rajapintojasi

OAuth 2.0:ssa ja OIDC:ssä jokainen suojattu rajapinta käsitellään resurssina. Pääsytoken on juuri se token, jonka asiakas välittää palvelimelle pyydettäessä rajapintaresurssia, tavallisesti pyyntöotsikon kautta ja JWT -muodossa.

Palvelinpuolella, aina kun pyyntö saapuu, palvelimen tarvitsee vain tarkistaa, kantaako saapuva pyyntö kelvollista pääsytokenia. Vahvistusprosessi sisältää tavallisesti JWT-tokenin dekoodauksen, allekirjoituksen ja vanhentumisajan tarkistamisen sekä laajuusväitteen tarkistamisen varmistaakseen, että asiakkaalla on tarvittavat valtuudet.

Saatat kuitenkin pohtia: Jos asiakassovellukseni voi saada kelvollisen pääsytokenin onnistuneen kirjautumisen jälkeen ja käyttää pääsytokenia pyytääkseen rajapinnoilta, eikö se ole riittävää? Miksi tarvitsen muita tokeneita?

Hyvä kysymys, selitän sen askel askeleelta.

Miksi tarvitsemme päivitystokeneita?

Vaikka pääsytokenit täyttävät teknisesti järjestelmän toimivuuden vähimmäisvaatimukset, turvallisuussyistä pääsytokeneiden voimassaoloaika on yleensä hyvin lyhyt (tyypillisesti tunti). Kuvittele, jos meillä olisi vain pääsytokeneita, käyttäjien pitäisi kirjautua uudelleen aina, kun pääsytoken vanhenee. Moderneissa yksisivuverkkosovelluksissa (SPA) ja erityisesti mobiilisovelluksissa usein tapahtuva uloskirjautuminen on melko kivulias käyttäjäkokemus, vaikka yritämme vain suojella heidän käyttäjäturvallisuuttaan.

Siksi tarvitsemme tasapainoa tokenien turvallisuuden ja käyttäjäystävällisyyden välillä. Siksi päivitystokenit on otettu käyttöön.

Miksi päivitystokenilla voi olla pidempi elinikä?

Pääsytokeneita käytetään pääsyyn API-resursseihin, joten niiden lyhytaikainen luonne auttaa vähentämään riskiä, että ne vuotavat tai vaarantuvat. Toisaalta, koska päivitystokeneita käytetään vain uusien pääsytokeneiden vaihtamiseen, niitä ei käytetä yhtä usein kuin pääsytokeneita, ja siten altistumisriski pienenee. Siksi pidempi voimassaoloaika on hyväksyttävissä päivitystokeneille.

Päivitystokenin turvallisuuden varmistaminen

Koska päivitystokenit tallennetaan myös asiakaspuolelle, niiden kompromissittomaksi varmistaminen on haastavaa, erityisesti julkisten asiakkaiden, kuten yksisivuverkkosovellusten (SPA) ja mobiilisovellusten, kohdalla.

Logtossa päivitystokeneilla on automaattinen rotaatiomekanismi oletuksena käytössä, mikä tarkoittaa, että valvontapalvelin antaa uuden päivitystokenin, kun se täyttää kriteerit:

  • Yksisivuverkkosovellukset: Tunnistettu ei-lähettäjäpakottu asiakkaina, nämä sovellukset vaativat päivitystokenin rotaatiota. Päivitystokenin aikarajaa (TTL) ei voi määrittää.
  • Alkuperäiset sovellukset ja perinteiset verkkosovellukset: Päivitystokenin rotaatio on luonteeltaan käytössä, uusiutuen automaattisesti saavuttaessaan 70 % aikarajastaan. Lue lisää

Vaikka sinulla on edelleen mahdollisuus poistaa päivitystokenin rotaatio käytöstä sovelluksen yksityiskohtasivulla hallintakonsolissa, on ehdottoman suositeltavaa säilyttää tämä turvatoimi.

Mikä on tunnistetoken ja miksi se on tärkeä?

Tunnistetoken on OIDC:n ainutlaatuinen ominaisuus, joka antaa tunnistetietoja todennetusta käyttäjästä.

Kun pääsytokeneita käytetään suojattuihin resursseihin pääsyyn ja päivitystokeneita uusien pääsytokeneiden hankkimiseen, tunnistetokeneita käytetään tyypillisesti käyttäjätiedon välimuistittamiseen asiakaspuolella, vähentäen tarvetta tehdä lisäpyyntöjä valvontapalvelimelle käyttäjätietojen saamiseksi. Useimmissa tapauksissa on jopa turvallista sanoa, että tunnistetokenin omaaminen vastaa käyttäjän todennusta.

Parhaat käytännöt tokeneiden käsittelyyn

  • Käytä HTTPS:ää: Käytä aina HTTPS:ää turvaamaan viestintä asiakkaan ja valvontapalvelimen välillä. Tämä estää luvattomia osapuolia sieppaamasta ja varastamasta tokeneita.
  • Aseta asianmukainen tokenin vanhentumisaika: Pääsytokeneilla tulisi olla lyhyt elinikä altistumisriskin minimoimiseksi. Päivitystokeneilla voi olla pidempi voimassaoloaika.
  • Ota käyttöön päivitystokenin rotaatio: Ota käyttöön päivitystokenin rotaatio vähentääksesi päivitystokenin vuotoriskiä.
  • Käytä hienojakoista pääsynhallintaa: Käytä hienojakoisia laajuuksia rajoittamaan pääsytokeneiden oikeuksia. Pyydä vain tarpeelliset oikeudet asiakassovellukselle. Vältä "all" tai "admin" -laajuuksien käyttöä useimpien valvontatarkistusten ohittamiseen, ellei se ole ehdottoman tarpeellista.

Yhteenveto: Pääsytokeneiden, päivitystokeneiden ja tunnistetokeneiden keskeiset erot OIDC:ssa

OIDC-protokollassa päivitystokenit, pääsytokenit ja tunnistetokenit toimivat yhdessä tarjotakseen turvallisen ja saumattoman käyttäjätodennuksen.

  • Pääsytokenit tarjoavat valtuutuksen suojattuihin resursseihin pääsylle.
  • Päivitystokenit poistavat käyttäjän toimenpiteen tarpeen uusille pääsytokeneille.
  • Tunnistetokenit tarjoavat välimuistitetun käyttäjätiedon asiakkaalle, parantaen suorituskykyä.

Näiden tokeneiden roolin ja merkityksen ymmärtäminen on olennaista kehittäjille, jotka toteuttavat OIDC-todennusta sovelluksissaan.