Како да додадете двофакторска автентикација во вашата апликација
За да додадете двофакторска автентикација (2FA) во апликацијата, дозволете им на корисниците да поврзат апликација за автентикација со скенирање на QR код и побарајте од нив шестцифрениот код што ја покажува по лозинката, а сесија со полни права да создадете на серверот дури откако тој код ќе се потврди. На секој корисник дајте еднократни кодови за обновување кога ќе ја вклучи, ограничете колку кодови некој може да погоди и барајте лозинката плус тековен код пред 2FA да може да се исклучи. Ако користите хостиран давател на автентикација, вклучете ја неговата вградена мултифакторна опција наместо да градите своја.
Овој водич ги поминува изборите, точниот тек, упатства за вашиот AI градител и грешките што ја прават 2FA да изгледа присутна, но да не прави ништо. Ако концептот ви е нов, почнете со што е двофакторска автентикација.
Пред да почнете: ви треба функционална најава
2FA се наоѓа врз постоечка најава. Прво ви треба едно од следново:
- Ваша сопствена најава, со корисници и лозинки хеширани во базата на податоци на апликацијата.
- Хостиран давател на автентикација што ги управува корисниците за вас.
Ако сè уште немате ниту едно, почнете со како да додадете најава во апликацијата. Остатокот од овој водич претпоставува дека чекорот со лозинка веќе работи.
Изберете го вториот фактор
| Метод | Напор за корисникот | Безбедност | Трошок за работење | Добар стандард? |
|---|---|---|---|---|
| Апликација за автентикација (TOTP) | Скенирајте QR код еднаш, внесете код при најава | Добра; може да се фишира ако лажна страница побара кодот | Бесплатно | Да, за повеќето апликации |
| Passkey или безбедносен клуч | Допрете или користете отпечаток | Најсилна; се одбранува од фишинг | Бесплатно | Да, ако вашите корисници се удобни со тоа |
| Код по е-пошта | Проверете го сандачето при најава | Толку силна колку и сметката на е-пошта | Трошоци за испраќање е-пошта | Само како резерва |
| SMS код | Чекате порака | Најслаба; SIM swapping и фишинг | Надоместоци по порака | Само ако корисниците не можат да користат апликација |
TOTP значи временски базирана еднократна лозинка, стандардот (RFC 6238) што го користат апликациите за автентикација. Вашиот сервер и телефонот на корисникот делат тајна; секој од нив од таа тајна и тековното време генерира ист краток код, обично се менува на секои 30 секунди. Не е потребна мрежна врска ниту SMS давател.
Passkey-ите ја заменуваат или ја дополнуваат лозинката со криптографски клуч зачуван на уредот на корисникот. Тие се посилни, но потешко се градат сами, па многу апликации почнуваат со TOTP и подоцна додаваат passkey-и, или ги добиваат од давател на автентикација.
Градите сами или вклучувате?
| Пристап | Предности | Недостатоци |
|---|---|---|
| Мултифакторна опција на хостиран давател на автентикација | Помалку код; давателот ги одржува безбедносните детали | Месечен трошок при скала; зависите од опциите на давателот |
| Ваш TOTP со библиотека | Целосна контрола; без надомест по корисник | Вие ги поседувате граничните случаи: заклучувања, обновување, чување на тајни |
Проверете ја тековната документација на вашиот давател за тоа кои фактори ги поддржува и на кои планови. Во секој случај, никогаш не пишувајте сами математиката за генерирање кодови; користете широко користена библиотека.
Прво одлучете ја политиката
Одговорете на овие прашања пред да пишувате упатство, бидејќи менуваат го дизајнот:
- Кој мора да го користи? Опционално за сите, задолжително за администратори и вработени, или задолжително за сите. Вообичаено е да се бара за секој со администраторски овластувања. Видете контрола на пристап според улоги.
- Колку често корисниците внесуваат код? При секоја најава, или еднаш по уред за 30 дена („запомни го овој уред“).
- Кои дејства бараат нова проверка? Промена на е-поштата, податоците за исплата или исклучување на 2FA се добри кандидати. Ова се нарекува step-up автентикација.
- Кој е процесот при изгубен телефон? Кодови за обновување, плус рачна резерва што сте подготвени да ја спроведувате.
Чекор по чекор: TOTP 2FA на сопствена најава
1. Чувајте ги вистинските полиња
Секој корисник треба: дали 2FA е овозможена, TOTP тајната (шифрирана во мирување, не во чист текст), времето кога била овозможена и листа на кодови за обновување чувани хеширани, како лозинките. Додајте место каде се броат неуспешните обиди.
2. Регистрација
- Корисникот ги отвора Поставките и кликнува Вклучи двофакторска автентикација.
- Серверот генерира нова тајна и ја враќа како QR код, плус текстуална верзија за луѓето што не можат да скенираат.
- Корисникот ја скенира во апликација за автентикација и го внесува тековниот код.
- Серверот го проверува кодот. Само ако е точен ја зачувува тајната и ја означува 2FA како овозможена.
- Апликацијата ги прикажува 8–10 кодови за обновување еднаш и го моли корисникот да ги зачува.
Чекор 4 е важен: вклучувањето на 2FA пред да се потврди кодот ќе го заклучи секој чиешто скенирање не успеало.
3. Најава со втор чекор
- Корисникот ја внесува е-поштата и лозинката. Серверот ги проверува.
- Ако 2FA е овозможена, серверот не создава полна сесија. Наместо тоа создава краткотрајна состојба „вториот фактор е во чекање“.
- Апликацијата го прикажува екранот за код. Серверот го проверува кодот, со мал прозорец за отстапување на часовникот.
- Дури сега серверот ја издава вистинската сесија.
Секоја заштитена рута и крајна точка на API мора да ја одбие состојбата „во чекање“. Екран за 2FA што само ги крие страниците во прелистувачот може да се заобиколи со директно повикување на API-то.
4. Ограничувања и предупредувања
Шестцифрениот код има милион комбинации, што е погодливо без ограничувања. Ограничете ги обидите, заклучете го вториот чекор за период по повторени неуспеси и испратете е-порака до корисникот кога ќе се случи тоа. Видете ограничување на брзината и испраќање е-пошта од вашата апликација.
5. Обновување и исклучување
- Еден код за обновување работи еднаш, а потоа се брише.
- Исклучувањето на 2FA бара лозинка и тековен код или код за обновување.
- Регенерирањето на кодовите за обновување ги поништува старите.
- Испратете е-порака до корисникот секогаш кога 2FA ќе се вклучи или исклучи.
Упатства за вашиот AI градител
Почнете со основниот тек:
Додај опционална двофакторска автентикација со апликации за автентикација (TOTP) на нашата постојна најава со е-пошта и лозинка. Користи добро позната TOTP библиотека, не пишувај сам алгоритамот. Во Поставките прикажи QR код и текстуална тајна, и вклучи 2FA дури откако корисникот ќе внесе валиден код. Чувај ја тајната шифрирана и никогаш не ја прикажувај повторно по поставувањето. Прикажи 10 еднократни кодови за обновување еднаш и чувај ги хеширани.
Потоа наметнувањето, каде генерираниот код најчесто не успева:
Наметни 2FA на серверот. По точна лозинка, корисниците со овозможена 2FA добиваат краткотрајна состојба во чекање, а не полна сесија. Секоја заштитена страница и API рута мора да ја одбие состојбата во чекање. Ограничи ги обидите за код на 5, па заклучи го вториот чекор 15 минути и испрати е-порака до корисникот.
Потоа политиката:
Барај 2FA за администраторски сметки: администратор без 2FA се префрла на поставување и не може да дојде до контролната табла додека не го заврши. Бара лозинка и тековен код за исклучување на 2FA или промена на е-поштата на сметката. Испраќај е-порака до корисникот кога 2FA се вклучува или исклучува.
На крај, побарајте од агентот да го објасни она што го изградил:
Наброј ги сите рути што проверуваат дека е завршен вториот фактор, каде се чуваат TOTP тајната и кодовите за обновување и како се заштитени.
Чести грешки
- Сесија издадена по лозинката. Најсериозниот пропуст. Ако полната сесија постои пред да се провери кодот, 2FA е само украс. Тестирајте така што ќе повикате заштитен API само по чекорот со лозинка.
- Нема ограничување на обидите. Неограничените погодувања ја прават кодот подложен на brute-force.
- Тајни или кодови за обновување во чист текст. Ако базата протече, тогаш сите вторите фактори се откриени.
- Вклучување пред потврда. Корисниците што погрешно скениле се заклучени при следната најава.
- Нема пат за обновување. Секој изгубен телефон станува барање до поддршката или изгубен клиент.
- Лесно исклучување. Ако украдена сесија може да ја исклучи 2FA без код, заштитата исчезнува.
- Кодови во логовите. Осигурајте се дека кодовите и тајните никогаш не се појавуваат во серверските логови или пораките за грешки.
- Проверка само на страницата за најава. Ресетирањето на лозинката, најавата со „магичен линк“ и секоја социјална најава мора исто така да ја почитуваат 2FA, инаку стануваат начин да се заобиколи.
Листа за тестирање
- Регистрацијата се завршува само по валиден код
- Најава со точна лозинка но без код не дава пристап до ниедна заштитена страница или API
- Погрешен код се одбива; повторени погрешни кодови ја активираат блокадата и е-порака
- Код од пред неколку минути се одбива
- Секој код за обновување работи точно еднаш
- Исклучувањето на 2FA бара лозинка и тековен код
- Ресетирањето на лозинката не ја заобиколува 2FA
- Администраторите без 2FA не можат да дојдат до административните страници (ако е задолжително)
- Тајните и кодовите за обновување се шифрирани или хешрани во базата
- Во логовите нема кодови или тајни
Пред пуштање, направете ја и контролната листа за безбедност за апликации направени со AI.
Додавање 2FA во Mythex
Mythex не вклучува вграден систем за најава за крајните корисници на вашата апликација, па 2FA е дел од кој било пристап за автентикација што го избирате: ваша сопствена најава со е-пошта и лозинка со базата на проектот или хостиран давател со мултифакторна поддршка. Опишувате што сакате во чатот со упатства слични на горенаведените, а клучевите на давателот се чуваат како тајни на проектот (преку /secrets, поставките на проектот или картичката со тајни што ја прикажува агентот) наместо во полето за порака. Рецептот во документацијата Додај најава во апликацијата има почетно упатство, а Безбедност за апликации што ги градите ги опфаќа навиките околу клучевите и дозволите. Откако агентот ќе заврши, тестирајте ја секоја ставка од листата во Preview пред да објавите.
Прашања
Кој е најлесниот начин да додадам двофакторска автентикација во апликација?
Ако користите хостиран давател на автентикација, вклучете ја неговата вградена мултифакторна опција; тоа обично е најмалку код. Ако сами ја водите најавата, додајте кодови од апликација за автентикација (TOTP) со добро позната библиотека, плус кодови за обновување и проверка на серверот.
Треба ли да користам SMS кодови за 2FA?
SMS е подобар од никаков втор фактор, но е најслабата честа опција, бидејќи пораките може да се пренасочат преку SIM swapping и кодовите може да се украдат со фишинг. Понудете апликација за автентикација како стандардна, а passkey-и ако вашите корисници се подготвени за нив.
Ми треба база на податоци за да додадам 2FA?
Ако сами ја водите најавата, да. Тајната за 2FA на секој корисник, дали 2FA е вклучена и нивните хеширани кодови за обновување мора да се чуваат на место каде серверот може да ги провери. Хостиран давател на автентикација ова го чува наместо вас.
Што се случува ако корисник го изгуби телефонот?
Се најавува со еден од еднократните кодови за обновување што му ги покажавте кога ја вклучи 2FA, па ја поставува 2FA повторно на нов уред. Без кодови за обновување ви треба рачна проверка на идентитетот, па процесот одлучете го пред пуштање.