Add FortiAuthenticator as OTP method

Merged Imre Farkas requested to merge if-212312-forti_authenticator into master

What does this MR do?

Adds FortiAuthenticator as OTP validation method. It refactors existing OTP code validation to Users::ValidateOtpService. The feature is currently behind the forti_authenticator feature flag. If the feature flag is enabled for the user, the OTP verification goes through FortiAuthenticator instead of Devise. User flow is not changed in this MR, the same views are presented to the user as previously.

#212312 (closed)

Screenshots

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 Imre Farkas