Disable Local Authentication

If you prefer to delegate all credential storage and authentication to your IdP while still utilizing NetBird's new, simplified IdP connection flow, you can completely disable local (email/password) authentication.

This is useful when you want to:

  • Enforce that all users authenticate via external identity providers only
  • Simplify end user login by directing users to your external IdP when logging in to NetBird
  • Prevent local password-based logins while still using NetBird's simplified IdP connection flow
  • Maintain a single source of truth for user credentials in your external IdP

Prerequisites

Before disabling local authentication:

  1. Configure an external IdP connector following the Authentication Guide.
  2. Log out and log in with your new admin account via the external IdP. NetBird will notify you that the user requires approval.
  3. Log back in as your original NetBird-local admin and navigate to Team > Users. You should see the new IdP user pending approval:
Approve User
  1. Approve the request, click on the user, select Owner as the role, confirm the ownership transfer, and save.
Change Owner
  1. Verify you can log in via the external IdP with full owner access.

Configuration

Combined setup (config.yaml)

Set localAuthDisabled to true under the server.auth section of your config.yaml:

server:
  auth:
    issuer: "https://netbird.example.com/oauth2"
    localAuthDisabled: true
    signKeyRefreshEnabled: true
    dashboardRedirectURIs:
      - "https://netbird.example.com/nb-auth"
      - "https://netbird.example.com/nb-silent-auth"
    cliRedirectURIs:
      - "http://localhost:53000/"

Restart the server to apply the change:

docker compose restart netbird-server

Older multi-container setup (management.json)

Update your management.json:

{
  "EmbeddedIdP": {
    "Enabled": true,
    "LocalAuthDisabled": true
  }
}

Restart the Management service:

docker compose restart management

After updating the configuration, the local login option will no longer appear on the login page — users will only see the configured external identity providers.

Re-enabling Local Authentication

To restore local authentication, reverse the configuration change and restart the server:

  • Combined setup: set localAuthDisabled back to false in config.yaml and run docker compose restart netbird-server.
  • Older multi-container setup: set LocalAuthDisabled to false in management.json and run docker compose restart management.

All previously created local users will be able to log in again with their existing passwords.