Com afegir autenticació de dos factors a la teva app
Per afegir autenticació de dos factors (2FA) a la teva app, deixa que els usuaris vinculin una app d'autenticació escanejant un codi QR, demana el codi de sis dígits que mostra després de la contrasenya, i només crea una sessió completa al servidor quan aquest codi sigui correcte. Dona a cada usuari codis de recuperació d'un sol ús quan l'activi, limita quants codis pot endevinar algú, i exigeix la contrasenya més un codi actual perquè el 2FA es pugui desactivar. Si fas servir un proveïdor d'autenticació allotjat, activa-hi la seva opció de multifactor integrada en lloc de construir-ne una tu.
Aquesta guia repassa les opcions, el flux exacte, les indicacions que pots donar a un constructor d'IA i els errors que fan que el 2FA sembli present però no faci res. Si el concepte és nou, comença per què és l'autenticació de dos factors.
Abans de començar: necessites un inici de sessió que funcioni
El 2FA es posa sobre un inici de sessió existent. Necessites una d'aquestes opcions primer:
- El teu propi inici de sessió, amb usuaris i contrasenyes amb hash guardats a la base de dades de la teva app.
- Un proveïdor d'autenticació allotjat que gestioni els usuaris per a tu.
Si encara no en tens cap, comença per com afegir inici de sessió a la teva app. La resta de la guia suposa que ja funciona un pas amb contrasenya.
Tria el teu segon factor
| Mètode | Esforç de l'usuari | Seguretat | Cost de funcionament | Bona opció per defecte? |
|---|---|---|---|---|
| App d'autenticació (TOTP) | Escanejar un codi QR una vegada, escriure un codi en iniciar sessió | Bona; es pot suplantar si un lloc fals demana el codi | Gratuït | Sí, per a la majoria d'apps |
| Clau d'accés o clau de seguretat | Tocar o usar l'empremta digital | La més forta; resisteix el phishing | Gratuït | Sí, si els teus usuaris s'hi senten còmodes |
| Codi per correu | Mirar la safata d'entrada en iniciar sessió | Només és tan forta com el compte de correu | Costos d'enviament de correu | Només com a alternativa |
| Codi SMS | Esperar un missatge | La més feble; intercanvi de SIM i phishing | Tarifa per missatge | Només si els usuaris no poden fer servir una app |
TOTP vol dir contrasenya d'un sol ús basada en el temps, l'estàndard (RFC 6238) que fan servir les apps d'autenticació. El teu servidor i el telèfon de l'usuari comparteixen un secret; cadascun genera el mateix codi curt a partir d'aquest secret i de l'hora actual, que normalment canvia cada 30 segons. No cal cap connexió de xarxa ni cap proveïdor de SMS.
Les claus d'accés substitueixen o complementen les contrasenyes amb una clau criptogràfica guardada al dispositiu de l'usuari. Són més fortes però més feina de construir tu mateix, així que moltes apps comencen amb TOTP i afegeixen claus d'accés més endavant, o les obtenen d'un proveïdor d'autenticació.
Construir-ho o activar-ho?
| Enfocament | Avantatges | Inconvenients |
|---|---|---|
| Multifactor del proveïdor d'autenticació allotjat | Menys codi; el proveïdor manté els detalls de seguretat | Cost mensual a escala; depens de les opcions del proveïdor |
| El teu propi TOTP amb una biblioteca | Control total; sense cost per usuari | Tu t'encarregues dels casos límit: bloquejos, recuperació, emmagatzematge del secret |
Consulta la documentació actual del teu proveïdor per veure quins factors admet i en quins plans. En qualsevol cas, mai no escriguis tu mateix les matemàtiques de generació del codi; fes servir una biblioteca molt utilitzada.
Decideix primer la política
Respon això abans de fer la indicació, perquè canvia el disseny:
- Qui l'ha d'utilitzar? Opcional per a tothom, obligatori per a administradors i personal, o obligatori per a tots. És habitual exigir-lo a qualsevol amb poder d'administració. Consulta el control d'accés basat en rols.
- Amb quina freqüència els usuaris tornen a introduir un codi? A cada inici de sessió, o una vegada per dispositiu durant 30 dies («recorda aquest dispositiu»).
- Quines accions necessiten una nova comprovació? Canviar el correu, les dades de cobrament o desactivar el 2FA són bons candidats. Això s'anomena autenticació de pujada de nivell (step-up).
- Quin és el procés per a un telèfon perdut? Codis de recuperació, més una alternativa manual que estiguis disposat a gestionar.
Pas a pas: 2FA amb TOTP en el teu propi inici de sessió
1. Guarda els camps adequats
Cada usuari necessita: si el 2FA està activat, el secret TOTP (xifrat en repòs, no en text pla), el moment en què es va activar i una llista de codis de recuperació guardats amb hash, com les contrasenyes. Afegeix un lloc on comptar els intents fallits.
2. Inscripció
- L'usuari obre la Configuració i fa clic a Activa l'autenticació de dos factors.
- El servidor genera un secret nou i el retorna com a codi QR, més la versió de text per a les persones que no poden escanejar.
- L'usuari l'escaneja en una app d'autenticació i escriu el codi actual.
- El servidor comprova el codi. Només si és correcte guarda el secret i marca el 2FA com a activat.
- L'app mostra de 8 a 10 codis de recuperació una sola vegada i demana a l'usuari que els guardi.
El pas 4 és important: activar el 2FA abans de confirmar un codi bloqueja qualsevol a qui l'escaneig li hagi fallat.
3. Inici de sessió amb un segon pas
- L'usuari envia el correu i la contrasenya. El servidor els comprova.
- Si el 2FA està activat, el servidor no crea una sessió completa. En canvi, crea un estat de «segon factor pendent» de curta durada.
- L'app mostra la pantalla del codi. El servidor comprova el codi, permetent una petita finestra per a la desviació del rellotge.
- Només ara el servidor emet la sessió real.
Cada ruta protegida i cada endpoint d'API ha de rebutjar l'estat pendent. Una pantalla de 2FA que només amaga pàgines al navegador es pot saltar cridant directament l'API.
4. Límits i alertes
Un codi de sis dígits té un milió de combinacions, que es poden endevinar sense límits. Limita els intents, bloqueja el segon pas durant un temps després de diversos errors i envia un correu a l'usuari quan passi. Consulta limitació de tasa i enviar correus des de la teva app.
5. Recuperació i desactivació
- Un codi de recuperació funciona una sola vegada i després s'elimina.
- Desactivar el 2FA requereix la contrasenya i un codi actual o un codi de recuperació.
- Regenerar els codis de recuperació invalida el conjunt anterior.
- Envia un correu a l'usuari cada vegada que s'activi o es desactivi el 2FA.
Indicacions per al teu constructor d'IA
Comença amb el flux bàsic:
Afegeix autenticació de dos factors opcional amb apps d'autenticació (TOTP) al nostre inici de sessió existent amb correu i contrasenya. Fes servir una biblioteca TOTP coneguda, no escriguis tu mateix l'algorisme. A la Configuració, mostra un codi QR i el secret en text, i activa el 2FA només després que l'usuari introdueixi un codi vàlid. Guarda el secret xifrat i no el mostris mai més després de la configuració. Mostra 10 codis de recuperació d'un sol ús una sola vegada i guarda'ls amb hash.
Després, l'aplicació de la política, que és on el codi generat sovint es queda curt:
Aplica el 2FA al servidor. Després d'una contrasenya correcta, els usuaris amb 2FA activat obtenen un estat pendent de curta durada, no una sessió completa. Cada pàgina protegida i cada ruta d'API han de rebutjar l'estat pendent. Limita els intents de codi a 5; després bloqueja el segon pas durant 15 minuts i envia un correu a l'usuari.
Després, la política:
Exigeix el 2FA als comptes d'administrador: un administrador sense 2FA s'envia a la configuració i no pot accedir al tauler fins que la completi. Exigeix la contrasenya i un codi actual per desactivar el 2FA o canviar el correu del compte. Envia un correu a l'usuari quan el 2FA s'activi o es desactivi.
Finalment, demana a l'agent que expliqui el que ha construït:
Enumera cada ruta que comprova que s'ha completat un segon factor, on s'emmagatzemen el secret TOTP i els codis de recuperació, i com estan protegits.
Errors habituals
- Emetre la sessió després de la contrasenya. L'error més greu. Si la sessió completa existeix abans que es comprovi el codi, el 2FA és només decoratiu. Prova-ho cridant una API protegida només després del pas de la contrasenya.
- Sense límit d'intents. Els intents il·limitats fan que el codi sigui vulnerable a la força bruta.
- Secrets o codis de recuperació en text pla. Una fuita de la base de dades entrega el segon factor de tothom.
- Activar abans de verificar. Els usuaris que han escanejat malament queden bloquejats en el següent inici de sessió.
- Sense camí de recuperació. Cada telèfon perdut es converteix en un tiquet de suport o en un client perdut.
- Desactivació fàcil. Si una sessió robada pot desactivar el 2FA sense cap codi, la protecció desapareix.
- Codis als registres. Assegura't que els codis i els secrets mai no apareguin als registres del servidor ni als missatges d'error.
- Comprovar només a la pàgina d'inici de sessió. El restabliment de contrasenya, l'inici de sessió amb «enllaç màgic» i qualsevol inici de sessió social també han de respectar el 2FA, o es convertiran en una manera de saltar-se'l.
Llista de comprovació de proves
- La inscripció només es completa després d'un codi vàlid
- Un inici de sessió amb contrasenya correcta però sense codi no dona accés a cap pàgina ni API protegida
- Un codi incorrecte es rebutja; els codis incorrectes repetits activen el bloqueig i un correu
- Un codi d'uns quants minuts enrere es rebutja
- Cada codi de recuperació funciona exactament una vegada
- Desactivar el 2FA necessita la contrasenya i un codi actual
- El restabliment de contrasenya no salta el 2FA
- Els administradors sense 2FA no poden accedir a les pàgines d'administració (si és obligatori)
- Els secrets i els codis de recuperació estan xifrats o amb hash a la base de dades
- Cap codi ni secret apareix als registres
Fes també la llista de comprovació de seguretat per a apps creades amb IA completa abans del llançament.
Afegir 2FA a Mythex
Mythex no inclou un sistema d'inici de sessió integrat per als usuaris finals de la teva app, així que el 2FA forma part de l'enfocament d'autenticació que triïs: el teu propi inici de sessió amb correu i contrasenya fent servir la base de dades del projecte, o un proveïdor allotjat amb suport de multifactor. Descriu el que vols al xat amb indicacions com les de dalt, i les claus del proveïdor van als secrets del projecte (a través de /secrets, la configuració del projecte o la targeta de secrets que mostra l'agent) en lloc de la caixa de missatges. La recepta de la documentació Afegeix inici de sessió a la teva app té una indicació inicial, i Seguretat per a les apps que construeixes cobreix els hàbits al voltant de les claus i els permisos. Després que l'agent acabi, prova cada punt de la llista de comprovació a la Vista prèvia abans de publicar.
Preguntes
Quina és la manera més senzilla d'afegir autenticació de dos factors a una app?
Si fas servir un proveïdor d'autenticació allotjat, activa-hi la seva opció integrada de multifactor; normalment és la que requereix menys codi. Si gestiones el teu propi inici de sessió, afegeix codis d'app d'autenticació (TOTP) amb una biblioteca coneguda, més codis de recuperació i una comprovació al servidor.
He de fer servir codis SMS per al 2FA?
L'SMS és millor que no tenir cap segon factor, però és l'opció comuna més feble perquè els missatges es poden redirigir amb un intercanvi de SIM i els codis es poden suplantar amb phishing. Ofereix una app d'autenticació com a opció per defecte, i claus d'accés si els teus usuaris estan preparats per fer-les servir.
Necessito una base de dades per afegir 2FA?
Si gestiones el teu propi inici de sessió, sí. El secret 2FA de cada usuari, si el 2FA està activat i els seus codis de recuperació xifrats per hash s'han d'emmagatzemar en un lloc que el teu servidor pugui comprovar. Un proveïdor d'autenticació allotjat ho guarda per a tu.
Què passa si un usuari perd el telèfon?
Inicia sessió amb un dels codis de recuperació d'un sol ús que li vas mostrar quan va activar el 2FA, i després torna a configurar el 2FA en un dispositiu nou. Sense codis de recuperació, cal una verificació d'identitat manual, així que decideix aquest procés abans del llançament.