Reference

Multi-factor authentication (MFA)

Every sign-in needs two distinct verified factors — password, passkey, authenticator app, or SSO. Set up a second factor, pass the sign-in challenge, and recover if you lose one.

For
Everyone
Find it at
Profile → Security · Authenticator app / Passkeys · Sign-in challenge at /mfa
Reading time
6 min

In one sentence

Multi-factor authentication (MFA) means a signed-in session has to prove two distinct factors — so a stolen password alone, or an SSO login alone, isn't enough to reach your organization's data.

Three things to remember
  • Two distinct factors, always. The factor types are password, passkey, authenticator app (TOTP), and SSO. A session needs two different ones — the same factor twice doesn't count.
  • SSO doesn't satisfy MFA on its own. Signing in with Google or Microsoft counts as one factor; you still add a second (a passkey, or an authenticator code).
  • Set up your second factor in your Profile. The authenticator app and passkeys both live under Profile → Security.

Which factor combinations work

A valid session pairs two different factors. Common combinations:

Primary factor (how you logged in)Second factor
PasswordAuthenticator app (TOTP)
PasswordPasskey
Passkey (passwordless)Authenticator app (TOTP)
Passkey (passwordless)SSO

Because SSO is a single factor, an SSO sign-in still routes you to add a second factor before you reach the dashboard. And a passwordless passkey login can't use another passkey as its second factor — it needs a distinct type, such as an authenticator app.

Setting up an authenticator app (TOTP)

An authenticator app generates a rolling 6-digit code that serves as your second factor. It works with Google Authenticator, 1Password, Authy, or any RFC 6238 TOTP app.

  1. Open your Profile and find the Security · Authenticator app card.
  2. Click Set up authenticator app.
  3. In your authenticator app, choose "enter a setup key" and paste the setup key shown — or, on the same device, open the otpauth:// link. Your account is your email; the issuer is QFormance.
  4. Enter the current 6-digit code the app shows and click Verify & enable.
  5. Save your recovery codes. A panel of one-time codes appears — this is the only time they're shown. Copy them somewhere safe.
Recovery codes are shown once

The one-time recovery codes are displayed a single time at setup. If you don't save them, you can mint a fresh set later with Regenerate recovery codes on the same card — but regenerating invalidates the previous set.

Once enabled, the card shows how many unused recovery codes remain, plus buttons to Regenerate recovery codes or Remove the authenticator.

Using a passkey or security key as a factor

A passkey can be either your primary login or your second factor. Passkeys work with platform authenticators (Touch ID, Face ID, Windows Hello) and with roaming security keys — YubiKey, Titan, or any FIDO2 key.

  • Set up passkeys under Profile → Security · Passkeys (see Passkeys for the full walk-through).
  • A hardware security key must have a PIN set — QFormance requires user verification, so a key without a PIN won't enroll.
  • If you logged in with a passkey (passwordless), that passkey is your primary factor; your second factor is then an authenticator app or SSO, not the same passkey again.

The sign-in challenge

When you sign in and your session doesn't yet have two distinct factors, QFormance routes you to a second-factor challenge before the dashboard loads:

  • Enter your authenticator code — the current 6-digit code from your app.
  • Use a recovery code — click Use a recovery code instead and enter one of your saved one-time codes.
  • Verify with passkey or security key — complete a passkey/security-key check instead of typing a code.
The two-factor verification challenge with an authenticator-code field and a Verify-with-passkey button

Trust this device for 30 days

The challenge offers a Trust this device for 30 days checkbox. Tick it and, for the next 30 days on that browser, sign-ins on the device skip the second-factor prompt (you still enter your primary factor). Leave it unchecked on shared or public machines.

If you have no second factor yet

New members — and anyone stranded by a policy change — are sent to a Set up multi-factor authentication page instead of the challenge. Enroll an authenticator app (or a passkey, if that's available for your account) there, then continue to the dashboard.

Recovery if you lose a factor

You manage your own factors from Profile → Security — but only while you can still sign in. So the escape hatch when your authenticator is gone is a recovery code, not the Profile page.

SituationWhat to do
Lost your phone / authenticator app, but still have recovery codesEnter a recovery code at the sign-in challenge to get in — then set the authenticator up again from your Profile.
Running low on codes (while you can still sign in)Regenerate a fresh set from Profile → Security · Authenticator app before you run out.
Locked out — lost your authenticator and your recovery codesYou can’t self-recover. Ask an org admin: from Admin → Users they reset your password, after which you re-enroll a second factor at your next sign-in.

Recovery codes each work once. Save them somewhere safe the moment you enroll, keep a couple in reserve, and regenerate before you run out — they’re what gets you back in when nothing else can.

For admins

MFA is enforced org-wide. Which sign-in methods your members may use, and which email domains are accepted, are set at Admin → Organization → Auth & Sign-in Policy — and the save flow now warns you before a change would lock other members out. See Auth & sign-in policy.

Was this helpful?
Suggest an edit →