- Spegnimento
- 3 agosto 2026 alle ore 04:31 UTC
- Autore
- Kamo
- Impegno
- e5efc19
Completa MFA. Il nucleo è atterrato in kamo-shared-library; questo è il filo che gira configurazione memorizzata in un cancello reale. Il cancello è piccolo perché il login aveva già la forma giusta: crea il *** sessione e consegna al cliente SOLO come una chiave di una volta nel corpo di risposta — no cookie è impostato al login. Quindi l'intero meccanismo è quello di tenere l'OTK fino al secondo fattore è dimostrato. Una sessione per cui nessuno detiene un OTK è irraggiungibile, che significa che la creazione di sessione non ha bisogno di alcun intervento. MfaChallengeService detiene il ***Id sotto un token opaco, monouso, di 5 minuti. Il cliente non riceve mai la sessione id, e il token è inutile senza un Codice. Breve di proposito: uno stato semi-autentico sopravvive ad un compromesso di password. POST /api/security/mfa/challenge completa il login, rilasciando OTK così il il cliente riprende esattamente il flusso che avrebbe avuto senza MFA. Un codice sbagliato non rilascia nulla e — deliberatamente — non brucia la sfida, perché forzante un utente di nuovo attraverso la password su un solo tipo è come MFA viene spento. The Il blocco dell'iscrizione conta quei fallimenti. Un successo consuma la sfida così non può essere riprodotto. I codici di recupero completano anche esso, e non sono mai anche provato come un TOTP. I endpoint di iscrizione (/iscrizione, /confirm, /status) richiedono una sessione — iscrivendo una fattore è un'azione autenticata sul proprio conto. /challenge deliberatamente fa no, perché il suo caller è mid-login per definizione. ATTENZIONE: il cancello spara solo su haConfirmedFactor, e nessuno è iscritto, quindi il percorso di login esistente è byte-identical. Questo è il punto — questo può dispiegare prima che qualsiasi cliente lo supporti. Il ratchet del punto finale ha preso i miei tre gestori di registrazione come non sorvegliato. Sono protetto, attraverso un utenteIdFromSession helper la scansione one-method-deep non può seguire, così la correzione era insegnare GUARD che aiutante piuttosto che basarli. Anch'io documentato la limitazione inversa lo stesso esercizio esposto: completeChallenge cancella la scansione solo perché capita di toccare kSessionService.