From a2cd5f41d53a382e96fcb396fb011d5b07883df3 Mon Sep 17 00:00:00 2001 From: Nicolas Frati Date: Thu, 14 May 2026 20:39:45 +0200 Subject: [PATCH] Add docs for MFA totp (#704) Co-authored-by: Brandon Hopkins <76761586+TechHutTV@users.noreply.github.com> --- .../local-mfa/totp-setup.png | Bin 0 -> 55610 bytes .../local-mfa/totp-verify.png | Bin 0 -> 27619 bytes src/components/NavigationDocs.jsx | 6 +- src/pages/selfhosted/configuration-files.mdx | 7 ++ .../identity-providers/enable-local-mfa.mdx | 116 ++++++++++++++++++ 5 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 public/docs-static/img/selfhosted/identity-providers/local-mfa/totp-setup.png create mode 100644 public/docs-static/img/selfhosted/identity-providers/local-mfa/totp-verify.png create mode 100644 src/pages/selfhosted/identity-providers/enable-local-mfa.mdx diff --git a/public/docs-static/img/selfhosted/identity-providers/local-mfa/totp-setup.png b/public/docs-static/img/selfhosted/identity-providers/local-mfa/totp-setup.png new file mode 100644 index 0000000000000000000000000000000000000000..c57694c72e245d2fc50a5805c4d339e05acda702 GIT binary patch literal 55610 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 M>FVdQ&MBb@0FJ$59smFU literal 0 HcmV?d00001 diff --git a/public/docs-static/img/selfhosted/identity-providers/local-mfa/totp-verify.png b/public/docs-static/img/selfhosted/identity-providers/local-mfa/totp-verify.png new file mode 100644 index 0000000000000000000000000000000000000000..96b8a8e006bda2b7814a323bd95f8ea313082b5c GIT binary patch literal 27619 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 literal 0 HcmV?d00001 diff --git a/src/components/NavigationDocs.jsx b/src/components/NavigationDocs.jsx index a21cea86..3c6b2449 100644 --- a/src/components/NavigationDocs.jsx +++ b/src/components/NavigationDocs.jsx @@ -582,6 +582,10 @@ export const docsNavigation = [ title: 'Disable Local Auth', href: '/selfhosted/identity-providers/disable-local-authentication', }, + { + title: 'Enable MFA for local users', + href: '/selfhosted/identity-providers/enable-local-mfa', + }, ], }, { @@ -964,4 +968,4 @@ function NavigationGroup({ group, className, hasChildren }) { ) -} +} \ No newline at end of file diff --git a/src/pages/selfhosted/configuration-files.mdx b/src/pages/selfhosted/configuration-files.mdx index 42c7a6a6..ae13a92a 100644 --- a/src/pages/selfhosted/configuration-files.mdx +++ b/src/pages/selfhosted/configuration-files.mdx @@ -283,6 +283,13 @@ Configures the built-in identity provider (embedded IdP) that handles user authe Password for the initial admin user. Optional. Used together with `owner.email` to bootstrap the first admin account on initial deployment. + + Maximum MFA session duration from creation. After this time, local users must re-authenticate with TOTP regardless of activity. Default: `"24h"`. Only applicable when [local MFA](/selfhosted/identity-providers/enable-local-mfa) is enabled. + + + MFA session idle timeout. If the user is inactive for this duration, the MFA session expires and they must re-authenticate with TOTP. Default: `"1h"`. Only applicable when [local MFA](/selfhosted/identity-providers/enable-local-mfa) is enabled. + + When the embedded IdP is active, the server automatically hosts these OIDC endpoints: diff --git a/src/pages/selfhosted/identity-providers/enable-local-mfa.mdx b/src/pages/selfhosted/identity-providers/enable-local-mfa.mdx new file mode 100644 index 00000000..30161a04 --- /dev/null +++ b/src/pages/selfhosted/identity-providers/enable-local-mfa.mdx @@ -0,0 +1,116 @@ +import {Note, Warning} from "@/components/mdx" + +export const description = "Enable MFA for local users in your self-hosted NetBird deployment so that all users have to complete a TOTP challenge to login"; + +# Enable MFA for local users + +NetBird supports multi-factor authentication (MFA) for local users managed by the embedded identity provider. When enabled, all local users are required to set up and verify a time-based one-time password (TOTP) using an authenticator app before they can log in. + +This is useful when you want to add an extra layer of security to local users, as it will require **all** local users to authenticate using the TOTP code on every login. + + +MFA enforcement applies only to local users authenticated through the embedded IdP. Users who sign in via external identity providers (Google, Microsoft, Okta, etc.) are not affected, as MFA for those users should be configured in the respective IdP. + + +## Prerequisites + +- A self-hosted NetBird deployment using the [embedded identity provider](/selfhosted/identity-providers/local) +- Local authentication must be enabled (not [disabled](/selfhosted/identity-providers/disable-local-authentication)) +- Admin or Owner access to the NetBird Dashboard + +## Enabling MFA + +1. Log in to the NetBird Dashboard as an Admin or Owner +2. Navigate to **Settings** → **Authentication** +3. Toggle **Local MFA** to on +4. Click **Save** + +Once enabled, all local users will be prompted to set up TOTP on their next login. + +## User experience + +### First login after MFA is enabled + +When a local user logs in for the first time after MFA is enabled, they are presented with a TOTP setup screen: + +1. The user sees a QR code and is prompted to scan it with an authenticator app (e.g., Google Authenticator, Authy, 1Password) +2. After scanning, the user enters the one-time code generated by their authenticator app +3. The user clicks **Verify** to complete the setup + +

+ TOTP Setup - Scan QR code with authenticator app +

+ +### Subsequent logins + +After the initial setup, every login requires a TOTP verification step: + +1. The user enters their email and password as usual +2. A second screen prompts for the one-time code from their authenticator app +3. The user enters the code and clicks **Verify** to complete the login + +

+ TOTP Verification - Enter code from authenticator app +

+ +## MFA session configuration + +NetBird will hold an MFA session after a user went through the whole authentication process, this session will let users skip the MFA authentication process +as long as the session is active. + +By default, MFA sessions last up to 24 hours and expire after 1 hour of inactivity. You can customize these values depending on your deployment type. + +| Setting | Description | Default | +|---------|-------------|---------| +| `mfaSessionMaxLifetime` | Maximum session duration from creation. After this time, the user must re-authenticate with MFA regardless of activity. | `24h` | +| `mfaSessionIdleTimeout` | Idle timeout. If the user is inactive for this duration, the MFA session expires and they must re-authenticate. | `1h` | + +### Combined setup (config.yaml) + +```yaml +server: + auth: + mfaSessionMaxLifetime: "24h" + mfaSessionIdleTimeout: "1h" +``` + +Restart the server after changing these values: + +```bash +docker compose restart netbird-server +``` + +### Older multi-container setup (management.json) + + +This section applies to deployments using the older multi-container architecture. If you deployed using `getting-started.sh`, you are on the combined setup and should use the `config.yaml` instructions above. See the [migration guide](/selfhosted/migration/combined-container) to upgrade. + + +```json +{ + "EmbeddedIdP": { + "Enabled": true, + "MfaSessionMaxLifetime": "24h", + "MfaSessionIdleTimeout": "1h" + } +} +``` + +Restart the Management service after changing these values: + +```bash +docker compose restart management +``` + +## Disabling MFA + +To disable MFA for local users: + +1. Navigate to **Settings** → **Authentication** +2. Toggle **Local MFA** to off +3. Click **Save** + + +Disable MFA removes the TOTP requirement but **does not** remove the stored TOTP authenticator information. If you enable MFA again +previously enrolled users will be prompted for the same authenticator they registered previously. +