feat: add Okta MFA challenge flow for okta_saml - #259
Conversation
Handle MFA_REQUIRED during Okta primary authentication with a v1 factor set of TOTP (token:software:totp) and Okta Verify push. TOTP is preferred when both are enrolled because it completes without waiting; push sends the notification and polls the verify link (3s interval, 60s timeout) with explicit rejected/timeout/cancel handling. Accounts with only unsupported factors get an error listing what is available versus supported, and MFA_ENROLL is reported as no-enrolled-factor. One-time codes are read interactively and never persisted. Closes #87 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BFhLrnpVxivu62cC3k9NZB
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
This PR successfully implements Okta MFA challenge flow for TOTP and Okta Verify push notifications. The implementation is well-structured with proper error handling, comprehensive test coverage, and security best practices. The code correctly handles MFA challenges without persisting sensitive data, implements appropriate timeouts and context cancellation, and provides clear user feedback. The changes are ready for merge.
You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.
youngjinjung-linq
left a comment
There was a problem hiding this comment.
냉정 리뷰 완료. MFA_REQUIRED → TOTP/push 분기, rejection, context cancellation 경로를 확인했으며 이 증분 diff에서 재현 가능한 새 blocker는 찾지 못했습니다.
…-87-okta-mfa-challenge
b0be377
into
feature/issue-85-okta-saml-exchange
Summary
Implements #87 (Okta SAML track #26). Stacked on the #85 exchange PR (base branch:
feature/issue-85-okta-saml-exchange); merge the schema and exchange PRs first.token:software:totp) and Okta Verify push. TOTP is preferred when both are enrolled because it completes without waiting.MFA_REQUIREDnow enters a challenge flow instead of erroring: factor selection → verification via the factor's verify link with the state token.REJECTED,TIMEOUT, context cancellation, and the poll deadline.MFA_ENROLLis reported as "no enrolled MFA factor".Testing
go test ./...passes: TOTP success and wrong-code failure, push approved-after-polling, push rejected, unsupported-factor listing — all againsthttptestOkta servers with scripted verify responses.make buildpasses.Closes #87
Part of #26