Kétfaktoros azonosítás hozzáadása az appodhoz
Ahhoz, hogy kétfaktoros azonosítást (2FA) adj az appodhoz, engedd, hogy a felhasználók egy hitelesítő appal párosítsák a fiókjukat QR-kód beolvasásával, és a jelszó után kérd a hatjegyű kódot, amelyet az app mutat. A teljes munkamenetet csak akkor hozd létre a szerveren, miután ez a kód helyesnek bizonyult. Minden felhasználónak adj egyszer használható helyreállító kódokat, amikor bekapcsolja a 2FA-t, korlátozd, hány kódot próbálhat ki valaki, és a 2FA kikapcsolásához kérd a jelszót és egy aktuális kódot. Ha hosztolt hitelesítési szolgáltatót használsz, kapcsold be annak beépített többfaktoros opcióját, ahelyett hogy sajátot építenél.
Ez az útmutató végigvezet a választásokon, a pontos folyamaton, az AI app-építőnek adható promptokon, és azokon a hibákon, amelyek miatt a 2FA meglévőnek látszik, de nem véd semmit. Ha a fogalom új számodra, kezdd a mi a kétfaktoros azonosítás oldallal.
Előbb kell egy működő bejelentkezés
A 2FA egy meglévő bejelentkezésre épül. Ehhez az egyik kell:
- Saját bejelentkezés, a felhasználók és a hashelt jelszavak az appod adatbázisában.
- Hosztolt hitelesítési szolgáltató, amely helyetted kezeli a felhasználókat.
Ha még egyik sincs, kezd a bejelentkezés hozzáadásával az appodhoz útmutatóval. A további rész azt feltételezi, hogy a jelszavas lépés már működik.
Válaszd ki a második faktort
| Módszer | Felhasználói erőfeszítés | Biztonság | Üzemeltetési költség | Jó alapértelmezés? |
|---|---|---|---|---|
| Hitelesítő app (TOTP) | Egyszer be kell olvasni a QR-kódot, bejelentkezéskor be kell írni a kódot | Jó; adathalászható, ha egy hamis oldal kéri a kódot | Ingyenes | Igen, a legtöbb appnál |
| Passkey vagy biztonsági kulcs | Koppintás vagy ujjlenyomat | A legerősebb; ellenáll az adathalászatnak | Ingyenes | Igen, ha a felhasználóid kényelmesen használják |
| E-mail-kód | Bejelentkezéskor ellenőrzi a postaládát | Csak olyan erős, mint az e-mail-fiók | E-mail-küldés költsége | Csak tartalékként |
| SMS-kód | SMS-re vár | A leggyengébb; SIM-csere és adathalászat | Üzenetenkénti díj | Csak ha a felhasználók nem tudnak appot használni |
A TOTP a time-based one-time password rövidítése, az a szabvány (RFC 6238), amelyet a hitelesítő appok használnak. A szervered és a felhasználó telefonja megoszt egy titkot; mindkettő ebből és az aktuális időből ugyanazt a rövid kódot számolja ki, jellemzően 30 másodpercenként változva. Nincs szükség hálózati kapcsolatra vagy SMS-szolgáltatóra.
A passkey-k kriptográfiai kulccsal helyettesítik vagy egészítik ki a jelszót, amelyet a felhasználó eszközén tárolnak. Erősebbek, de nehezebb saját magad megépíteni őket, ezért sok app TOTP-vel indít, és később vagy hitelesítési szolgáltatótól kapott passkey-kel bővít.
Építsd meg, vagy kapcsold be?
| Megközelítés | Előnyök | Hátrányok |
|---|---|---|
| Hosztolt hitelesítési szolgáltató MFA-ja | Kevesebb kód; a szolgáltató karbantartja a biztonsági részleteket | Havi költség nagy méretnél; a szolgáltató lehetőségeitől függsz |
| Saját TOTP egy könyvtárral | Teljes kontroll; nincs felhasználónkénti díj | Te viseled a szélsőséges eseteket: zárolások, helyreállítás, titoktárolás |
Nézd meg a szolgáltatód aktuális dokumentációját, hogy mely faktorokat és melyik csomagban támogatja. Bármelyik utat is választod, a kódgeneráló matematikát soha ne írd meg magad; használj széles körben elterjedt könyvtárat.
Döntsd el előbb a szabályzatot
Válaszolj ezekre a kérdésekre, mielőtt promptolnál, mert megváltoztatják a tervezést:
- Kinek kötelező? Mindenkinek opcionális, az adminisztrátoroknak és a munkatársaknak kötelező, vagy mindenkinek kötelező? Gyakori, hogy a 2FA kötelező minden adminisztrátori jogosultsággal rendelkező embernek. Lásd: szerepkör alapú hozzáférés-szabályozás.
- Milyen gyakran kell újra beírni a kódot? Minden bejelentkezéskor, vagy eszközönként 30 napig („emlékezz erre az eszközre”).
- Mely műveletekhez kell friss ellenőrzés? Az e-mail-cím módosítása, a kifizetési adatok, vagy a 2FA kikapcsolása jó jelöltek. Ezt lépcsőzetes hitelesítésnek (step-up authentication) nevezik.
- Mi a folyamat, ha valaki elveszíti a telefonját? Helyreállító kódok, plusz egy kézi tartalék, amelyet vállalsz, hogy lefuttatsz.
Lépésről lépésre: TOTP-alapú 2FA a saját bejelentkezésen
1. Tárold a megfelelő mezőket
Minden felhasználónak kell: egy jelző, hogy a 2FA be van-e kapcsolva, a TOTP-titok (nyugalmi állapotban titkosítva, nem nyílt szövegként), a bekapcsolás ideje, és a helyreállító kódok listája hashelve, mint a jelszavak. Adj hozzá egy helyet a sikertelen próbálkozások számolására.
2. Regisztráció
- A felhasználó megnyitja a Beállításokat, és rákattint a Kétfaktoros azonosítás bekapcsolása gombra.
- A szerver generál egy új titkot, és QR-kódként adja vissza, valamint szöveges formában azoknak, akik nem tudják beolvasni.
- A felhasználó beolvassa egy hitelesítő appal, és beírja az aktuális kódot.
- A szerver ellenőrzi a kódot. Csak ha helyes, menti el a titkot, és jelöli a 2FA-t bekapcsoltnak.
- Az app egyszer mutatja meg a 8–10 helyreállító kódot, és arra kéri a felhasználót, hogy mentse el őket.
A 4. lépés fontos: ha a 2FA-t a kód megerősítése előtt kapcsolod be, mindenki kizárható, akinek a beolvasása hibás volt.
3. Bejelentkezés második lépéssel
- A felhasználó megadja az e-mail-címét és jelszavát. A szerver ellenőrzi őket.
- Ha a 2FA be van kapcsolva, a szerver nem hoz létre teljes munkamenetet. Helyette egy rövid életű „második faktor függőben” állapotot hoz létre.
- Az app megjeleníti a kódbeviteli képernyőt. A szerver ellenőrzi a kódot, kis időablakot engedve az óraeltérésnek.
- Csak ekkor adja ki a szerver a valódi munkamenetet.
Minden védett útvonalnak és API-végpontnak el kell utasítania a függőben lévő állapotot. Egy olyan 2FA-képernyő, amely csak a böngészőben rejt oldalakat, megkerülhető, ha közvetlenül az API-t hívják.
4. Korlátok és riasztások
Egy hatjegyű kódnak egymillió kombinációja van, ami korlátozás nélkül kitalálható. Korlátozd a próbálkozásokat, zárold le a második lépést egy időre ismételt hibák után, és e-mailben értesítsd a felhasználót, ha ez megtörténik. Lásd: sebességkorlátozás és e-mailek küldése az appodból.
5. Helyreállítás és kikapcsolás
- Egy helyreállító kód egyszer működik, utána törlődik.
- A 2FA kikapcsolásához kell a jelszó és egy aktuális kód vagy helyreállító kód.
- A helyreállító kódok újragenerálása érvényteleníti a régi készletet.
- E-mailben értesítsd a felhasználót, valahányszor a 2FA-t bekapcsolják vagy kikapcsolják.
Promptok az AI app-építőnek
Kezdd az alapvető folyamattal:
Adj hozzá opcionális kétfaktoros azonosítást hitelesítő appokkal (TOTP) a meglévő e-mailes és jelszavas bejelentkezésünkhöz. Használj egy ismert TOTP-könyvtárat, ne írd meg magad az algoritmust. A Beállításokban jelenjen meg egy QR-kód és a szöveges titok, és a 2FA csak akkor kapcsolódjon be, miután a felhasználó érvényes kódot ad meg. A titkot titkosítva tárold, és a beállítás után soha ne mutasd újra. Mutass 10 egyszer használható helyreállító kódot egyszer, és hashelve tárold őket.
Aztán a kikényszerítés, ahol a generált kód a leggyakrabban elmarad:
Kényszerítsd ki a 2FA-t a szerveren. Helyes jelszó után a 2FA-t használó felhasználók rövid életű függőben lévő állapotot kapnak, nem teljes munkamenetet. Minden védett oldalnak és API-útvonalnak el kell utasítania a függőben lévő állapotot. Korlátozd a kódpróbálkozásokat 5-re, utána 15 percre zárold le a második lépést, és küldj e-mailt a felhasználónak.
Aztán a szabályzat:
Kötelezd a 2FA-t az adminisztrátori fiókokra: a 2FA nélküli adminisztrátort a beállításba küldjük, és nem érheti el az irányítópultot, amíg ezt nem végzi el. A 2FA kikapcsolásához vagy a fiók e-mail-címének módosításához kérd a jelszót és egy aktuális kódot. E-mailben értesítsd a felhasználót, amikor a 2FA be- vagy kikapcsolódik.
Végül kérd meg az ügynököt, hogy magyarázza el, mit épített:
Sorold fel minden útvonalat, amely ellenőrzi, hogy egy második faktor teljesítve lett-e, adja meg, hol tárolódnak a TOTP-titok és a helyreállító kódok, és hogyan vannak védve.
Gyakori hibák
- Munkamenet kiadása a jelszó után. Ez a legsúlyosabb hiba. Ha a teljes munkamenet a kód ellenőrzése előtt létezik, a 2FA csak díszítés. Teszteld úgy, hogy a jelszavas lépés után közvetlenül hívsz egy védett API-t.
- Nincs próbálkozási korlát. A korlátlan találgatás a kódot brute-force-szal feltörhetővé teszi.
- Nyílt szövegű titkok vagy helyreállító kódok. Egy adatbázis-szivárgás mindenki második faktorát odaadja.
- Engedélyezés ellenőrzés nélkül. Akik rosszul olvasták be a kódot, a következő bejelentkezésnél kizáródnak.
- Nincs helyreállítási út. Minden elveszett telefon támogatási jegy vagy elveszett ügyfél.
- Könnyű kikapcsolás. Ha egy ellopott munkamenet kód nélkül ki tudja kapcsolni a 2FA-t, a védelem megszűnt.
- Kódok a naplókban. Ügyelj rá, hogy a kódok és a titkok soha ne jelenjenek meg a szerver naplóiban vagy a hibaüzenetekben.
- Csak a bejelentkezési oldalon ellenőrizni. A jelszó-visszaállításnak, a „mágikus linkes” bejelentkezésnek és minden közösségi bejelentkezésnek is tiszteletben kell tartania a 2FA-t, különben ezek megkerülési utakká válnak.
Tesztellenőrzőlista
- A regisztráció csak érvényes kód után fejeződik be
- Helyes jelszó kód nélkül nem ad hozzáférést egyetlen védett oldalhoz vagy API-hoz sem
- Egy rossz kódot elutasítanak; ismételt rossz kódok a zárolást és az e-mailt váltják ki
- Néhány perccel korábbi kódot elutasítanak
- Minden helyreállító kód pontosan egyszer működik
- A 2FA kikapcsolásához kell a jelszó és egy aktuális kód
- A jelszó-visszaállítás nem kerüli meg a 2FA-t
- A 2FA nélküli adminisztrátorok nem érik el az adminisztrátori oldalakat (ha kötelező)
- A titkok és a helyreállító kódok titkosítva vagy hashelve vannak az adatbázisban
- Kódok és titkok nem jelennek meg a naplókban
Építés előtt futtasd le a biztonsági ellenőrzőlistát AI-val épített appokhoz is.
2FA hozzáadása a Mythexen
A Mythex nem tartalmaz beépített bejelentkezési rendszert az app végfelhasználóinak, ezért a 2FA annak a hitelesítési megoldásnak a része, amelyet választasz: vagy a saját e-mailes és jelszavas bejelentkezésed a projekt adatbázisával, vagy egy hosztolt szolgáltató többfaktoros támogatással. A chatben a fenti hasonló promptokkal írhatod le, amit szeretnél, a szolgáltatói kulcsokat pedig a projekt titkaiba kell tenni (a /secrets oldalon, a projekt-beállításokban vagy abban a titokkártyában, amelyet az ügynök mutat), nem az üzenetmezőbe. A dokumentáció Bejelentkezés hozzáadása az appodhoz receptje kezdő promptot ad, a Biztonság az általad épített appokhoz pedig a kulcsokkal és a jogosultságokkal kapcsolatos szokásokat írja le. Miután az ügynök végzett, az előnézetben teszteld az ellenőrzőlista minden pontját, mielőtt közzéteszed.
Kérdések
Mi a legegyszerűbb módja a kétfaktoros azonosítás hozzáadásának egy appban?
Ha hosztolt hitelesítési szolgáltatót használsz, kapcsold be a beépített többfaktoros opcióját; ez általában a legkevesebb kódot igényli. Ha saját bejelentkezést futtatsz, adj hozzá hitelesítő-app kódokat (TOTP) egy ismert könyvtárral, valamint helyreállító kódokat és szerveroldali ellenőrzést.
Használjak SMS-kódokat a 2FA-hoz?
Az SMS jobb, mint a második faktor nélküli megoldás, de a leggyengébb gyakori lehetőség, mert az SMS-eket SIM-cserével át lehet irányítani, a kódokat pedig adathalászattal meg lehet szerezni. Alapértelmezettnek hitelesítő-appot ajánlj, és passkey-t, ha a felhasználóid már készen állnak rá.
Szükségem van adatbázisra a 2FA hozzáadásához?
Ha saját bejelentkezést futtatsz, igen. Minden felhasználó 2FA-titkát, azt, hogy a 2FA be van-e kapcsolva, és a hashelt helyreállító kódjait valahol tárolni kell, ahol a szervered ellenőrizni tudja őket. A hosztolt hitelesítési szolgáltató ezt helyetted tárolja.
Mi történik, ha a felhasználó elveszíti a telefonját?
A bekapcsoláskor megjelenített, egyszer használható helyreállító kódok egyikével jelentkezik be, majd új eszközön újra beállítja a 2FA-t. Helyreállító kódok nélkül kézi személyazonosság-ellenőrzésre van szükség, ezért az indulás előtt döntsd el ezt a folyamatot.