OAuth 2.0 -valtuutus

OAuth 2.0 on valtuutuskehys, josta on tullut de facto -standardi suojattujen resurssien käyttöoikeuksien valtuuttamiseen. Se mahdollistaa kolmannen osapuolen sovellusten pääsyn käyttäjätietoihin paljastamatta käyttäjän tunnistetietoja. Salasanojen jakamisen sijaan palvelut tarjoavat tokeneita.

Tausta

Kuvittele, että haluat käyttää kolmannen osapuolen sovellusta, joka tarvitsee pääsyn Google-tilisi tietoihin. Et haluaisi antaa tälle sovellukselle Google-käyttäjätunnustasi ja salasanaasi, eikö? Tässä OAuth tulee avuksi. Se mahdollistaa pääsyn myöntämisen sovellukselle Google-tietoihisi jakamatta Google-tunnistetietojasi.

OAuth 2.0 LoadFocuksen avulla

OAuth 2.0:n perusteet

OAuth 2.0 keskittyy asiakaskehittäjän yksinkertaisuuteen tarjoten samalla erityisiä valtuutusvuita verkkosovelluksille, työpöytäsovelluksille, matkapuhelimille ja olohuonelaitteille. Yksinkertaistettu erittely:

  • Resource Owner: Käyttäjä, joka valtuuttaa sovelluksen käyttämään tiliään. Sovelluksen pääsy käyttäjän tiliin on rajoitettu myönnetyn valtuutuksen "laajuuteen" (esim. tietyn tietotyypin lukeminen tai kirjoittaminen).

  • Client: Sovellus, joka haluaa käyttää käyttäjän tiliä. Ennen kuin se voi tehdä niin, käyttäjän on valtuutettava se ja API:n on vahvistettava valtuutus.

  • Resource Server: Palvelin, joka isännöi käyttäjätilejä. Se voi hyväksyä ja vastata suojattuihin resurssipyyntöihin pääsytokenien avulla.

  • Authorization Server: Tämä palvelin tarkistaa käyttäjän henkilöllisyyden ja myöntää sitten pääsytokeneita sovellukselle.

OAuth 2.0 -vuokulut

On useita "vuokulkuja" tai "grant typejä" eri sovellustyyppejä ja käyttötapauksia varten:

  • Authorization Code (verkkopalvelimella toimiville sovelluksille): Tämä on yleisin vuokulku, erityisesti verkkosovelluksille. Se sisältää käyttäjän uudelleenohjauksen palveluun, jossa he kirjautuvat. Kirjautumisen jälkeen heidät ohjataan takaisin sovellukseen authorization code -koodilla, jonka sovellus voi vaihtaa pääsytokeniin.

  • Implicit (selaimessa toimiville sovelluksille): Tämä vuokulku on käyttäjäagenttipohjaisille sovelluksille (esim. yksisivuiset sovellukset), joissa pääsytoken palautetaan välittömästi ilman ylimääräistä authorization code -vaihetta.

  • Resource Owner Password Credentials: Tämä vuokulku mahdollistaa sovelluksen toimittaa käyttäjän käyttäjätunnuksen ja salasanan suoraan. Sitä suositellaan vain luotetuille sovelluksille, koska se sisältää käyttäjän tunnistetietojen jakamisen.

  • Client Credentials: Käytetään kun asiakas itse on resurssin omistaja; esimerkiksi kun asiakas on taustapalvelu.

Tokenit

Käyttäjän tunnistetietojen sijaan OAuth 2.0 käyttää tokeneita. Niitä on kahta tyyppiä:

  • Access Token: Mahdollistaa sovelluksen tehdä API-pyyntöjä käyttäjän puolesta. Se on lyhytikäinen.

  • Refresh Token: Voidaan käyttää uuden pääsytokenin hankkimiseen jos alkuperäinen on vanhentunut. Se on pitkäikäisempi kuin pääsytoken.

Turvallisuus

OAuth 2.0 nojaa SSL/TLS-suojaukseen. Se varmistaa tietojen luottamuksellisuuden asiakkaan, valtuutuspalvelimen ja resurssipalvelimen välillä. Vaikka hyökkääjät onnistuisivat kaappaamaan pääsytokenin, he eivät voi käyttää sitä sen vanhenemisen jälkeen (tyypillisesti lyhyt kesto) tai sen laajuuden ulkopuolella, jolle se myönnettiin.

Yhteenveto

OAuth 2.0 on tehokas ja joustava kehys, joka mahdollistaa kolmannen osapuolen sovellusten pääsyn käyttäjätietoihin paljastamatta käyttäjän tunnistetietoja. Siitä on tullut olennainen työkalu nykyaikaisessa verkossa, tarjoten käyttäjille ja kehittäjille turvallisen ja tehokkaan keinon oikeuksien myöntämiseen ja hallintaan eri palveluiden ja sovellusten välillä.