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 prikazuje posle lozinke i kreirajte punu sesiju na serveru tek kada taj kod bude ispravan. Svakom korisniku dajte jednokratne kodove za oporavak kada uključi 2FA, ograničite koliko pokušaja pogađanja kod može da ima, i tražite lozinku plus važeći kod pre isključivanja 2FA. Ako koristite hostovanog provajdera za autentifikaciju, uključite njegovu ugrađenu višefaktorsku opciju umesto da pravite sopstvenu.

Ovaj vodič prolazi kroz izbore, tačan tok, prompt-ove koje možete dati AI alatu i greške zbog kojih 2FA izgleda kao da postoji, a ne radi ništa. Ako je koncept nov, počnite sa šta je dvofaktorska autentifikacija.

Pre početka: potrebna vam je ispravna prijava

2FA se nalazi iznad postojeće prijave. Prvo vam treba jedno od ovog dvoje:

  • Sopstvena prijava, sa korisnicima i heširanim lozinkama sačuvanim u bazi vaše aplikacije.
  • Hostovani provajder za autentifikaciju koji upravlja korisnicima umesto vas.

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

Izaberite drugi faktor

MetodTrud korisnikaBezbednostTrošak radaDobar podrazumevani?
Aplikacija za autentifikaciju (TOTP)Skenirajte QR kod jednom, ukucajte kod pri prijaviDobra; može da se izvuče pecanjem ako lažni sajt traži kodBesplatnoDa, za većinu aplikacija
Pristupni ključ ili bezbednosni ključDodirnite ili koristite otisak prstaNajjača; otporna na pecanjeBesplatnoDa, ako su korisnici spremni za to
Kod na emailuProverite sanduče pri prijaviJaka koliko i email nalogTroškovi slanja emailaSamo kao rezerva
SMS kodČekajte porukuNajslabija; zamena SIM kartice i pecanjeNaknade po poruciSamo ako korisnici ne mogu da koriste aplikaciju

TOTP znači jednokratna lozinka zasnovana na vremenu, standard (RFC 6238) koji koriste aplikacije za autentifikaciju. Vaš server i telefon korisnika dele tajnu; svaki iz te tajne i trenutnog vremena generiše isti kratki kod, koji se obično menja svakih 30 sekundi. Nije potrebna mrežna veza niti SMS provajder.

Pristupni ključevi zamenjuju ili dopunjuju lozinke kriptografskim ključem sačuvanim na uređaju korisnika. Jači su, ali ih je teže sami napraviti, pa mnoge aplikacije počinju sa TOTP-om i dodaju pristupne ključeve kasnije, ili ih dobijaju od provajdera za autentifikaciju.

Napraviti sami ili uključiti?

PristupPrednostiMane
Višefaktorska opcija hostovanog provajderaManje koda; provajder održava bezbednosne detaljeMesečni trošak pri većem obimu; zavisite od opcija provajdera
Sopstveni TOTP sa bibliotekomPotpuna kontrola; bez naknade po korisnikuVi odgovarate za granične slučajeve: zaključavanja, oporavak, čuvanje tajni

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

Prvo odlučite pravila

Odgovorite na ova pitanja pre prompt-a, jer menjaju dizajn:

  1. Ko mora da je koristi? Opciono za sve, obavezno za administratore i osoblje, ili obavezno za sve. Uobičajeno je da se zahteva za svakoga sa administratorskim ovlašćenjima. Pogledajte kontrolu pristupa zasnovanu na ulogama.
  2. Koliko često korisnici ponovo unose kod? Pri svakoj prijavi, ili jednom po uređaju na 30 dana („zapamti ovaj uređaj”).
  3. Koje radnje zahtevaju svežu proveru? Promena emaila, podataka za isplatu ili isključivanje 2FA su dobri kandidati. Ovo se zove step-up autentifikacija.
  4. Kakav je postupak za izgubljen telefon? Kodovi za oporavak, plus ručna rezerva koju ste spremni da sprovedete.

Korak po korak: TOTP 2FA na sopstvenoj prijavi

1. Sačuvajte prava polja

Svakom korisniku treba: da li je 2FA uključen, TOTP tajna (šifrovana u mirovanju, ne čist tekst), vreme kada je uključen i lista kodova za oporavak sačuvana heširano, kao lozinke. Dodajte mesto za brojanje neuspelih pokušaja.

2. Upis

  1. Korisnik otvara podešavanja 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 da skeniraju.
  3. Korisnik je skenira u aplikaciji za autentifikaciju i ukuca trenutni kod.
  4. Server proverava kod. Tek ako je tačan, čuva tajnu i označava 2FA kao uključen.
  5. Aplikacija jednom prikazuje 8–10 kodova za oporavak i traži da ih korisnik sačuva.

Korak 4 je važan: uključivanje 2FA pre potvrđivanja koda zaključava svakoga čije skeniranje nije uspelo.

3. Prijava sa drugim korakom

  1. Korisnik unosi email i lozinku. Server ih proverava.
  2. Ako je 2FA uključen, server ne kreira punu sesiju. Umesto toga kreira kratkotrajno stanje „drugi faktor na čekanju”.
  3. Aplikacija prikazuje ekran za kod. Server proverava kod, uz mali vremenski prozor za pomeranje sata.
  4. Tek sada server izdaje pravu sesiju.

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

4. Ograničenja i upozorenja

Šestocifreni kod ima milion kombinacija, što je pogodljivo bez ograničenja. Ograničite broj pokušaja, zaključajte drugi korak na neko vreme posle ponovljenih grešaka i pošaljite korisniku email kada se to desi. Pogledajte ograničavanje učestalosti zahteva i slanje emailova iz vaše aplikacije.

5. Oporavak i isključivanje

  • Kod za oporavak radi jednom, zatim se briše.
  • Isključivanje 2FA zahteva lozinku i važeći kod ili kod za oporavak.
  • Ponovno generisanje kodova za oporavak poništava stari skup.
  • Pošaljite korisniku email kad god se 2FA uključi ili isključi.

Prompt-ovi za vaš AI alat

Počnite sa osnovnim tokom:

Dodajte opcionu dvofaktorsku autentifikaciju pomoću aplikacija za autentifikaciju (TOTP) u našu postojeću prijavu emailom i lozinkom. Koristite poznatu TOTP biblioteku, nemojte sami pisati algoritam. U podešavanjima prikažite QR kod i tekstualnu tajnu, i uključite 2FA tek kada korisnik unese važeći kod. Čuvajte tajnu šifrovano i nikada je ne prikazujte ponovo posle podešavanja. Prikažite 10 jednokratnih kodova za oporavak jednom i čuvajte ih heširano.

Zatim sprovođenje, gde generisani kod najčešće podbaci:

Sprovedite 2FA na serveru. Posle ispravne lozinke, korisnici sa uključenim 2FA dobijaju kratkotrajno stanje na čekanju, a ne punu sesiju. Svaka zaštićena stranica i API ruta moraju da odbiju stanje na čekanju. Ograničite pokušaje kodova na 5, zatim zaključajte drugi korak na 15 minuta i pošaljite korisniku email.

Zatim pravila:

Zahtevajte 2FA za administratorske naloge: administrator bez 2FA se šalje na podešavanje i ne može da pristupi kontrolnoj tabli dok ga ne završi. Zahtevajte lozinku i važeći kod za isključivanje 2FA ili promenu emaila naloga. Pošaljite korisniku email kada se 2FA uključi ili isključi.

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

Navedite svaku rutu koja proverava da li je drugi faktor završen, gde se čuvaju TOTP tajna i kodovi za oporavak i kako su zaštićeni.

Česte greške

  • Sesija izdata posle lozinke. Najozbiljnija greška. Ako puna sesija postoji pre nego što se kod proveri, 2FA je samo dekoracija. Testirajte tako što ćete pozvati zaštićeni API samo posle koraka sa lozinkom.
  • Nema ograničenja pokušaja. Neograničeni pokušaji čine kod podložnim grubom pogađanju.
  • Tajne ili kodovi za oporavak u čistom tekstu. Curenje baze tada predaje svačiji drugi faktor.
  • Uključivanje pre provere. Korisnici koji su pogrešno skenirali zaključavaju se pri sledećoj prijavi.
  • Nema puta za oporavak. Svaki izgubljen telefon postaje zahtev za podršku ili izgubljen kupac.
  • Lako isključivanje. Ako ukradena sesija može da isključi 2FA bez koda, zaštita je nestala.
  • Kodovi u logovima. Proverite da se kodovi i tajne nikada ne pojavljuju u serverskim logovima ili porukama o greškama.
  • Provera samo na stranici za prijavu. Resetovanje lozinke, prijava magičnim linkom i svaka prijava preko društvenih mreža takođe moraju da poštuju 2FA, inače postaju način da se zaobiđe.

Lista za testiranje

  • Upis se završava tek posle važećeg koda
  • Prijava sa 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 email
  • Kod iz pre nekoliko minuta se odbija
  • Svaki kod za oporavak radi tačno jednom
  • Isključivanje 2FA zahteva lozinku i važeći kod
  • Resetovanje lozinke ne zaobilazi 2FA
  • Administratori bez 2FA ne mogu da pristupe administratorskim stranicama (ako je obavezno)
  • Tajne i kodovi za oporavak su šifrovani ili heširani u bazi
  • Nijedan kod ili tajna se ne pojavljuje u logovima

Pre lansiranja pokrenite i celu bezbednosnu listu za aplikacije napravljene AI-jem.

Dodavanje 2FA na Mythexu

Mythex ne uključuje ugrađen sistem prijave za krajnje korisnike vaše aplikacije, pa je 2FA deo onog pristupa autentifikaciji koji izaberete: sopstvena prijava emailom i lozinkom koja koristi bazu projekta, ili hostovani provajder sa višefaktorskom podrškom. Opišete šta želite u četu koristeći prompt-ove kao gore, a ključevi provajdera idu u tajne projekta (preko /secrets, podešavanja projekta ili kartice sa tajnama koju agent prikaže), a ne u polje za poruku. Recept u dokumentaciji Dodavanje prijave u aplikaciju ima početni prompt, a Bezbednost za aplikacije koje pravite pokriva navike oko ključeva i dozvola. Kada agent završi, testirajte svaku stavku sa liste u Preview-u pre objavljivanja.

Pitanja

Koji je najlakši način da dodate dvofaktorsku autentifikaciju u aplikaciju?

Ako koristite hostovanog provajdera za autentifikaciju, uključite njegovu ugrađenu opciju višefaktorske autentifikacije; to je obično najmanje koda. Ako sami vodite prijavu, dodajte kodove iz aplikacije za autentifikaciju (TOTP) uz poznatu biblioteku, plus kodove za oporavak i proveru na serveru.

Da li treba da koristim SMS kodove za 2FA?

SMS je bolji od nikakvog drugog faktora, ali je najslabija uobičajena opcija jer poruke mogu da se preusmere zamenom SIM kartice, a kodovi mogu da se izvuku pecanjem (phishing). Ponudite aplikaciju za autentifikaciju kao podrazumevanu opciju, i pristupne ključeve ako su vaši korisnici spremni za njih.

Treba li mi baza podataka da dodam 2FA?

Ako sami vodite prijavu, da. Tajna 2FA svakog korisnika, da li je 2FA uključen i njegovi heširani kodovi za oporavak moraju biti sačuvani na mestu koje vaš server može da proveri. Hostovani provajder za autentifikaciju ovo čuva umesto vas.

Šta se dešava ako korisnik izgubi telefon?

Prijavljuje se jednim od jednokratnih kodova za oporavak koje mu pokažete kada uključi 2FA, a zatim ponovo podešava 2FA na novom uređaju. Bez kodova za oporavak potrebna je ručna provera identiteta, pa taj postupak odredite pre lansiranja.

Mythex · Pricing · Pravite bilo šta uz AI · Šabloni za sajtove i aplikacije · Mythex u poređenju · Rečnik pojmova za pravljenje aplikacija uz AI · Besplatni alati za pravljenje aplikacija uz AI · English

English አማርኛ العربية Български বাংলা Bosanski 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 Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)