Ymmärrä käyttö-, päivitys- ja ID-tunnukset OpenID Connect (OIDC) protokollassa
OpenID Connect (OIDC) protokolla on noussut laajalti käyttöön otetuksi identiteetinhallinnan standardiksi. Mutta ymmärrätkö todella näiden tunnusten roolit ja ominaisuudet?
OIDC, OAuth 2.0 ja tunnukset
OpenID Connect Protocol, joka tunnetaan myös nimellä OIDC, on muodostunut laajalti käyttöön otetuksi standardiksi tarjoten perustavan kehyksen identiteetin hallinnalle. Se on todennustaso, joka on rakennettu tunnetun OAuth 2.0 protokollan päälle. Kun OAuth 2.0 on pelkästään resurssien valtuutusta varten, OIDC on protokolla, joka vakioi ja vahvistaa asiakasvarmennusta uusien ID-tunnuksen avulla.
Hetkinen... Olet ehkä kuullut käyttö- ja päivitystunnuksista OAuth-aikana, ja nyt OIDC tuo mukanaan uuden käsitteen? Ymmärrätkö todella näiden tunnusten erot?
Mitä ovat käyttö-, päivitys- ja ID-tunnukset OIDC:ssä?
Aloitetaan käytännön skenaariosta.
Kuvittele, että kehität tyypillistä asiakas-palvelinsovellusta, ja ne kommunikoivat toistensa kanssa RESTful API:en kautta. Haluat pitää suurimman osan API:sta yksityisinä, sallien vain valtuutettujen asiakkaiden pääsyn. Tarvitset mekanismin asiakkaan todennukseen ja API-pyyntöjen valtuuttamiseen palvelimelle.
Ihannetapauksessa RESTful API:esi pitäisi olla tilattomia, mikä tarkoittaa, että palvelimen ei pitäisi tallentaa mitään asiakassessioita. Aina kun kelvollinen pyyntö saapuu, palvelimen pitäisi vain vastata pyydetyillä tiedoilla. Tässä tunnukset tulevat peliin. Joten, mitä tyyppiä tunnusta sinun pitäisi käyttää tällaisessa tapauksessa?
Käyttötunnuksia käytetään API:esi suojaamiseen
OAuth 2.0:ssa ja OIDC:ssä jokaista suojattua API:a käsitellään resurssina. Käyttötunnus on juuri se tunnus, jonka asiakas lähettää palvelimelle pyytäessään API-resurssia, tyypillisesti pyynnön otsikon kautta ja JWT muodossa.
Palvelinpuolella, aina kun pyyntö saapuu, palvelimen tarvitsee vain vahvistaa tuleeko pyyntö mukanaan kelvollinen käyttötunnus. Vahvistusprosessi yleensä käsittää JWT-tunnuksen purkamisen, allekirjoituksen ja voimassaoloajan tarkistamisen sekä laajuustiedon varmistamisen, että asiakkaalla on tarvittavat luvat.
Kuitenkin saatat pohtia: Jos asiakassovellukseni voi saada kelvollisen käyttötunnuksen onnistuneen kirjautumisen jälkeen, ja käyttää käyttötunnusta pyytääkseen palvelin API:a, eikö tämä riitä? Miksi tarvitsen muita tunnuksia?
Todellakin, kelvollinen kysymys, ja selvitetään asia askel askeleelta.
Miksi tarvitsemme päivitystunnuksia?
Vaikka teknisesti käyttötunnukset täyttävät vähimmäisvaatimukset järjestelmän toimimiselle, kuitenkin, turvallisuussyistä käyttötunnusten voimassaoloaika on yleensä hyvin lyhyt (tyypillisesti tunti). Joten kuvittele, jos meillä olisi vain käyttötunnuksia, loppukäyttäjien pitäisi todennettaa itsensä uudelleen aina kun käyttötunnus vanhenee. Nykyaikaisissa yhden sivun verkkosovelluksissa (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 tunnusten turvallisuuden ja käyttäjän mukavuuden välillä. Siksi päivitystunnukset on otettu käyttöön.
Miksi päivitystunnuksilla voi olla pidempi elinikä?
Käyttötunnuksia käytetään pääsyyn API-resursseihin, joten niiden lyhytikäisyys auttaa lievittämään vuotamisen tai vaarantumisen riskiä. Toisaalta, koska päivitystunnuksia käytetään vain uusien käyttötunnusten vaihtamiseen, niitä ei käytetä yhtä usein kuin käyttötunnuksia ja näin ollen altistumisriski vähenee. Siksi pidemmän voimassaoloajan katsotaan olevan hyväksyttävä päivitystunnuksille.
Päivitystunnuksen turvallisuuden varmistaminen
Koska päivitystunnus on myös tallennettu asiakaspuolelle, niiden vaarantumattomuuden varmistaminen on haastavaa, erityisesti julkisille asiakkaille, kuten yhden sivun verkkosovelluksille (SPA) ja mobiilisovelluksille.
Logtossa päivitystunnuksilla on automaattinen kiertomekanismi, joka on oletuksena käytössä, mikä tarkoittaa, että valtuutuspalvelin myöntää uuden päivitystunnuksen kun se täyttää kriteerit:
- Yhden sivun sovellukset: Tunnustettu ei-lähettäjärajoitettuna asiakkaina, nämä sovellukset edellyttävät päivitystunnuksen kiertoa. Päivitystunnuksen elinaikaa ei voida määrittää.
- Alkuperäiset sovellukset ja perinteiset verkkosovellukset: Päivitystunnuksen kierto on oletuksena käytössä, ja se uusiutuu automaattisesti, kun se saavuttaa 70 % elinaikansa. Lisätietoja Logton päivitystunnuksen kierrosta
Vaikka sinulla on mahdollisuus poistaa päivitystunnuksen kierto käytöstä hallintakonsolin sovellustietosivulla, on vahvasti suositeltavaa säilyttää tämä suojaustoimi käytössä.
Mikä on ID-tunnus ja miksi se on tärkeä?
ID-tunnus on OIDC:n ainutlaatuinen ominaisuus, joka tarjoaa todennetun käyttäjän identiteettitietoja.
Kun käyttötunnuksia käytetään pääsyyn suojattuihin resursseihin ja päivitystunnuksia käytetään uusien käyttötunnusten hankkimiseen, ID-tunnuksia käytetään tyypillisesti tallentamaan käyttäjätietoja asiakaspuolella, vähentäen tarvetta lisäpyynnöille valtuutuspalvelimelle käyttäjätietojen saamiseksi. Useimmissa tapauksissa, jopa voidaan sanoa, että ID-tunnuksen saaminen vastaa käyttäjän olevan todennettu.
Parhaat käytännöt tunnusten käsittelyyn
- Käytä HTTPS:ää: Käytä aina HTTPS:ää suojataksesi viestintää asiakkaan ja valtuutuspalvelimen välillä. Tämä estää luvattomia osapuolia sieppaamasta ja varastamasta tunnuksia.
- Aseta asianmukainen tunnuksen vanhentumisaika: Käyttötunnuksilla tulisi olla lyhyt elinikä altistumisriskin minimoimiseksi. Päivitystunnuksilla voi olla pidempi voimassaoloaika.
- Ota käyttöön päivitystunnuksen kierto: Ota käyttöön päivitystunnuksen kierto vähentääksesi päivitystunnuksen vuotamisen riskiä.
- Käytä hienojakoista pääsynhallintaa: Käytä hienojakoisia alueita rajoittaa käyttää käyttötunnusten oikeuksia. Pyyntö tulee sisällään tarvitsemat oikeudet asiakassovellukselle. Vältä "kaikki" tai "admin"-alueiden käyttöä ohittaaksesi useimmat oikeustarkastukset, ellei se ole ehdottoman välttämätöntä.
Yhteenveto: Käyttö-, päivitys- ja ID-tunnusten tärkeimmät erot OIDC:ssä
OIDC-protokollassa päivitystunnukset, käyttötunnukset ja ID-tunnukset toimivat yhdessä tarjoten turvallisen ja saumattoman käyttäjätodennuksen.
- Käyttötunnukset tarjoavat valtuutuksen pääsyyn suojattuihin resursseihin.
- Päivitystunnukset poistavat käyttäjän väliintulon uusien käyttötunnusten vuoksi.
- ID-tunnukset tarjoavat välimuistin käyttäjätiedot asiakkaalle, parantaen suorituskykyä.
Näiden tunnusten roolin ja merkityksen ymmärtäminen on ratkaisevan tärkeää kehittäjille, jotka toteuttavat OIDC-todennuksen sovelluksissaan.