Skip to content

Commit 30112eb

Browse files
committed
No IdP required, Multiple IdPs supported, Onboarding flow
1 parent 5d31b84 commit 30112eb

File tree

5 files changed

+118
-95
lines changed

5 files changed

+118
-95
lines changed

src/pages/selfhosted/identity-providers/connectors.mdx

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1-
# Identity Provider Connectors
1+
# External Identity Providers
22

3-
When using the [embedded IdP](/selfhosted/identity-providers/embedded-idp), you can add identity provider **connectors** to enable Single Sign-On (SSO). This allows users to sign in with their existing accounts from services like Google, Microsoft, or your corporate identity provider—while still maintaining the simplicity of the embedded IdP.
3+
NetBird supports connecting **multiple external identity providers** alongside local user management. This allows users to sign in with their existing accounts from services like Google, Microsoft, or your corporate identity provider—while still maintaining the option for local username/password authentication.
44

5-
## Why Use Connectors?
5+
## Why Add External Identity Providers?
66

7-
Connectors provide:
7+
External identity providers give you:
88

99
- **Single Sign-On (SSO)** - Users authenticate with familiar credentials
10+
- **Multiple providers** - Configure as many OIDC-compatible providers as you need
1011
- **Federation** - Multiple identity sources, single NetBird account
1112
- **Flexibility** - Mix local users with SSO authentication
12-
- **Gradual adoption** - Start with local users, add SSO later
13+
- **Gradual adoption** - Start with local users, add SSO providers later
1314

1415
## Supported Providers
1516

@@ -24,7 +25,7 @@ Connectors provide:
2425
| [**PocketID**](/selfhosted/identity-providers/pocketid) | `pocketid` | Lightweight self-hosted IdP |
2526
| [**Generic OIDC**](/selfhosted/identity-providers/generic-oidc) | `oidc` | Any OIDC-compliant provider |
2627

27-
## Adding a Connector
28+
## Adding an Identity Provider
2829

2930
### Via Dashboard
3031

@@ -36,7 +37,7 @@ Connectors provide:
3637
6. Copy the **Redirect URL** and configure it in your identity provider
3738

3839
<Note>
39-
The Identity Providers tab is only visible when the embedded IdP is enabled.
40+
The Identity Providers tab is only visible when local user management is enabled (default for new installations).
4041
</Note>
4142

4243
### Via API
@@ -82,33 +83,35 @@ Some providers also require:
8283

8384
Users who authenticate via a connector appear in your Users list with a badge showing their identity provider.
8485

85-
## Multiple Connectors
86+
## Multiple Identity Providers
8687

87-
You can configure multiple connectors simultaneously:
88+
You can configure **multiple identity providers simultaneously**:
8889

89-
- All enabled providers appear as buttons on the login page
90-
- "Continue with Email" (local authentication) is always available
90+
- All configured providers appear as buttons on the login page
91+
- "Continue with Email" (local authentication) is always available first
9192
- Users can authenticate with any configured provider
9293
- Each user's provider is tracked and displayed in the Dashboard
9394

95+
This allows you to support different authentication methods for different user groups—for example, Google for contractors and Microsoft Entra ID for employees.
96+
9497
## Best Practices
9598

96-
1. **Start simple** - Begin with local users, add connectors as needed
97-
2. **Test thoroughly** - Verify the connector works before announcing to users
99+
1. **Start simple** - Begin with local users, add external providers as needed
100+
2. **Test thoroughly** - Verify the provider works before announcing to users
98101
3. **Communicate changes** - Let users know about new login options
99-
4. **Keep a fallback** - Local authentication remains available if a connector has issues
102+
4. **Keep a fallback** - Local authentication remains available if an external provider has issues
100103

101104
## Troubleshooting
102105

103106
### Provider not appearing on login page
104107

105-
- Verify the connector was saved successfully in Settings → Identity Providers
106-
- Check that the connector is enabled
108+
- Verify the provider was saved successfully in Settings → Identity Providers
109+
- Check that the provider is enabled
107110
- Clear browser cache and reload the login page
108111

109112
### "Invalid redirect URI" error
110113

111-
- Copy the exact Redirect URL from NetBird after creating the connector
114+
- Copy the exact Redirect URL from NetBird after creating the provider
112115
- Ensure no trailing slashes or typos
113116
- Some providers are case-sensitive
114117

src/pages/selfhosted/identity-providers/embedded-idp.mdx

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,53 @@
1-
# Embedded Identity Provider
1+
# Local User Management
22

3-
The embedded identity provider is NetBird's built-in authentication system, powered by [Dex](https://dexidp.io/). It runs directly within the Management service, eliminating the need for external IdP containers or complex configuration.
3+
NetBird's Management service includes built-in user management, allowing you to create and manage local users directly without requiring an external identity provider. This functionality is powered by an embedded [Dex](https://dexidp.io/) server.
44

55
## Overview
66

7-
The embedded IdP provides:
7+
The Management service provides:
88

99
- **Local user management** - Create users with email/password authentication directly in NetBird
10-
- **External connector support** - Optionally integrate Google, GitHub, OIDC, or SAML providers
10+
- **No external IdP required** - Works out of the box, no Zitadel, Keycloak, or other IdP needed
11+
- **External identity provider support** - Optionally connect one or more OIDC-compatible providers (Google, Microsoft, Okta, etc.)
12+
- **Multiple IdP support** - Configure multiple external identity providers simultaneously
1113
- **Device authentication** - CLI authentication via device authorization flow
1214
- **Secure storage** - AES-256-GCM encryption for sensitive user data at rest
1315

14-
## When to Use Embedded IdP
16+
## When to Use Local Users
1517

16-
The embedded IdP is ideal for:
18+
Local user management is ideal for:
1719

18-
| Use Case | Why Embedded IdP Works |
20+
| Use Case | Why Local Users Work |
1921
|----------|----------------------|
2022
| **Homelabs** | Simple setup, minimal resources, no external dependencies |
2123
| **Small teams** | Easy user management, quick onboarding |
2224
| **Proof of concept** | Get started in minutes, upgrade path available |
2325
| **Air-gapped environments** | No external service dependencies |
2426
| **Development/testing** | Fast iteration, simple reset |
2527

26-
Consider an [external IdP](/selfhosted/selfhosted-guide#step-3-configure-identity-provider-idp) if you need:
28+
Consider a [standalone external IdP](/selfhosted/selfhosted-guide#step-3-configure-identity-provider-idp) if you need:
2729

2830
- SCIM user provisioning (Enterprise feature)
2931
- Complex user lifecycle management
3032
- Integration with existing enterprise SSO infrastructure
31-
- Specific IdP features not available in connectors
33+
- Specific IdP features not available via OIDC connectors
3234

3335
## Architecture
3436

35-
With the embedded IdP enabled, the architecture is simplified:
37+
With local user management enabled, the architecture is simplified:
3638

3739
```
38-
NetBird Management
39-
┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐
40-
│ Management │ │ Embedded Dex │ │ Dashboard │
41-
│ Service │◄─┤ IdP Server │◄─┤ API │
42-
└─────────────────┘ └─────────────────┘ └─────────────┘
43-
│ │
44-
▼ ▼
45-
┌─────────────────────────────────────────────────────────┐
46-
│ SQLite/Postgres Database │
47-
│ (Users, Accounts, IdP Connectors) │
48-
└─────────────────────────────────────────────────────────┘
40+
NetBird Management
41+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐
42+
│ Management │ │ Embedded Dex │ │ Dashboard │
43+
│ Service │◄─┤ IdP Server │◄─┤ API │
44+
└─────────────────┘ └─────────────────┘ └─────────────┘
45+
│ │
46+
▼ ▼
47+
┌─────────────────────────────────────────────────────────┐
48+
│ SQLite/Postgres Database │
49+
│ (Users, Accounts, IdP Connectors) │
50+
└─────────────────────────────────────────────────────────┘
4951
```
5052

5153
Compare this to the external IdP architecture which requires separate containers for the IdP and its database.
@@ -94,7 +96,7 @@ openssl rand -base64 32
9496
```
9597

9698
<Note>
97-
**Warning:** Store your encryption key securely. If lost, encrypted user data (emails, names) cannot be recovered. Include it in your backup procedures.
99+
Store your encryption key securely. If lost, encrypted user data (emails, names) cannot be recovered. Include it in your backup procedures.
98100
</Note>
99101

100102
## User Management
@@ -117,7 +119,7 @@ After creation, a modal displays with:
117119
- **Copy & Close** button to copy password and dismiss
118120

119121
<Note>
120-
**Warning:** The generated password is only shown once at creation time. It cannot be retrieved later. Make sure to copy it and share it securely with the user.
122+
The generated password is only shown once at creation time. It cannot be retrieved later. Make sure to copy it and share it securely with the user.
121123
</Note>
122124

123125
### User IdP Badges
@@ -213,9 +215,9 @@ curl -X POST "https://netbird.example.com/api/instance/setup" \
213215
}
214216
```
215217

216-
## Adding Identity Provider Connectors
218+
## Adding External Identity Providers
217219

218-
The embedded IdP supports adding identity provider [**connectors**](/selfhosted/identity-providers/connectors) to enable SSO. This allows users to sign in with existing accounts from:
220+
You can connect one or more external identity providers to enable SSO alongside local users. This allows users to sign in with existing accounts from:
219221

220222
- Google
221223
- Microsoft (personal accounts)
@@ -225,7 +227,9 @@ The embedded IdP supports adding identity provider [**connectors**](/selfhosted/
225227
- PocketID
226228
- Any OIDC-compliant provider
227229

228-
### Managing Connectors via Dashboard
230+
**Multiple providers supported**: You can configure as many OIDC-compatible identity providers as you need. Users will see all configured providers as login options alongside the local email/password option.
231+
232+
### Managing External IdPs via Dashboard
229233

230234
1. Navigate to **Settings****Identity Providers**
231235
2. Click **Add Identity Provider**
@@ -404,5 +408,5 @@ To switch from embedded IdP to an external IdP:
404408
4. Users will need to re-authenticate with the new IdP
405409

406410
<Note>
407-
**Warning:** Disabling the embedded IdP will invalidate all local user accounts. Ensure users have accounts in the external IdP before switching.
411+
Disabling the embedded IdP will invalidate all local user accounts. Ensure users have accounts in the external IdP before switching.
408412
</Note>

src/pages/selfhosted/identity-providers/index.mdx

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,20 @@
22

33
NetBird's self-hosted implementation uses the OpenID Connect (OIDC) protocol for authentication, an industry-standard identity layer built on top of OAuth 2.0. OIDC is used both for user authentication to access the Management Service Dashboard and for user device authorization when accessing internal resources.
44

5-
## Embedded IdP (Recommended)
5+
## Local User Management
66

7-
Starting with version X.XX, NetBird includes a **built-in identity provider** powered by [Dex](https://dexidp.io/). This is now the default for new deployments and eliminates the need for separate IdP infrastructure.
7+
Starting with version X.XX, NetBird **no longer requires an external identity provider**. The Management service now supports creating and managing local users directly, so you can get started without setting up Zitadel, Keycloak, or any other IdP.
88

9-
With the embedded IdP, you can:
9+
With local user management, you can:
1010

1111
- **Create local users** directly from the NetBird Dashboard
12-
- **Add SSO connectors** (Google, Microsoft, Okta, etc.) through the Dashboard UI
12+
- **Add external identity providers** (Google, Microsoft, Okta, etc.) through the Dashboard UI
13+
- **Configure multiple IdPs** simultaneously—users see all providers as login options
1314
- **Simplify your deployment** with fewer containers and reduced resource requirements
14-
- **Get started faster** with automatic configuration and no additional setup
15+
- **Get started faster** with no additional IdP setup required
1516

1617
<Note>
17-
The embedded IdP uses [Dex](https://dexidp.io/), a lightweight, portable OIDC identity provider that supports federated authentication. Dex runs embedded within the NetBird Management service, requiring no additional containers or databases.
18+
Local user management is powered by an embedded [Dex](https://dexidp.io/) server running within the NetBird Management service, requiring no additional containers or databases.
1819
</Note>
1920

2021
[Get Started →](/selfhosted/selfhosted-quickstart)
@@ -35,11 +36,11 @@ This approach provides several key benefits:
3536

3637
| Approach | Best For | Setup Complexity |
3738
|----------|----------|------------------|
38-
| **Embedded IdP Only** | Homelabs, small teams, quick deployments | Minimal |
39-
| **Embedded IdP + Connectors** | Organizations wanting SSO with existing providers | Low |
39+
| **Local Users Only** | Homelabs, small teams, quick deployments | Minimal |
40+
| **Local Users + External IdPs** | Organizations wanting SSO with existing providers | Low |
4041
| **Standalone IdP (Advanced)** | Enterprises with existing IdP investments, SCIM requirements | Moderate to High |
4142

42-
### Embedded IdP Only
43+
### Local Users Only
4344

4445
The simplest approach—create and manage users directly in NetBird:
4546

@@ -50,16 +51,17 @@ The simplest approach—create and manage users directly in NetBird:
5051

5152
[Setup Guide →](/selfhosted/identity-providers/embedded-idp)
5253

53-
### Embedded IdP with Connectors
54+
### Local Users + External Identity Providers
5455

55-
Combine the simplicity of embedded IdP with your existing identity providers:
56+
Combine local user management with your existing identity providers:
5657

5758
- Keep local user management as a fallback
58-
- Add Google, Microsoft, Okta, or other SSO for convenience
59-
- Configure connectors directly from the Dashboard UI
59+
- Add Google, Microsoft, Okta, or other providers for SSO
60+
- **Configure multiple IdPs**—users see all options on the login page
61+
- Configure everything directly from the Dashboard UI
6062
- Best of both worlds
6163

62-
[About Connectors](/selfhosted/identity-providers/connectors)
64+
[About External IdPs](/selfhosted/identity-providers/connectors)
6365

6466
### Standalone IdP (Advanced)
6567

@@ -76,7 +78,7 @@ For organizations with specific requirements or existing IdP investments:
7678

7779
## Identity Provider Options
7880

79-
Each provider page includes both **connector setup** (recommended, for use with embedded IdP) and **standalone setup** (advanced) instructions.
81+
Each provider page includes both **connector setup** (recommended, for adding to local user management) and **standalone setup** (advanced) instructions.
8082

8183
### Self-Hosted Providers
8284

@@ -109,12 +111,11 @@ In addition to OIDC-based authentication, NetBird supports provisioning users an
109111

110112
## Migration Guide
111113

112-
If you have an existing NetBird deployment using a standalone IdP (like Zitadel from the previous quickstart), you can continue using it. To migrate to the embedded IdP:
114+
If you have an existing NetBird deployment using a standalone IdP (like Zitadel from the previous quickstart), you have several options:
113115

114-
1. Export your user list from your current IdP
115-
2. Deploy the new version with embedded IdP enabled
116-
3. Recreate users through the Dashboard or API
117-
4. (Optional) Add your previous IdP as a connector for SSO
116+
1. **Keep using your standalone IdP** - No changes required, your setup continues to work
117+
2. **Add your IdP as an external provider** - Keep your IdP but add it as an OIDC provider alongside local users
118+
3. **Migrate to local users** - Export users from your IdP and recreate them as local users
118119

119120
<Note>
120121
User data and network configurations are preserved during migration. Only authentication changes—users may need to re-authenticate after the switch.

src/pages/selfhosted/self-hosted-vs-cloud-netbird.mdx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,16 @@ peer-to-peer connectivity, fallback relayed connections through a network of geo
1818
and overall system reliability and availability. It is not an easy task to deploy and maintain such infrastructure in
1919
a reliable manner. NetBird is not just one VPN server. You can read more about how NetBird works [here](/about-netbird/how-netbird-works).
2020

21-
## What's New: Simplified Self-Hosting
21+
## What's New: No External IdP Required
2222

23-
Starting with version X.XX, self-hosting NetBird has become significantly easier with the introduction of the **embedded identity provider**. Previously, self-hosting required setting up and maintaining a separate identity provider (like Zitadel, Keycloak, or Auth0). Now, NetBird includes a built-in IdP powered by [Dex](https://dexidp.io/), which means:
23+
Starting with version X.XX, self-hosting NetBird has become significantly easier. Previously, self-hosting required setting up and maintaining a separate identity provider (like Zitadel, Keycloak, or Auth0). Now, the Management service supports **local user management** directly, which means:
2424

25+
- **No external IdP required** - Create and manage users directly in NetBird
2526
- **Fewer containers** to deploy and maintain (4-5 vs 7+ previously)
2627
- **Lower resource requirements** (~1GB RAM vs 2-4GB previously)
27-
- **No external IdP configuration** required
2828
- **User management directly in the Dashboard**
29-
- **Optional SSO connectors** if you want to integrate with Google, Microsoft, Okta, etc.
29+
- **Optional external IdPs** - Connect Google, Microsoft, Okta, etc. if you want SSO
30+
- **Multiple IdPs supported** - Configure multiple OIDC providers simultaneously
3031

3132
This makes self-hosting a more viable option for homelabs, small teams, and proof-of-concept deployments.
3233

@@ -37,7 +38,7 @@ machines to establish direct point-to-point connections and for network administ
3738
e.g., control network access.
3839

3940
When running the self-hosted version, you are responsible for installing and maintaining all the components as well as backing up
40-
and securing the data. With the new embedded IdP, this burden is reduced—you no longer need to maintain a separate identity provider infrastructure.
41+
and securing the data. With local user management built into the Management service, this burden is significantly reduced—you no longer need to maintain separate identity provider infrastructure.
4142

4243
The cloud-hosted NetBird only requires you to install the client software (NetBird agent) on your machines and log them in to the network.
4344
The cloud-hosted version is more suitable for organizations that want a hassle-free solution that is easy to set up and maintain.
@@ -78,9 +79,10 @@ your critical network infrastructure.
7879

7980
| Aspect | Self-Hosted | Cloud-Hosted |
8081
|--------|-------------|--------------|
81-
| **Setup time** | ~5 minutes with embedded IdP | Instant |
82+
| **Setup time** | ~5 minutes with local users | Instant |
8283
| **Infrastructure** | You manage | We manage |
83-
| **Identity provider** | Built-in (or bring your own) | Managed |
84+
| **Identity provider** | Built-in local users (+ optional external IdPs) | Managed |
85+
| **Multiple IdPs** | Yes, OIDC-compatible | Yes |
8486
| **Relay servers** | Single instance (or DIY geo-distribution) | Geo-distributed globally |
8587
| **High availability** | DIY | Included |
8688
| **SCIM provisioning** | Enterprise license | Included (Business+) |

0 commit comments

Comments
 (0)