OAuth2:n ja JWT:n perusteet
Ymmärtäkää OAuth2:n keskeiset käsitteet valtuutuksessa ja JSON Web Tokenien (JWT) rooli turvallisessa tietojenvaihdossa.
OAuth2:n ja JWT:n perusteet on ilmainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti CoddyKitissä. Tämä on oppitunti 1/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 3 oppituntia.
Miksi API-tietoturva on tärkeää
Sovelluksia, erityisesti REST-rajapintoja sisältäviä sovelluksia, rakennettaessa tietoturva on ensiarvoisen tärkeää. Paljastatte tietoja ja toimintoja, jotka on suojattava.
Ilman asianmukaista tietoturvaa API-rajapintanne voi olla altis luvattomalle käytölle, tietomurroille tai haitallisille hyökkäyksille. Tässä oppitunnissa luodaan perusta palveluiden suojaamisen ymmärtämiselle.
AuthN ja AuthZ: keskeiset erot
Selvennetään ensin kaksi tärkeää termiä:
- Todennus (AuthN): Käyttäjän tai asiakkaan henkilöllisyyden varmistaminen. Ajatelkaa sitä henkilötodistuksen näyttämisenä henkilöllisyytenne todistamiseksi.
- Valtuutus (AuthZ): Sen määrittäminen, mitä todennettu käyttäjä tai asiakas saa tehdä. Tämä vastaa tilannetta, jossa ovimies tarkistaa lippunne nähdäkseen, pääsettekö tietylle alueelle.
OAuth2 keskittyy ensisijaisesti valtuutukseen.
OAuth2:n esittely: valtuutusstandardi
OAuth2 (Open Authorization 2.0) on toimialan standardin mukainen valtuutusprotokolla. Sen avulla kolmannen osapuolen sovellus (”asiakas”) voi saada rajoitetun käyttöoikeuden HTTP-palveluun (”resurssipalvelin”) käyttäjän (”resurssin omistajan”) puolesta.
OAuth2:n keskeinen etu on, että käyttäjän ei tarvitse jakaa tunnistetietojaan (käyttäjänimeä ja salasanaa) suoraan asiakassovelluksen kanssa.
OAuth2:n roolit
OAuth2 määrittelee neljä pääroolia, jotka osallistuvat valtuutusprosessiin:
- Resurssin omistaja: Suojattujen resurssien omistava käyttäjä.
- Asiakas: Sovellus, joka pyytää pääsyä resurssin omistajan suojattuihin resursseihin.
- Valtuutuspalvelin: Palvelin, joka todentaa resurssin omistajan ja myöntää asiakkaalle käyttöoikeustunnuksia.
- Resurssipalvelin: Palvelin, joka isännöi suojattuja resursseja ja pystyy käyttöoikeustunnuksia käyttämällä hyväksymään suojattuja resursseja koskevia pyyntöjä ja vastaamaan niihin.
Miten OAuth2 myöntää käyttöoikeuden
OAuth2 käyttää erilaisia ”myöntötyyppejä” (joita kutsutaan myös virroiksi) käyttöoikeustunnuksen myöntämiseen. Käyttöoikeustunnus on tunnistetieto, joka antaa asiakkaalle pääsyn tiettyihin resurssipalvelimen resursseihin.
Myöntötyypin valinta riippuu asiakkaan tyypistä (esimerkiksi verkkosovellus, mobiilisovellus tai palvelinpuolen sovellus) ja sen tietoturvavaatimuksista. Authorization Code Flow -virtaa käytetään laajasti perinteisissä verkkosovelluksissa.
JWT-tunnisteiden esittely: suojattua tietoa
JSON Web Token (JWT), lausutaan ”jot”, on tiivis ja URL-osoitteisiin sopiva tapa esittää osapuolten välillä siirrettäviä väittämiä. Väittämät ovat tietoja entiteetistä (tyypillisesti käyttäjästä) sekä muita metatietoja.
JWT-tunnisteita käytetään usein OAuth2:n käyttöoikeustunnisteiden muotona. Ne tarjoavat itsenäisen tavan siirtää käyttäjää ja tämän käyttöoikeuksia koskevia tietoja turvallisesti.
JWT-tunnisteen rakenne
JWT koostuu kolmesta pisteillä (.) erotetusta osasta:
- Header: Sisältää itse tunnistetta koskevia metatietoja, kuten tunnisteen tyypin (JWT) ja käytetyn allekirjoitusalgoritmin (esimerkiksi HMAC SHA256 tai RSA).
- Payload: Sisältää ”väittämät” eli entiteettiä (kuten käyttäjää) koskevat lausumat ja muita tietoja. Väittämät voivat olla rekisteröityjä (standardisoituja), julkisia tai yksityisiä.
- Signature: Käytetään varmistamaan, että JWT:n lähettäjä on se, joka väittää olevansa, ja ettei viestiä ole muutettu. Se luodaan headerin, payloadin ja salaisen avaimen avulla.
JWT:n rakenne tarkemmin
Tavallinen JWT voi näyttää tältä. Jokainen osa on Base64Url-koodattu:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c- Ensimmäinen osa on Header.
- Toinen osa on Payload.
- Kolmas osa on Signature.
Nämä osat koodataan erikseen ja yhdistetään pisteillä.
JWT:n osien dekoodaus (periaate)
JWT:n header ja payload ovat yksinkertaisesti Base64Url-koodattua JSONia. Tämä tarkoittaa, että kuka tahansa voi helposti dekoodata ne ja lukea niiden sisällön. Tietoturva perustuu signatureen, joka varmistaa tunnisteen eheyden ja aitouden.
Kokeilkaa dekoodata esimerkki-Base64Url-merkkijono Javalla:
import java.util.Base64;
public class Main {
public static void main(String[] args) {
String encodedHeader = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9";
String encodedPayload = "eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ";
System.out.println("Decoded Header:");
decodeAndPrint(encodedHeader);
System.out.println("\nDecoded Payload:");
decodeAndPrint(encodedPayload);
}
private static void decodeAndPrint(String encodedString) {
try {
byte[] decodedBytes = Base64.getUrlDecoder().decode(encodedString);
String decodedString = new String(decodedBytes, "UTF-8");
System.out.println(decodedString);
} catch (Exception e) {
System.out.println("Error decoding: " + e.getMessage());
}
}
}Miksi JWT-tunnisteita käytetään
JWT-tunnisteilla on useita etuja erityisesti hajautetuissa järjestelmissä, kuten mikropalveluissa:
- Tilattomuus: Palvelimen ei tarvitse tallentaa istunnon tietoja. Jokainen JWT sisältää kaikki tarvittavat käyttäjätiedot.
- Skaalautuvuus: Koska tunnisteet ovat itsenäisiä, mikä tahansa palvelu voi vahvistaa ne ilman keskitettyä istuntovarastoa, mikä yksinkertaistaa skaalausta.
- Tiiviys ja URL-yhteensopivuus: Ne ovat pieniä, ja niitä voidaan siirtää helposti URL-parametreissa, POST-pyynnöissä tai HTTP-otsakkeissa.
- Itsenäisyys: Ne sisältävät kaikki käyttäjää koskevat tiedot, mikä vähentää tietokantahakujen tarvetta jokaisen pyynnön yhteydessä.
Testatkaa ymmärrystänne
Mikä seuraavista väitteistä kuvaa parhaiten OAuth2:n ensisijaista tarkoitusta?
Oppitunnin yhteenveto
Tässä oppitunnissa saitte perustiedot API-tietoturvan periaatteista. Erotimme toisistaan todennuksen (kuka olette) ja valtuutuksen (mitä saatte tehdä).
Opitte, että OAuth2 on turvallisen valtuutuksen standardi, joka mahdollistaa hallitun pääsyn resursseihin. Tutustuimme myös JSON Web Token (JWT) -tunnisteisiin sekä niiden rakenteeseen ja etuihin tiiviinä, itsenäisenä tapana siirtää tietoja. Niitä käytetään usein käyttöoikeustunnisteina OAuth2:ssa.
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 24
- Oppitunnit
- 93
Usein kysytyt kysymykset
Onko oppitunti ”OAuth2:n ja JWT:n perusteet” ilmainen?
Kyllä – oppitunnin ”OAuth2:n ja JWT:n perusteet” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssin, päivitä CoddyKit PROhon. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”OAuth2:n ja JWT:n perusteet”?
Ymmärtäkää OAuth2:n keskeiset käsitteet valtuutuksessa ja JSON Web Tokenien (JWT) rooli turvallisessa tietojenvaihdossa. Harjoittelet Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/3.
Kuinka kauan ”OAuth2:n ja JWT:n perusteet”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunnilla?
Kyllä. Jokainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- OAuth2:n ja JWT:n perusteet
- REST-päätepisteiden suojaaminen
- Roolipohjainen käyttöoikeuksien hallinta