Ir al contenido

Multi-factor (MFA)

Multi-factor authentication (MFA) adds a second proof of identity on top of the user’s password. In Taranac, MFA is not bolted on at one entry point — it applies uniformly across the web admin UI, TACACS+ device administration, RADIUS AAA, and 802.1X / captive-portal network access. The same provider configuration drives every context, so a user who has enrolled MFA is challenged consistently wherever they authenticate.

Taranac supports both push factors (the user approves a login on a separate device — “bouncer” style) and OTP factors (the user types a time-based code). Push is what makes MFA usable on a network terminal: at a TACACS+ or RADIUS prompt the user enters only their password, the session waits, and an approval notification arrives on their phone — no awkward concatenation of password and code.

A push challenge: the user enters only their password at a TACACS+ login, the session waits, and an approval on their phone grants access.
  • Provider — the mechanism that delivers and verifies the second factor (TOTP, Telegram, Multifactor, Email push, or Taranac MFA). Each user has exactly one active provider, which the user chooses from the list you allow.
  • Mode — how a provider verifies: totp (user types a code), push (user approves/denies on a device), or combined (push with a TOTP fallback behind a single QR).
  • Enrollment — the one-time linking of a user to a provider. Every enrollment requires an activation step (the user confirms one push or types one code) before it becomes active.
  • Challenge — a single pending push request during login. It has a short TTL (120 s by default) and ends as approved, denied, or expired.
  • mfa_required (group flag) — MFA is made mandatory through group membership, not per user. Any group a user belongs to that has mfa_required set forces that user to have MFA. Providers themselves are not pinned to groups — the user always picks their own provider.

These are the five providers shipped in Taranac. Do not expect others.

ProviderCategoryModesWhat the user needs
TOTPLocaltotpAny authenticator app (Google Authenticator, Aegis, etc.)
TelegramExternalpushA Telegram account, linked to a bot you run
MultifactorExternalpush, totpA Multifactor (RADIUS) account
Email pushHybridpushA working email address (uses your existing SMTP)
Taranac MFAExternalcombined, totpThe Taranac MFA mobile app (push via FCM, TOTP fallback)

Categories:

  • Local (TOTP) runs entirely on the server with no external dependency. Codes are generated and verified locally. This is the most resilient option — if the backend’s outbound network or an external service is down, TOTP users still authenticate.
  • External providers reach an outside service: Telegram via the Bot API, Multifactor over the RADIUS protocol, Taranac MFA over its own REST API.
  • Hybrid (Email push) sends an approve/deny link through your SMTP server; the link points back to Taranac.

When a user enrolls, the provider starts in its default mode:

ProviderDefault mode
TOTPtotp
Telegrampush
Multifactorpush
Email pushpush
Taranac MFAcombined
ContextTOTP (code)Push (Telegram / Multifactor / Email / Taranac MFA)
Web admin UICode entered in the login formBrowser shows a “waiting for approval” screen and polls until approved
TACACS+ (device CLI)Code appended to the end of the passwordSession waits; push lands on the user’s device; on approval, access is granted
RADIUS (AAA)Code appended to the end of the passwordRADIUS challenge waits for the push result
802.1X / captive portalCode in the captive-portal formBrowser/portal polls until approved

Enrollment is self-service: a user opens their MFA settings, picks an allowed provider, and confirms it once.

  1. The user opens MFA setup in the web UI and selects a provider from the list of those you’ve enabled.
  2. Taranac starts the enrollment and returns whatever the provider needs — a QR code and secret (TOTP, Taranac MFA), a Telegram deep link / QR, or a test push / email.
  3. The user completes the activation step:
    • TOTP / Taranac MFA (totp): scan the QR in an authenticator app, then type the first code.
    • Telegram: open the deep link, press Start in the bot to link the account.
    • Push providers: approve the test push (or type the fallback code).
  4. On success the enrollment becomes active and (for TOTP) backup codes are shown once.

You do not have to walk each user through enrollment. From the admin UI you can send a setup link to a single user or to an entire group at once. The link lets the recipient configure MFA without a full login, and is single-use and time-limited (default 60 minutes). This is the practical way to roll MFA out to a team after you flip mfa_required on their group.

Mandatory MFA is driven entirely by groups:

  1. Edit the group whose members must use MFA and enable mfa_required.
  2. From then on, any member who has not enrolled is forced to set up MFA before they can complete login. In the web UI they are sent to enrollment; in TACACS+/RADIUS the login fails until enrollment is done (typically via a setup link).

Users not in any mfa_required group may still enroll voluntarily — Taranac honours their second factor without forcing it.

ActionWhereEffect
View a user’s MFA statusUser detailShows the active provider and mode
Reset a user’s MFAUser detailRemoves their enrollment — use when a device is lost
Regenerate backup codesUser detail (TOTP)Issues a fresh set of one-time recovery codes
Send setup linkUser / groupEmails a one-time enrollment link
Enable/disable a providerSystem settingsControls which providers users may choose
If you need…ChooseWhy
Maximum resilience, no external dependencyTOTPWorks offline; survives a backend outage; nothing to operate
Smooth approvals for network logins, self-hostedTaranac MFAPush via your own MFA server + FCM, with TOTP fallback in one enrollment
Push without running a mobile backendTelegramUses a Telegram bot you create; familiar to most users
To reuse an existing Multifactor deploymentMultifactorSpeaks RADIUS to your Multifactor service; push or TOTP
A zero-install fallback for occasional usersEmail pushApprove/deny by email link; uses your existing SMTP

General guidance:

  • Always keep TOTP enabled. It is the only provider with no external dependency and is the safe last line of defence if push delivery fails.
  • For device administrators logging in over TACACS+/RADIUS, prefer a push provider (Taranac MFA or Telegram) so they never have to append codes.
  • Email push is convenient but only as strong as the user’s mailbox — treat it as a fallback rather than the primary factor for privileged accounts.

Taranac actively checks that each enabled provider can do its job, so you can spot a broken second factor before users are locked out:

ProviderHealth check
TOTPAlways healthy (local, no dependencies)
Email pushSMTP server reachable (EHLO)
TelegramBot API reachable and token valid (getMe)
Taranac MFAMFA server, its database and crypto reachable (/healthz)
MultifactorRADIUS Status-Server responds

A failing provider raises a system alert and is treated as unavailable during login (502-style error to the user), so they aren’t silently stranded.

SettingDefaultPurpose
mfa.modeenabledGlobal on/off switch for MFA
mfa.challenge.ttl120 sHow long a push challenge stays valid
mfa.backup_codes.enabledtrueGenerate TOTP backup codes
mfa.backup_codes.count10Number of backup codes per TOTP enrollment
mfa.<provider>.enabledsee noteWhether users may choose a given provider

Every MFA action is audited: enrollment and activation, removal, each verification success or failure, push approved / denied / expired, admin reset, backup-code use, and Telegram link/unlink. Use these events (under the authentication log) to investigate suspicious approvals or repeated failures.