Skip to content

Draft: Make 2FA management more flexible

Drew Blessing requested to merge dblessing_2fa_flexibility into master

What does this MR do?

Related to #17019

This makes 2FA management more flexible by allowing a user to change OTP/authenticator applications without completely disabling 2FA. This allows the user to retain existing U2F and WebAuthn devices.

The intent is also to not require the user to regenerate recovery codes. However, this iteration still regenerates and displays new recovery codes to the user each time the application is changed. As a follow-up we can more intelligently detect whether this is first time 2FA enablement or just registering a new OTP application. If the latter, we don't need to regenerate codes.

This implementation differs slightly from the designs in the issue for a couple of reasons:

  • The designs are more than 2 years old and the GitLab design has evolved a lot.
  • In some cases the text was not the clearest (It's probably still not ideal. I'm open to improvements!)
  • As a follow-up to this issue we will be making more changes to the user profiles in #215408.

Screenshots

Current

Screen_Shot_2020-10-06_at_3.45.56_PM

Screen_Shot_2020-10-06_at_3.46.15_PM

Proposed

Screen_Shot_2020-10-06_at_3.42.50_PM

Screen_Shot_2020-10-06_at_3.42.59_PM

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Drew Blessing

Merge request reports

Loading