* Allow SSO MFA to fail gracefully on the client when the Proxy is down.
* Update api/mfa/ceremony.go
Co-authored-by: Marco Dinis <marco.dinis@goteleport.com>
---------
Co-authored-by: Marco Dinis <marco.dinis@goteleport.com>
* Refactor CLI prompt and config logic.
* Move CLI prompt configuration to CLIPrompt
* Factor out dual prompt in CLI prompt logic.
* Make cli config a field rather than embedded; Add NewCLIPromptV2.
* Remove mfa.Ceremony.SolveChallenge in favor of PromptFunc.
* Update api/mfa/ceremony.go
Co-authored-by: Marco Dinis <marco.dinis@goteleport.com>
---------
Co-authored-by: Marco Dinis <marco.dinis@goteleport.com>
* Refactor MFA ceremony logic to avoid creating challenges when the client has no way to solve it.
* Add client-side ErrMFANotSupported for better MFA ceremony error handling.
* Reuse MFA for tctl bots add.
* Fix MFA required check for admin role.
* Remove broken auth preference check; Fix IsMFARequiredCheck for built in Admin role.
* Check for nil MFA response in MFA retry logic.
* Refactor MFA ceremony to return a custom error when MFA is not required.
* Fix TestAdminActionMFA unit tests.
* Fix unit test.
* Make user endpoints admin actions.
* Fix user tests.
* Fix update user in the webui.
* Add tctl admin action test suite.
* Minor test suite refactors.
* Resolve comments.
* Use localhost as RPID in test.
* Add method to check MFA challenge response for admin actions.
* Add tests.
* Move AuthorizeAdminAction to authz package.
Add ValidateMFAAuthResponse as a dependency for the authorizer.
Update tests to include a mock ValidateMFAAuthResponse method.
* Resolve comments.
* Make MFA prompt client agnostic for universal use, e.g. in Teleport Connect.
* Refactor to address CR.
* Resolve comments.
* Add tc.PromptMFA.
* Fix lint.
* Extract common high level interfaces and structs into api/mfa for better flexibility in API MFA prompts.
* Resolve comments.
* Remove unused field.
* Fix miss-set quiet field.