Kuinka toteuttaa kaksivaiheinen todennus (2FA) Node.js:ssä todentajasovellusten kanssa
Opi, kuinka toteuttaa kaksivaiheinen todennus (2FA) Node.js:n avulla käyttäen todentajasovelluksia, TOTP:ta ja otplib-kirjastoa. Tämä askel askeleelta opas kattaa kaiken QR-koodien luomisesta todennuskoodien vahvistamiseen.
Mitä on kaksivaiheinen (2FA) todennus
Perinteisissä sovelluksissa käytämme tyypillisesti sähköpostia, käyttäjänimeä tai puhelinta henkilöllisyystunnisteina. Yhdistämällä nämä henkilöllisyystunnisteet vastaaviin salasanoihin tai vahvistuskoodeihin voimme täydentää todennusprosessin.
Kuitenkin, tilanteissa joissa turvallisuusvaatimukset ovat korkeampia, pelkkään henkilöllisyystunnisteisiin perustuva todennus ei ole riittävä. Tämä johtuu siitä, että nämä henkilöllisyystunnisteet ja niiden vastaavat vahvistustiedot voivat olla alttiita tietovuodoille.
Tässä astuu kuvaan kaksivaiheinen todennus (2FA) - lisäturvakerros, joka vaatii käyttäjältä kahden eri todennustekijän antamista henkilöllisyyden varmistamiseksi. Tämä varmistaa, että tilille pääsyä yrittävä henkilö on todella oikeutettu käyttäjä.
Yleisiä kaksivaiheisen todennuksen menetelmiä ovat:
- TOTP-todennus todentajasovellusten avulla
- Biometrinen todennus
- Laitteeseen perustuva todennus
- SMS-vahvistuskoodit
Tässä opetusohjelmassa keskitymme toteuttamaan TOTP-pohjaista 2FA:ta käyttäen todentajasovelluksia otplib -kirjaston avulla Node.js-sovelluksessasi.
Mitä on TOTP-todennus?
TOTP tarkoittaa aikaperustaisia kertakäyttöisiä salasanoja. Kuten Wikipedia sanoo, se on tietokonealgoritmi, joka tuottaa kertakäyttöisen salasanan (OTP), joka käyttää nykyistä aikaa ainutlaatuisuuden lähteenä.
Käyttäjän puhelimessa ja sovelluspalvelimessa jaetun TOTP-salaisen avaimen avulla käyttäjän puhelin ja sovelluspalvelin voivat luoda saman TOTP-koodin samanaikaisesti:
Koska TOTP:n luominen perustuu aikaan, se voidaan laskea offline-tilassa. Lisäksi TOTP tuottaa numeerisen merkkijonon, mikä tekee siitä yksinkertaisen ja käyttäjäystävällisen. Tästä syystä TOTP:n varmentaminen on yleisesti käytetty menetelmä kaksivaiheisena todennuksena.
Kun käyttäjät käyttävät TOTP:a kaksivaiheisena todennustapana, he usein kohtaavat haasteen TOTP-salaisuuden tallentamisesta ja TOTP-koodien luomisesta. Tässä auttavat todentajasovellukset. Voimme käyttää todentajasovelluksia tallentamaan TOTP-salaisuuden, ja todentajasovellukset luovat automaattisesti TOTP-koodit puolestasi. Kun varmennusta tarvitaan, sinun tarvitsee vain avata todentajasovellus, ja saat TOTP-koodin vastaavan TOTP-salaisuuden kanssa. Suosittuja todentajasovelluksia ovat Google Authenticator ja Microsoft Authenticator.
TOTP:n toteuttaminen kaksivaiheisena todennuksena sisältää kaksi vaihetta:
- TOTP-salaisuuden sitominen käyttäjään.
- Käyttäjän TOTP-koodin varmentaminen siihen liittyvän TOTP-salaisuuden avulla.
TOTP-sitomisen prosessi käyttäjälle on seuraava:
Kun käyttäjä on sitonut TOTP:n, he voivat käyttää sitä varmennukseen. Prosessi on seuraava:
Kuten kaaviosta käy ilmi, käyttäjän puolella käytämme todentajasovelluksia hallitsemaan TOTP-salaisuutta ja luomaan TOTP-koodeja. Palvelimen puolella meidän on tuettava TOTP-salaisuuden luomista ja käyttäjän lähettämän TOTP-koodin validoimista. Tässä artikkelissa käytämme otpllib esimerkkinä integroimaan TOTP:on liittyviä toimintoja palvelinpuolella.
Toteuta TOTP-pohjainen 2FA käyttämällä otplib-kirjastoa Node.js-sovelluksellesi
Oletamme, että sovelluksesi perustuu Express.js:ään, ja käyttäjät kirjautuvat /sign-in
-päätepisteen kautta. Suunnitelma tukea TOTP:ta käyttäjän kirjautumisprosessissa on seuraava:
- Kun käyttäjä ei ole sitonut TOTP:ta, lähetä TOTP-salaisuus käyttäjälle QR-koodin muodossa ja kehotus sitoa TOTP.
- Kun käyttäjä on jo sitonut TOTP:n, kehota häntä vahvistamaan TOTP.
Asenna ensin projektin riippuvuudet: otplib
ja qrcode
:
Seuraavaksi parannetaan /sign-in
päätepistettämme.
Mukautuksemme mukaan, kun käyttäjä ei ole sitonut TOTP:ta, lähetämme QR-koodin käyttöliittymään:
Käyttäjä skannaa QR-koodin todentajasovelluksella, ja todentajasovellus luo TOTP-koodin ja tallentaa siihen liittyvän TOTP-salaisuuden.
Käyttäjä lähettää saadun TOTP-koodin takaisin sovelluspalvelimelle. Jos koodi vahvistetaan onnistuneesti, voimme sitoa tämän TOTP:n käyttäjään.
Joten, toteutetaan /verify-totp
API vastaanottamaan käyttäjän lähettämä TOTP-koodi:
Tällä tavalla olemme onnistuneesti sitoneet TOTP:n käyttäjälle. Jatkossa, kun käyttäjä kirjautuu sisään, hänen tarvitsee vain avata todentajasovellus, lähettää aiemmin sidottua TOTP-salaisuutta vastaava vahvistuskoodi, ja todennusprosessi on valmis.
/verify-totp
API:ssa käytämme aiemmin käyttäjälle sidottua TOTP-salaisuutta varmistaaksemme TOTP-koodin.
Yhteenveto
Tämän artikkelin perusteella sinun pitäisi nyt pystyä integroimaan todentajasovelluksen todennus sovelluksiisi.
Tämä on kuitenkin vain yksinkertainen esimerkki. Kun sovelluksesi on suuri tai oletetaan sen muuttuvan monimutkaiseksi, uuden todennusmenetelmän integrointi voi aiheuttaa merkittäviä kustannuksia.
Uutinen on erinomainen: Logto, joka toimii kattavana henkilöllisyyden todennusratkaisujen tarjoajana, tarjoaa monivaiheisen todennuksen (MFA) tukea, mukaan lukien todentajasovelluksen todennus. Hyödyntämällä Logto:tä voit saumattomasti integroida turvallisen ja tehokkaan käyttäjän sisäänkirjautumisprosessin MFA:n kanssa sovellukseesi vain muutamassa minuutissa!