두 번째 요소의 게이트 로그인 — §164.312(d)

FeatureSecurityService
Shipped
2026년 8월 3일 오전 4:31 UTC
Author
Kamo
Commit
e5efc19

MFA 완료. 핵심은 kamo-shared-library에서 착륙했습니다; 이것은 회전하는 철사입니다 실제 게이트에 저장 된 구성. 문은 로그인이 이미 올바른 모양을 가지고 있기 때문에 작습니다. 그것은 ***를 만듭니다. 세션과 응답 몸에서 한 번의 키로 클라이언트에 손을 - 없음 쿠키는 로그인에서 설정됩니다. 그래서 전체 메커니즘은 OTK가 될 때까지 두번째 요인은 입증됩니다. 세션 nobody는 OTK for is unachable입니다. 세션 생성 자체가 전혀 수술이 필요하지 않습니다. MfaChallengeService는 *** opaque, 단일 용도, 5 분 토큰 아래에서 보유하고 있습니다. 클라이언트는 세션 ID를받지 않고 토큰은 가치가 없습니다. 이름 * 목적에 대한 짧은: 반독성 상태는 암호 타협을 생존. POST /api/security/mfa/challenge는 로그인을 완료하여 OTK를 풀어 놓습니다. 클라이언트는 정확히 흐름을 다시 MFA없이했다. 잘못된 코드 아무것도 해제하고 — deliberately — 실패하지 않습니다, 때문에 forcing 1개의 typo에 암호를 통해서 사용자 뒤는 MFA가 떨어져 전환한 방법 입니다. 더 보기 등록의 자신의 차단은 그 실패를 계산합니다. 성공은 도전을 소모합니다. 재생할 수 없습니다. 복구 코드는 너무 완료, 또한 시도하지 않습니다 의 TOTP Enrollment endpoints (/enroll, /confirm, /status)는 세션이 필요합니다. Factor는 자신의 계정에서 정통 작업입니다. /challenge deliberately는 그렇지 않다. 콜러가 정의에 의해 중간 로그인이기 때문에. INERT TODAY : hasConfirmedFactor에만 게이트 화재, 아무도 등록되지 않습니다, 그래서 기존 로그인 경로는 byte-identical입니다. 그 점은 — 이것은 배포할 수 있습니다 어떤 클라이언트가 그것을 지원하기 전에. endpoint ratchet는 내 자신의 3 개의 등록 핸들러를 unguarded로 붙 잡았습니다. 그들은 guarded, userIdFromSession 헬퍼를 통해 one-method-deep 스캔을 따를 수 없습니다, 그래서 수정은 기본보다 더 도움이되는 GUARD를 가르쳤다. 나는 또한 노출된 동일한 운동의 반대 제한을 문서화했습니다: completeChallenge kSessionService를 터치하기 때문에 스캔을 취소합니다.

All changes

배송을 보는 것과 같이?

작업 공간의 모든 업데이트 땅은 자동으로. 일주일 후 무료로 시청하십시오.

무료 영원히 시작가격 비교