Vodiči

Kako dodati dvofaktorsku autentifikaciju u aplikaciju

Da biste dodali dvofaktorsku autentifikaciju (2FA) u aplikaciju, dozvolite korisnicima da povežu aplikaciju za autentifikaciju skeniranjem QR koda, tražite šestocifreni kod koji ona prikaže nakon lozinke i kreirajte punu sesiju na serveru tek kad taj kod bude ispravan. Svakom korisniku dajte jednokratne rezervne kodove kad uključi 2FA, ograničite koliko pokušaja pogađanja neko može imati i tražite lozinku plus tekući kod prije nego što se 2FA može isključiti. Ako koristite hostovanog pružaoca autentifikacije, uključite njegovu ugrađenu višefaktorsku opciju umjesto da pravite sopstvenu.

Ovaj vodič prolazi kroz izbore, tačan tok, upite koje možete dati AI alatu za izradu i greške koje 2FA čine prisutnom, a zapravo bez učinka. Ako je koncept nov, počnite s šta je dvofaktorska autentifikacija.

Prije početka: trebate ispravnu prijavu

2FA leži iznad postojeće prijave. Prvo vam treba jedno od ova dva:

  • Vaša sopstvena prijava, s korisnicima i heširanim lozinkama pohranjenim u bazi vaše aplikacije.
  • Hostovani pružalac autentifikacije koji upravlja korisnicima umjesto vas.

Ako nemate nijedno, počnite s kako dodati prijavu u aplikaciju. Ostatak vodiča pretpostavlja da korak s lozinkom već radi.

Izaberite drugi faktor

MetodaNapor korisnikaSigurnostTrošak održavanjaDobra zadana opcija?
Aplikacija za autentifikaciju (TOTP)Skenirati QR kod jednom, pri prijavi unijeti kodDobra; može se phishati ako lažna stranica traži kodBesplatnoDa, za većinu aplikacija
Pristupni ključ ili sigurnosni ključDodir ili otisak prstaNajjača; otporna na phishingBesplatnoDa, ako su korisnici spremni
Kod e-poštomProvjeriti sanduče pri prijaviJaka koliko i nalog e-pošteTroškovi slanja e-pošteSamo kao rezerva
SMS kodČekati porukuNajslabija; zamjena SIM kartice i phishingNaknade po poruciSamo ako korisnici ne mogu koristiti aplikaciju

TOTP znači jednokratna lozinka zasnovana na vremenu, standard (RFC 6238) koji koriste aplikacije za autentifikaciju. Vaš server i telefon korisnika dijele tajnu; svaki generiše isti kratki kod iz te tajne i trenutnog vremena, obično se mijenja svakih 30 sekundi. Nisu potrebni mrežna veza ni SMS pružalac.

Pristupni ključevi zamjenjuju ili dopunjuju lozinke kriptografskim ključem pohranjenim na uređaju korisnika. Jači su, ali ih je teže sami napraviti, pa mnoge aplikacije počinju s TOTP-om, a pristupne ključeve dodaju kasnije ili ih dobijaju od pružaoca autentifikacije.

Pravite sami ili uključujete?

PristupPrednostiMane
MFA hostovanog pružaoca autentifikacijeManje koda; pružalac održava sigurnosne detaljeMjesečni trošak pri većem obimu; zavisite od opcija pružaoca
Vaš TOTP s bibliotekomPotpuna kontrola; nema naknade po korisnikuSami se nosite s rubnim slučajevima: zaključavanja, oporavak, čuvanje tajni

Provjerite trenutnu dokumentaciju vašeg pružaoca za to koje faktore podržava i na kojim planovima. U svakom slučaju, nikad sami ne pišite matematiku za generisanje kodova; koristite široko korišćenu biblioteku.

Prvo odredite pravila

Odgovorite na ova pitanja prije upita, jer mijenjaju dizajn:

  1. Ko mora koristiti 2FA? Opciono za sve, obavezno za administratore i osoblje ili obavezno za sve. Obavezno za sve koji imaju administratorske ovlasti je čest pristup. Pogledajte kontrolu pristupa po ulogama.
  2. Koliko često korisnici ponovo unose kod? Pri svakoj prijavi, ili jednom po uređaju 30 dana („zapamti ovaj uređaj“).
  3. Za koje radnje treba nova provjera? Promjena e-pošte, podataka o isplati ili isključivanje 2FA su dobri kandidati. To se zove step-up autentifikacija.
  4. Koji je postupak za izgubljen telefon? Rezervni kodovi, plus ručna rezerva koju ste spremni provoditi.

Korak po korak: TOTP 2FA na vlastitoj prijavi

1. Sačuvajte ispravna polja

Svaki korisnik treba: da li je 2FA uključena, TOTP tajnu (šifrovanu u mirovanju, ne čistim tekstom), vrijeme kad je uključena i spisak rezervnih kodova pohranjen heširano, kao lozinke. Dodajte mjesto za brojanje neuspjelih pokušaja.

2. Upis

  1. Korisnik otvara Postavke i klikne Uključi dvofaktorsku autentifikaciju.
  2. Server generiše novu tajnu i vraća je kao QR kod, plus tekstualnu verziju za ljude koji ne mogu skenirati.
  3. Korisnik je skenira u aplikaciji za autentifikaciju i unosi tekući kod.
  4. Server provjerava kod. Tek ako je ispravan, snima tajnu i označava 2FA kao uključenu.
  5. Aplikacija jednom prikaže 8–10 rezervnih kodova i traži od korisnika da ih sačuva.

Korak 4 je važan: uključivanje 2FA prije potvrde koda zaključava svakoga čije skeniranje nije uspjelo.

3. Prijava s drugim korakom

  1. Korisnik šalje e-poštu i lozinku. Server ih provjerava.
  2. Ako je 2FA uključena, server ne kreira punu sesiju. Umjesto toga kreira kratkotrajno stanje „drugi faktor na čekanju“.
  3. Aplikacija prikazuje ekran za kod. Server provjerava kod, uz mali vremenski prozor za odstupanje sata.
  4. Tek sada server izdaje pravu sesiju.

Svaka zaštićena ruta i API krajnja tačka mora odbiti stanje na čekanju. Ekran 2FA koji samo sakriva stranice u browseru može se zaobići pozivom API-ja direktno.

4. Ograničenja i upozorenja

Šestocifreni kod ima milion kombinacija, što se može pogoditi bez ograničenja. Ograničite pokušaje, zaključajte drugi korak na neko vrijeme nakon ponovljenih grešaka i pošaljite korisniku e-poruku kad se to desi. Pogledajte ograničavanje učestalosti zahtjeva i slanje e-pošte iz aplikacije.

5. Oporavak i isključivanje

  • Rezervni kod radi jednom, zatim se briše.
  • Isključivanje 2FA traži lozinku i tekući kod ili rezervni kod.
  • Ponovno generisanje rezervnih kodova poništava stari skup.
  • Pošaljite korisniku e-poruku kad god se 2FA uključi ili isključi.

Upiti za vaš AI alat za izradu

Počnite s osnovnim tokom:

Dodaj opcionalnu dvofaktorsku autentifikaciju pomoću aplikacija za autentifikaciju (TOTP) na našu postojeću prijavu e-poštom i lozinkom. Koristi poznatu TOTP biblioteku, nemoj sam pisati algoritam. U Postavkama prikaži QR kod i tekstualnu tajnu, i uključi 2FA tek nakon što korisnik unese ispravan kod. Čuvaj tajnu šifrovanu i nikad je više ne prikazuj nakon postavljanja. Prikaži 10 jednokratnih rezervnih kodova jednom i čuvaj ih heširane.

Zatim provođenje, gdje generisani kod najčešće ne uspijeva:

Provedi 2FA na serveru. Nakon ispravne lozinke, korisnici s uključenom 2FA dobijaju kratkotrajno stanje na čekanju, a ne punu sesiju. Svaka zaštićena stranica i API ruta mora odbiti stanje na čekanju. Ograniči pokušaje koda na 5, zatim zaključaj drugi korak na 15 minuta i pošalji korisniku e-poruku.

Zatim pravila:

Zahtijevaj 2FA za administratorske naloge: administrator bez 2FA se šalje na postavljanje i ne može doći do kontrolne table dok to ne završi. Zahtijevaj lozinku i tekući kod za isključivanje 2FA ili promjenu e-pošte naloga. Pošalji korisniku e-poruku kad se 2FA uključi ili isključi.

Na kraju, zamolite agenta da objasni šta je napravio:

Navedi svaku rutu koja provjerava da je drugi faktor završen, gdje se čuvaju TOTP tajna i rezervni kodovi i kako su zaštićeni.

Česte greške

  • Sesija izdata nakon lozinke. Najozbiljnija greška. Ako puna sesija postoji prije nego se kod provjeri, 2FA je samo ukras. Testirajte tako što ćete pozvati zaštićeni API samo nakon koraka s lozinkom.
  • Nema ograničenja pokušaja. Neograničeno pogađanje čini kod podložnim napadu grubom silom.
  • Tajne ili rezervni kodovi u čistom tekstu. Curenje baze tada daje drugi faktor svih korisnika.
  • Uključivanje prije provjere. Korisnici koji su pogrešno skenirali zaključavaju se pri sljedećoj prijavi.
  • Nema puta za oporavak. Svaki izgubljeni telefon postaje zahtjev za podršku ili izgubljen kupac.
  • Jednostavno isključivanje. Ako ukradena sesija može isključiti 2FA bez koda, zaštita nestaje.
  • Kodovi u logovima. Pobrinite se da se kodovi i tajne nikad ne pojavljuju u serverskim logovima ili porukama o greškama.
  • Provjera samo na stranici za prijavu. Resetovanje lozinke, prijava „magičnim linkom“ i svaka društvena prijava također moraju poštovati 2FA, inače postaju način da se zaobiđe.

Lista za testiranje

  • Upis se završava tek nakon ispravnog koda
  • Prijava s ispravnom lozinkom ali bez koda ne daje pristup nijednoj zaštićenoj stranici ili API-ju
  • Pogrešan kod se odbija; ponovljeni pogrešni kodovi aktiviraju zaključavanje i e-poruku
  • Kod s nekoliko minuta ranije se odbija
  • Svaki rezervni kod radi tačno jednom
  • Isključivanje 2FA traži lozinku i tekući kod
  • Resetovanje lozinke ne zaobilazi 2FA
  • Administratori bez 2FA ne mogu doći do administratorskih stranica (ako je obavezno)
  • Tajne i rezervni kodovi su šifrovani ili heširani u bazi
  • Nijedan kod ni tajna se ne pojavljuju u logovima

Prije puštanja pokrenite i cijelu kontrolnu listu sigurnosti za aplikacije napravljene uz AI.

Dodavanje 2FA na Mythexu

Mythex ne uključuje ugrađeni sistem prijave za krajnje korisnike vaše aplikacije, pa je 2FA dio pristupa autentifikaciji koji izaberete: vaša sopstvena prijava e-poštom i lozinkom uz bazu podataka projekta, ili hostovani pružalac s višefaktorskom podrškom. Opišete šta želite u chatu upitima sličnim gornjima, a ključevi pružaoca idu u tajne projekta (preko /secrets, postavki projekta ili kartice s tajnama koju agent prikaže), a ne u polje za poruke. Recept u dokumentaciji Dodavanje prijave u aplikaciju ima početni upit, a Sigurnost za aplikacije koje pravite pokriva navike oko ključeva i dozvola. Nakon što agent završi, testirajte svaku stavku s liste u pregledu prije objavljivanja.

Pitanja

Koji je najlakši način za dodavanje dvofaktorske autentifikacije u aplikaciju?

Ako koristite hostovanog pružaoca autentifikacije, uključite njegovu ugrađenu višefaktorsku opciju; to obično traži najmanje koda. Ako sami vodite prijavu, dodajte kodove iz aplikacije za autentifikaciju (TOTP) pomoću poznate biblioteke, plus rezervne kodove i provjeru na serveru.

Treba li koristiti SMS kodove za 2FA?

SMS je bolji od nikakvog drugog faktora, ali je najslabija uobičajena opcija jer se poruke mogu preusmjeriti zamjenom SIM kartice, a kodovi se mogu izvući phishingom. Ponudite aplikaciju za autentifikaciju kao zadanu opciju, a pristupne ključeve ako su vaši korisnici spremni za njih.

Treba li mi baza podataka za dodavanje 2FA?

Ako sami vodite prijavu, da. Tajna 2FA svakog korisnika, da li je 2FA uključena i njihovi heširani rezervni kodovi moraju se negdje čuvati gdje server može provjeriti. Hostovani pružalac autentifikacije to čuva umjesto vas.

Šta se dešava ako korisnik izgubi telefon?

Prijavljuje se jednim od jednokratnih rezervnih kodova koje mu pokažete kad uključi 2FA, a zatim ponovo postavlja 2FA na novom uređaju. Bez rezervnih kodova trebate ručnu provjeru identiteta, pa taj postupak odlučite prije puštanja u rad.

Mythex · Pricing · Izradite bilo šta uz AI · Šabloni za web stranice i aplikacije · Mythex u poređenju · Rječnik izrade aplikacija uz AI · Besplatni alati za izradu aplikacija uz AI · English

English አማርኛ العربية Български বাংলা Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi 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 简体中文 繁體中文(香港) 繁體中文(台灣)