Oppaat

Kuinka lisätä kaksivaiheinen tunnistautuminen sovellukseesi

Kun haluat lisätä kaksivaiheisen tunnistautumisen (2FA) sovellukseesi, anna käyttäjien yhdistää todentajasovellus skannaamalla QR-koodi ja kysy salasanan jälkeen kuusinumeroinen koodi, jonka sovellus näyttää. Luo täysi istunto palvelimella vasta, kun koodi on tarkistettu. Anna jokaiselle käyttäjälle kertakäyttöiset palautuskoodit käyttöönoton yhteydessä, rajoita kuinka monta koodia kuka tahansa voi arvata ja vaadi salasana sekä nykyinen koodi ennen kuin 2FA voidaan kytkeä pois. Jos käytät hostattua todennuspalvelua, ota käyttöön sen sisäänrakennettu monivaiheinen tunnistautuminen sen sijaan, että rakentaisit oman.

Tämä opas käy läpi valinnat, tarkan kulun, kehotteet tekoälyrakentajalle ja virheet, joiden takia 2FA näyttää olevan käytössä mutta ei tee mitään. Jos konsepti on uusi, aloita kohdasta mitä kaksivaiheinen tunnistautuminen on.

Ennen aloittamista: tarvitset toimivan kirjautumisen

2FA istuu olemassa olevan sisäänkirjautumisen päällä. Tarvitset jompikumpi näistä ensin:

  • Oman kirjautumisen, jossa käyttäjät ja tiivistetyt salasanat ovat sovelluksesi tietokannassa.
  • Hostatun todennuspalvelun, joka hallinnoi käyttäjiä puolestasi.

Jos sinulla ei ole kumpaakaan vielä, aloita kuinka lisätä kirjautuminen sovellukseesi. Loppu opas olettaa, että salasanavaihe toimii jo.

Valitse toinen tekijä

MenetelmäKäyttäjän vaivaTurvallisuusYlläpitokustannusHyvä oletus?
Todentajasovellus (TOTP)Skannaa QR-koodi kerran, kirjautumisessa kirjoita koodiHyvä; kalasteltavissa, jos väärä sivu pyytää koodiaIlmainenKyllä, useimmille sovelluksille
Avainkoodi tai turva-avainNapauta tai käytä sormenjälkeäVahvin; kestää kalasteluaIlmainenKyllä, jos käyttäjäsi ovat siihen valmiita
SähköpostikoodiTarkista postilaatikko kirjautuessaVain niin vahva kuin sähköpostitiliSähköpostin lähetyskustannuksetVain varavaihtoehtona
SMS-koodiOdota tekstiviestiäHeikoin; SIM-kortin vaihto ja kalasteluViestikohtaiset maksutVain, jos käyttäjät eivät voi käyttää sovellusta

TOTP tulee sanoista time-based one-time password, eli ajastettu kertakäyttösalasana (RFC 6238), jota todentajasovellukset käyttävät. Palvelimesi ja käyttäjän puhelin jakavat salaisuuden; kumpikin laskee saman lyhyen koodin salaisuudesta ja nykyisestä ajasta, yleensä 30 sekunnin välein vaihtuen. Verkkoyhteyttä tai SMS-palveluntarjoajaa ei tarvita.

Avainkoodit korvaavat tai täydentävät salasanat kryptografisella avaimella, joka on tallennettu käyttäjän laitteeseen. Ne ovat vahvempia mutta vaativat enemmän työtä, jos rakennat ne itse, joten monet sovellukset aloittavat TOTP:llä ja lisäävät avainkoodit myöhemmin tai saavat ne todennuspalvelulta.

Rakennatko itse vai otatko käyttöön?

LähestymistapaHyvääHuonoa
Hostatun todennuspalvelun monivaiheinen tunnistautuminenVähemmän koodia; palveluntarjoaja ylläpitää turvallisuustyötäKuukausikustannus mittakaavassa; riippuvuus palveluntarjoajan vaihtoehdoista
Oma TOTP kirjastollaTäysi hallinta; ei käyttäjäkohtaista maksuaOmistat reunatapaukset: lukitukset, palautus, salaisuuksien tallennus

Tarkista todennuspalvelusi nykyinen dokumentaatio siitä, mitä tekijöitä se tukee ja millä paketeilla. Joka tapauksessa älä kirjoita koodin generointia matematiikkaa itse; käytä laajasti käytettyä kirjastoa.

Päätä käytäntö ensin

Vastaa näihin ennen kehotteita, koska ne muuttavat suunnittelua:

  1. Kenen täytyy käyttää sitä? Valinnainen kaikille, pakollinen ylläpitäjille ja henkilökunnalle tai pakollinen kaikille. Ylläpitovaltuuksilla olevien pakollinen käyttö on yleistä. Katso roolipohjainen käyttöoikeuksien hallinta.
  2. Kuinka usein käyttäjät syöttävät koodin uudelleen? Joka kirjautumisessa vai kerran laitetta kohden 30 päiväksi ("muista tämä laite").
  3. Mitkä toimet vaativat tuoreen tarkistuksen? Sähköpostin vaihtaminen, maksutiedot tai 2FA:n kytkeminen pois ovat hyviä ehdokkaita. Tätä kutsutaan vaiheittaiseksi tunnistautumiseksi (step-up).
  4. Mikä on prosessi, kun puhelin katoaa? Palautuskoodit ja manuaalinen varavaihtoehto, jonka olet valmis ylläpitämään.

Vaihe vaiheelta: TOTP-2FA omalla kirjautumisella

1. Tallenna oikeat kentät

Jokaisella käyttäjällä tarvitaan: onko 2FA käytössä, TOTP-salaisuus (salattuna levyllä, ei selkotekstinä), käyttöönoton ajankohta ja lista palautuskoodeista, jotka on tallennettu tiivistettyinä, kuten salasanat. Lisää paikka epäonnistuneiden yritysten laskemiseen.

2. Rekisteröinti

  1. Käyttäjä avaa asetukset ja napsauttaa Ota kaksivaiheinen tunnistautuminen käyttöön.
  2. Palvelin luo uuden salaisuuden ja palauttaa sen QR-koodina sekä tekstimuotoisena niille, jotka eivät voi skannata.
  3. Käyttäjä skannaa sen todentajasovelluksessa ja kirjoittaa nykyisen koodin.
  4. Palvelin tarkistaa koodin. Vain jos se on oikein, se tallentaa salaisuuden ja merkitsee 2FA:n käyttöön.
  5. Sovellus näyttää 8–10 palautuskoodia kerran ja pyytää käyttäjää tallentamaan ne.

Vaihe 4 on tärkeä: 2FA:n kytkeminen päälle ennen koodin vahvistamista lukitsee ulos kenet tahansa, jonka skannaus epäonnistui.

3. Kirjautuminen toisella vaiheella

  1. Käyttäjä lähettää sähköpostin ja salasanan. Palvelin tarkistaa ne.
  2. Jos 2FA on käytössä, palvelin ei luo täyttä istuntoa. Se luo sen sijaan lyhytaikaisen tilan "toinen tekijä odottaa".
  3. Sovellus näyttää koodinsyöttönäytön. Palvelin tarkistaa koodin ja sallii pienen aikaikkunan kellon poikkeamalle.
  4. Vasta nyt palvelin antaa varsinaisen istunnon.

Jokaisen suojatun reitin ja API-päätepisteen täytyy hylätä odottava tila. 2FA-näyttö, joka vain piilottaa sivut selaimessa, voidaan ohittaa kutsumalla API:a suoraan.

4. Rajoitukset ja hälytykset

Kuusinumeroisen koodin yhdistelmiä on miljoona, joten ilman rajoituksia sen voi arvata. Rajoita yrityksiä, lukitse toinen vaihe jaksoksi toistuvien virheiden jälkeen ja lähetä käyttäjälle sähköposti, kun se tapahtuu. Katso nopeusrajoitus ja sähköpostien lähettäminen sovelluksestasi.

5. Palautus ja pois kytkeminen

  • Palautuskoodi toimii kerran, sitten se poistetaan.
  • 2FA:n poistaminen vaatii salasanan ja nykyisen koodin tai palautuskoodin.
  • Palautuskoodien uudelleen luominen mitätöi vanhan joukon.
  • Lähetä käyttäjälle sähköposti aina, kun 2FA kytketään päälle tai pois.

Kehotteet tekoälyrakentajalle

Aloita ydinkulusta:

Lisää valinnainen kaksivaiheinen tunnistautuminen todentajasovelluksilla (TOTP) olemassa olevaan sähköposti- ja salasanakirjautumiseen. Käytä tunnettua TOTP-kirjastoa, älä kirjoita algoritmia itse. Asetuksissa näytä QR-koodi ja tekstimuotoinen salaisuus, ja ota 2FA käyttöön vasta, kun käyttäjä syöttää kelvollisen koodin. Tallenna salaisuus salattuna eikä näytä sitä enää asetusten jälkeen. Näytä 10 kertakäyttöistä palautuskoodia kerran ja tallenna ne tiivistettyinä.

Sitten valvonta, jossa generoitu koodi useimmin jää vajaaksi:

Valvo 2FA palvelimella. Oikean salasanan jälkeen käyttäjillä, joilla 2FA on käytössä, on lyhytaikainen odottava tila eikä täyttä istuntoa. Jokainen suojattu sivu ja API-reitti hylkää odottavan tilan. Rajoita koodiyrityksiä 5:een, lukitse sitten toinen vaihe 15 minuutiksi ja lähetä käyttäjälle sähköposti.

Sitten käytäntö:

Vaadi 2FA ylläpitäjätileille: ylläpitäjä ilman 2FA:ta ohjataan asetuksiin, eikä hän pääse hallintanäkymään ennen kuin se on tehty. Vaadi salasana ja nykyinen koodi, jotta 2FA voidaan kytkeä pois tai tilin sähköposti vaihtaa. Lähetä käyttäjälle sähköposti, kun 2FA otetaan käyttöön tai poistetaan.

Lopuksi pyydä agenttia selittämään, mitä se rakensi:

Listaa jokainen reitti, joka tarkistaa valmistuneen toisen tekijän, kerro missä TOTP-salaisuus ja palautuskoodit tallennetaan ja miten ne on suojattu.

Yleisimmät virheet

  • Istunto luodaan salasanan jälkeen. Vakavin virhe. Jos täysi istunto on olemassa ennen koodin tarkistusta, 2FA on pelkkää koristetta. Testaa kutsumalla suojattua API:a vain salasanavaiheen jälkeen.
  • Ei yrityskatkaisua. Rajoittamattomat arvaukset tekevät koodista murrettavissa olevan.
  • Selkotekstiset salaisuudet tai palautuskoodit. Tietokantavuoto antaa silloin kaikkien toisen tekijän.
  • Käyttöönotto ennen vahvistusta. Käyttäjät, jotka skannasivat väärin, lukitaan ulos seuraavassa kirjautumisessa.
  • Ei palautusreittiä. Jokainen kadonnut puhelin muuttuu tukipyynnöksi tai menetetyksi asiakkaaksi.
  • Helppo pois kytkeminen. Jos varastettu istunto voi poistaa 2FA:n ilman koodia, suoja on mennyt.
  • Koodit lokeissa. Varmista, ettei koodeja tai salaisuuksia koskaan näy palvelinlokeissa tai virheilmoituksissa.
  • Tarkistus vain kirjautumissivulla. Salasanan palautus, "maagisen linkin" kirjautuminen ja kaikki sosiaalikirjautumiset täytyy kunnioittaa 2FA:ta, muuten ne ovat tapa kiertää se.

Testauslista

  • Rekisteröinti valmistuu vasta kelvollisen koodin jälkeen
  • Oikea salasana mutta ei koodia ei anna pääsyä yhteenkään suojattuun sivuun tai API:in
  • Väärä koodi hylätään; toistuvat väärät koodit laukaisevat lukituksen ja sähköpostin
  • Muutaman minuutin takainen koodi hylätään
  • Jokainen palautuskoodi toimii täsmälleen kerran
  • 2FA:n poistaminen vaatii salasanan ja nykyisen koodin
  • Salasanan palautus ei ohita 2FA:ta
  • Ylläpitäjät ilman 2FA:ta eivät pääse ylläpitosivuille (jos vaadittu)
  • Salaisuudet ja palautuskoodit on salattu tai tiivistetty tietokannassa
  • Koodeja tai salaisuuksia ei näy lokeissa

Suorita myös koko tekoälyllä rakennettujen sovellusten turvallisuuslista ennen julkaisua.

2FA:n lisääminen Mythexissä

Mythex ei sisällä sisäänrakennettua kirjautumisjärjestelmää sovelluksesi loppukäyttäjille, joten 2FA kuuluu siihen todennustapaan, jonka valitset: omaan sähköposti- ja salasanakirjautumiseesi projektin tietokannan kanssa tai hostattuun palveluun, jossa on monivaiheinen tunnistautuminen. Kuvaat haluamasi chatissa yllä olevien kaltaisilla kehotteilla, ja palveluntarjoajien avaimet menevät projektin salaisuuksiin (/secrets-sivun, projektin asetusten tai agentin näyttämän salaisuuskortin kautta) eikä viestikenttään. Dokumentaation resepti Lisää kirjautuminen sovellukseesi sisältää aloituskehotteen, ja Turvallisuus rakentamillesi sovelluksille käsittelee avaimiin ja oikeuksiin liittyvät käytännöt. Kun agentti on valmis, testaa jokainen tarkistuslistan kohta Previewssa ennen julkaisua.

Kysymykset

Mikä on helpoin tapa lisätä kaksivaiheinen tunnistautuminen sovellukseen?

Jos käytät hostattua todennuspalvelua, ota käyttöön sen sisäänrakennettu monivaiheinen tunnistautuminen; se vaatii yleensä vähiten koodia. Jos ylläpidät omaa kirjautumistasi, lisää todentajasovelluksen koodit (TOTP) tunnetulla kirjastolla sekä palautuskoodit ja palvelinpuolen tarkistus.

Pitäisikö käyttää SMS-koodeja 2FA:ssa?

SMS on parempi kuin ei toista tekijää, mutta se on yleisistä vaihtoehdoista heikoin, koska tekstiviestit voidaan ohjata SIM-kortin vaihdolla ja koodit voidaan kalastella. Tarjoa oletuksena todentajasovellus ja avainkoodit, jos käyttäjäsi ovat valmiita niihin.

Tarvitsenko tietokannan 2FA:n lisäämiseen?

Jos ylläpidät omaa kirjautumista, kyllä. Jokaisen käyttäjän 2FA-salaisuus, tieto siitä, onko 2FA päällä, ja tiivistetyt palautuskoodit täytyy tallentaa paikkaan, jota palvelimesi voi tarkistaa. Hostattu todennuspalvelu tallentaa ne puolestasi.

Mitä tapahtuu, jos käyttäjä menettää puhelimensa?

Hän kirjautuu yhdellä kertakäyttöisistä palautuskoodeista, jotka näytit hänelle 2FA:n käyttöönoton yhteydessä, ja asettaa 2FA:n uudelleen uudella laitteella. Ilman palautuskoodeja tarvitaan manuaalinen henkilöllisyyden tarkistus, joten päätä se prosessi ennen julkaisua.

Mythex · Pricing · Rakenna mitä tahansa tekoälyllä · Verkkosivu- ja sovellusmallipohjat · Mythex vertailussa · Tekoälysovellusten rakentamisen sanasto · Ilmaiset työkalut tekoälysovellusten rakentamiseen · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)