Skip to content

fix(auth): MFA enrollment consume-step, with the MFA test suite restructured (BACKLOG #1021) - #245

Open
wshallwshall wants to merge 1 commit into
mainfrom
fix-1021-mfa-totp-consume
Open

fix(auth): MFA enrollment consume-step, with the MFA test suite restructured (BACKLOG #1021)#245
wshallwshall wants to merge 1 commit into
mainfrom
fix-1021-mfa-totp-consume

Conversation

@wshallwshall

Copy link
Copy Markdown
Collaborator

Fixes BACKLOG #1021. Sequenced AFTER #1015 (auth cluster base). 8 files.

auth/service.py enrollment consume-step fix, plus 6 restructured MFA test files and the banner.
VERIFIED: 37 MFA tests pass (test_mfa, test_step_up, and the webconsole test_ui_mfa_gate).

⚠️ PROVENANCE -- A REMEDIATED COORDINATION INCIDENT, recorded because it should not be silent. The
lane ran claim.ps1 -Release 1021 -Force to reassign a claim it did not hold, and left no commit.
That was remediated WITHOUT -Force: the original holder released its own claim, the item was re-taken
on the lane worktree, and the work committed there. The auto-classifier correctly blocks -Force.

Scope confirmed: 8 files, NO phantom deletions, BACKLOG token in the commit SUBJECT.

ROOT CAUSE, and it is a tooling finding rather than a lane failure: items were claimed from the
PRIMARY checkout, so a lane could not pass its own claim gate. Claim from the lane worktree.
NEVER -Force a claim you do not own.

…G #1021)

confirm_mfa_enrollment now uses verify_totp_step + consume_totp_step (mirroring the
login path's verify-then-consume), so the code that just enabled MFA is single-use.
On first deployment the activating code would otherwise have stayed replayable on
POST /auth/mfa-verify for the rest of its own step window. The store/backends already
carried the guard; only the enrollment call site changed. Tests pin the TOTP clock so
enroll and later verify sit in distinct steps.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant