Järjestelmäsuunnittelun perusteet backend-kehittäjille · Oppitunti

Todennus ja valtuutus

Toteuta vankat todennus- ja valtuutusmekanismit järjestelmän resurssien käyttöoikeuksien hallintaan.

Oppitunti 1/411 vaihetta

Todennus ja valtuutus on ilmainen Järjestelmäsuunnittelun perusteet backend-kehittäjille-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. 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 Järjestelmäsuunnittelun perusteet backend-kehittäjille-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Järjestelmäsuunnittelun perusteet backend-kehittäjille-kurssilla on yhteensä 4 oppituntia.

AuthN vs. AuthZ: perusteet

Järjestelmäsuunnittelussa todennus ja valtuutus ovat tietoturvan kannalta olennaisia. Niiden avulla hallitaan, kuka voi käyttää järjestelmääsi ja mitä hän voi siellä tehdä.

  • Todennus (AuthN) varmistaa, kuka olet.
  • Valtuutus (AuthZ) määrittää, mitä saat tehdä.

Ajattele asiaa klubin kautta: todennus tarkoittaa henkilöllisyystodistuksen tarkistamista ovella, kun taas valtuutuksessa tarkistetaan, onko sinulla VIP-passi erityisalueille pääsemistä varten.

Mitä todennus on?

Todennus on prosessi, jossa osoitat henkilöllisyytesi järjestelmälle. Näin varmistetaan, että olet se henkilö, joksi ilmoittaudut.

Yleisiä todennusmenetelmiä ovat:

  • Salasanapohjainen: Käyttäjänimi ja salasana.
  • Monivaiheinen: Salasanojen yhdistäminen sovelluksesta tai tekstiviestillä saataviin koodeihin.
  • Biometrinen: Sormenjäljet tai kasvojentunnistus.
  • Tunnistepohjainen: Salaustunnisteen käyttäminen ensimmäisen kirjautumisen jälkeen.

Tunnistepohjainen todennus

Tunnistepohjainen todennus on yleinen verkko- ja mobiilisovelluksissa. Kun käyttäjä kirjautuu sisään eli todentaa itsensä tunnistetiedoilla, palvelin myöntää tunnisteen.

Tunniste lähetetään jokaisen myöhemmän pyynnön mukana käyttäjän henkilöllisyyden osoittamiseksi ilman, että tunnistetietoja tarvitsee lähettää toistuvasti. Yksi yleinen tunnistetyyppi on JSON Web Token (JWT).

JWT-tunnisteiden ymmärtäminen

JWT (JSON Web Token) on kompakti ja URL-osoitteissa turvallinen tapa esittää osapuolten välillä siirrettäviä väittämiä. Sitä käytetään usein käyttäjien todentamiseen.

JWT koostuu kolmesta pisteillä erotetusta osasta:

  1. Otsake: Tunnisteen tyyppi ja allekirjoitusalgoritmi.
  2. Hyötykuorma: Väittämät (käyttäjätunnus, roolit, vanheneminen).
  3. Allekirjoitus: Sen avulla varmistetaan, ettei tunnistetta ole peukaloitu.

Se näyttää suunnilleen tältä:

eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiIxMjMiLCJyb2xlIjoiYWRtaW4ifQ.SFLS...

Yksinkertainen tunnisteen tarkistusesimerkki

Kun asiakas lähettää pyynnön tunnisteen kanssa, palvelimen on vahvistettava tunniste. Tähän kuuluu usein allekirjoituksen ja vanhenemisajan tarkistaminen.

Tässä on hyvin yksinkertaistettu käsitteellinen esimerkki siitä, miten palvelin voisi tarkistaa, tunnetaanko tunniste. Esimerkki havainnollistaa perustason varmennusvaihetta:

public class TokenChecker {
  public static void main(String[] args) {
    String userToken = "validUserToken123";
    String adminToken = "adminSecretToken456";
    String invalidToken = "badToken";

    System.out.println("User Token Check: " + isValid(userToken));
    System.out.println("Admin Token Check: " + isValid(adminToken));
    System.out.println("Invalid Token Check: " + isValid(invalidToken));
  }

  // A very simplified conceptual token validation
  public static boolean isValid(String token) {
    if (token.equals("validUserToken123") || token.equals("adminSecretToken456")) {
      return true; // Token is conceptually 'valid'
    }
    return false; // Token is not recognized
  }
}

Mitä valtuutus on?

Valtuutus on prosessi, jossa määritetään, mitä todennettu käyttäjä tai järjestelmä saa tehdä.

Esimerkiksi tavallinen käyttäjä voi ehkä tarkastella omaa profiiliaan, mutta vain ylläpitäjä voi poistaa käyttäjätilejä. Valtuutus vastaa kysymykseen: "Saatko tehdä tämän?"

Roolipohjainen käyttöoikeuksien hallinta (RBAC)

Yksi yleinen valtuutusmalli on roolipohjainen käyttöoikeuksien hallinta (RBAC). RBAC-mallissa käyttöoikeudet liitetään rooleihin ja käyttäjät määritetään rooleihin.

  • Käyttäjät: Henkilöt tai järjestelmät.
  • Roolit: Käyttöoikeuksien kokoelmia (esimerkiksi 'Admin', 'Editor', 'Viewer').
  • Käyttöoikeudet: Resursseihin kohdistuvia toimintoja (esimerkiksi 'read_post', 'edit_user').

Tämä yksinkertaistaa käyttöoikeuksien hallintaa, koska käyttäjät määritetään rooleihin yksittäisten käyttöoikeuksien sijaan.

Käytäntöihin perustuva valtuutus

Monimutkaisemmissa tilanteissa käytäntöihin perustuva valtuutus (kuten attribuuttipohjainen käyttöoikeuksien hallinta eli ABAC) mahdollistaa erittäin yksityiskohtaisen hallinnan.

Käyttöoikeuksia koskevat päätökset perustuvat pelkkien roolien sijaan käyttäjän, resurssin, ympäristön ja itse toiminnon attribuutteihin. Tämä tarjoaa enemmän joustavuutta, mutta hallinta voi olla monimutkaisempaa.

AuthN ja AuthZ yhdessä

Todennus ja valtuutus toimivat tyypillisessä pyyntövirrassa yhdessä:

  1. Käyttäjä yrittää käyttää resurssia.
  2. Järjestelmä todentaa käyttäjän (esimerkiksi vahvistamalla hänen tunnisteensa). Jos tunniste ei ole kelvollinen, käyttö evätään.
  3. Jos käyttäjä on todennettu, järjestelmä valtuuttaa hänet seuraavaksi: se tarkistaa, antavatko käyttäjän rooli tai attribuutit hänelle oikeuden kyseiseen toimintoon kyseisessä resurssissa.
  4. Jos käyttäjällä on valtuutus, käyttö sallitaan. Muussa tapauksessa se evätään.

Tunnista käsitteet

Mitkä seuraavista väitteistä kuvaavat oikein todennuksen ja valtuutuksen käsitteitä?

Kertaus: käytön suojaaminen

Olemme tarkastelleet ratkaisevaa eroa todennuksen (kuka olet) ja valtuutuksen (mitä voit tehdä) välillä.

Opit tunnistepohjaisesta todennuksesta JWT-tunnisteiden avulla sekä valtuutusmalleista, kuten RBAC:stä. Näiden käsitteiden ymmärtäminen on olennaista turvallisten ja vankkojen järjestelmien suunnittelussa.

Harjoittele näiden erojen tunnistamista, kun suunnittelet järjestelmiä, joiden käyttöoikeuksia on hallittava tehokkaasti!

Aloita maksutta

Opi Järjestelmäsuunnittelun perusteet backend-kehittäjille 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
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Todennus ja valtuutus” ilmainen?

Kyllä – oppitunnin ”Todennus ja valtuutus” 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 Järjestelmäsuunnittelun perusteet backend-kehittäjille-kurssin, päivitä CoddyKit PROhon. Järjestelmäsuunnittelun perusteet backend-kehittäjille-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Todennus ja valtuutus”?

Toteuta vankat todennus- ja valtuutusmekanismit järjestelmän resurssien käyttöoikeuksien hallintaan. Harjoittelet Järjestelmäsuunnittelun perusteet backend-kehittäjille-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Järjestelmäsuunnittelun perusteet backend-kehittäjille-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Järjestelmäsuunnittelun perusteet backend-kehittäjille-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Todennus ja valtuutus”-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ä Järjestelmäsuunnittelun perusteet backend-kehittäjille-oppitunnilla?

Kyllä. Jokainen Järjestelmäsuunnittelun perusteet backend-kehittäjille-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

  1. Todennus ja valtuutus
  2. Tietojen salaus ja tietosuoja
  3. DDoS-suojaus ja palomuurit
  4. Pyyntömäärien rajoittaminen ja throttling
← Takaisin: Järjestelmäsuunnittelun perusteet backend-kehittäjille