diff --git a/src/pages/selfhosted/identity-providers/authentik.mdx b/src/pages/selfhosted/identity-providers/authentik.mdx
index 23c4aeb6..b5e37011 100644
--- a/src/pages/selfhosted/identity-providers/authentik.mdx
+++ b/src/pages/selfhosted/identity-providers/authentik.mdx
@@ -91,7 +91,7 @@ Use Authentik as your primary identity provider instead of NetBird's embedded Id
For most deployments, the [embedded IdP](/selfhosted/identity-providers#local-user-management) is the simpler choice — it's built into NetBird, fully integrated, and requires minimal configuration to get started. For this implementation, go back up to the [Connector Setup (Recommended)](#connector-setup-recommended) section above.
-If you prefer not to self-host an Identity and Access Management solution, you could use a managed alternative like [Auth0](/selfhosted/identity-providers/auth0).
+If you prefer not to self-host an Identity and Access Management solution, you could use a managed alternative like [Auth0](/selfhosted/identity-providers/managed/auth0).
### Prerequisites
diff --git a/src/pages/selfhosted/identity-providers/index.mdx b/src/pages/selfhosted/identity-providers/index.mdx
index 237ea195..7618197c 100644
--- a/src/pages/selfhosted/identity-providers/index.mdx
+++ b/src/pages/selfhosted/identity-providers/index.mdx
@@ -418,9 +418,9 @@ External identity providers give you:
| Provider | Type | Best For |
|----------|------|----------|
| [**Generic OIDC**](#adding-external-identity-providers) | `oidc` | Any OIDC-compliant provider |
-| [**Google**](/selfhosted/identity-providers/google) | `google` | Google Workspace, personal Google accounts |
-| [**Microsoft**](/selfhosted/identity-providers/microsoft) | `microsoft` / `entra` | Personal accounts, Azure AD / Entra ID |
-| [**Okta**](/selfhosted/identity-providers/okta) | `okta` | Enterprise SSO |
+| [**Google**](/selfhosted/identity-providers/managed/google-workspace) | `google` | Google Workspace, personal Google accounts |
+| [**Microsoft**](/selfhosted/identity-providers/managed/microsoft-entra-id) | `microsoft` / `entra` | Personal accounts, Azure AD / Entra ID |
+| [**Okta**](/selfhosted/identity-providers/managed/okta) | `okta` | Enterprise SSO |
| [**Zitadel**](/selfhosted/identity-providers/zitadel) | `zitadel` | Self-hosted Zitadel |
| [**Keycloak**](/selfhosted/identity-providers/keycloak) | `oidc` | Self-hosted Keycloak |
| [**Authentik**](/selfhosted/identity-providers/authentik) | `oidc` | Self-hosted Authentik |
@@ -449,8 +449,8 @@ The Identity Providers tab is only visible when `embedded_idp_enabled` is `true`
For detailed setup instructions for each provider, see the individual provider pages:
-- [Google](/selfhosted/identity-providers/google)
-- [Microsoft](/selfhosted/identity-providers/microsoft)
+- [Google Workspace](/selfhosted/identity-providers/managed/google-workspace)
+- [Microsoft Entra ID](/selfhosted/identity-providers/managed/microsoft-entra-id)
- [Keycloak](/selfhosted/identity-providers/keycloak)
- [Zitadel](/selfhosted/identity-providers/zitadel)
- [All Providers →](/selfhosted/identity-providers)
@@ -625,11 +625,11 @@ Managed Identity Providers handle infrastructure and maintenance for you. See ea
| Provider | Description |
|----------|-------------|
-| [**Google**](/selfhosted/identity-providers/google) | Google accounts and Google Workspace authentication |
-| [**Microsoft**](/selfhosted/identity-providers/microsoft) | Microsoft personal accounts and Entra ID (Azure AD) for work accounts |
-| [**Okta**](/selfhosted/identity-providers/okta) | Enterprise identity and access management with extensive integrations |
-| [**Auth0**](/selfhosted/identity-providers/auth0) | Flexible authentication service with customization options |
-| [**JumpCloud**](/selfhosted/identity-providers/jumpcloud) | Cloud directory platform with identity and device management |
+| [**Google Workspace**](/selfhosted/identity-providers/managed/google-workspace) | Google accounts and Google Workspace authentication |
+| [**Microsoft Entra ID**](/selfhosted/identity-providers/managed/microsoft-entra-id) | Microsoft personal accounts and Entra ID (Azure AD) for work accounts |
+| [**Okta**](/selfhosted/identity-providers/managed/okta) | Enterprise identity and access management with extensive integrations |
+| [**Auth0**](/selfhosted/identity-providers/managed/auth0) | Flexible authentication service with customization options |
+| [**JumpCloud**](/selfhosted/identity-providers/managed/jumpcloud) | Cloud directory platform with identity and device management |
---
@@ -637,6 +637,7 @@ Managed Identity Providers handle infrastructure and maintenance for you. See ea
In addition to OIDC-based authentication, NetBird supports provisioning users and groups through SCIM and the API. However, this functionality is not available in the open source Community Edition. It is offered only in the cloud-managed version of NetBird or through a [Commercial License](https://netbird.io/pricing#on-prem) for enterprise self-hosted deployments.
+
## Migration Guide
If you have an existing NetBird deployment using a standalone IdP (like Zitadel from the previous quickstart), you have several options:
diff --git a/src/pages/selfhosted/identity-providers/keycloak.mdx b/src/pages/selfhosted/identity-providers/keycloak.mdx
index 5c58c93d..33a3b3da 100644
--- a/src/pages/selfhosted/identity-providers/keycloak.mdx
+++ b/src/pages/selfhosted/identity-providers/keycloak.mdx
@@ -76,7 +76,7 @@ Use Keycloak as your primary identity provider instead of NetBird's embedded IdP
For most deployments, the [embedded IdP](/selfhosted/identity-providers#local-user-management) is the simpler choice — it's built into NetBird, fully integrated, and requires minimal configuration to get started. For this implementation, go back up to the [Connector Setup (Recommended)](#connector-setup-recommended) section above.
-If you prefer not to self-host an Identity and Access Management solution, you could use a managed alternative like [Auth0](/selfhosted/identity-providers/auth0).
+If you prefer not to self-host an Identity and Access Management solution, you could use a managed alternative like [Auth0](/selfhosted/identity-providers/managed/auth0).
### Expected Result
diff --git a/src/pages/selfhosted/identity-providers/zitadel.mdx b/src/pages/selfhosted/identity-providers/zitadel.mdx
index e6481ea4..e89a363c 100644
--- a/src/pages/selfhosted/identity-providers/zitadel.mdx
+++ b/src/pages/selfhosted/identity-providers/zitadel.mdx
@@ -286,4 +286,4 @@ If you deployed NetBird using the previous quickstart script with Zitadel:
- [Zitadel Documentation](https://zitadel.com/docs)
- [Zitadel GitHub](https://github.com/zitadel/zitadel)
- [Embedded IdP Overview](/selfhosted/identity-providers#local-user-management)
-- [Migration Guide](/selfhosted/identity-providers/migration)
\ No newline at end of file
+- [Migration Guide](/selfhosted/identity-providers#migration-guide)
\ No newline at end of file
diff --git a/src/pages/selfhosted/selfhosted-guide.mdx b/src/pages/selfhosted/selfhosted-guide.mdx
index 893a458c..faa7b2f8 100644
--- a/src/pages/selfhosted/selfhosted-guide.mdx
+++ b/src/pages/selfhosted/selfhosted-guide.mdx
@@ -144,11 +144,11 @@ Pick the one that suits your needs, follow the **Standalone Setup (Advanced)** s
- [PocketID](/selfhosted/identity-providers/pocketid) - Lightweight self-hosted option
**Managed options**
-- [Microsoft Entra ID](/selfhosted/identity-providers/microsoft) - Azure AD / Microsoft 365
-- [Google Workspace](/selfhosted/identity-providers/google) - Google accounts
-- [Okta](/selfhosted/identity-providers/okta) - Enterprise SSO
-- [Auth0](/selfhosted/identity-providers/auth0) - Flexible auth platform
-- [JumpCloud](/selfhosted/identity-providers/jumpcloud) - Cloud directory
+- [Microsoft Entra ID](/selfhosted/identity-providers/managed/microsoft-entra-id) - Azure AD / Microsoft 365
+- [Google Workspace](/selfhosted/identity-providers/managed/google-workspace) - Google accounts
+- [Okta](/selfhosted/identity-providers/managed/okta) - Enterprise SSO
+- [Auth0](/selfhosted/identity-providers/managed/auth0) - Flexible auth platform
+- [JumpCloud](/selfhosted/identity-providers/managed/jumpcloud) - Cloud directory
Each provider page includes both "Connector Setup" (for use with embedded IdP) and "Standalone Setup (Advanced)" sections. For this guide, follow the **Standalone Setup** section.
@@ -309,7 +309,7 @@ If you've deployed NetBird using this advanced guide and want to simplify your s
2. Users can continue logging in with their existing credentials
3. You can gradually transition to local user management
-See the [Migration Guide](/selfhosted/identity-providers/migration) for detailed instructions.
+See the [Migration Guide](/selfhosted/identity-providers#migration-guide) for detailed instructions.
## Get in touch
diff --git a/src/pages/selfhosted/selfhosted-quickstart.mdx b/src/pages/selfhosted/selfhosted-quickstart.mdx
index b89f02ce..5c5b0124 100644
--- a/src/pages/selfhosted/selfhosted-quickstart.mdx
+++ b/src/pages/selfhosted/selfhosted-quickstart.mdx
@@ -225,7 +225,7 @@ If you have an existing Zitadel deployment and want to migrate:
1. **Option A**: Keep Zitadel as an external provider—add it as an identity provider in Settings
2. **Option B**: Recreate users as local users and decommission Zitadel
-See the [Migration Guide](/selfhosted/identity-providers/migration) for detailed steps.
+See the [Migration Guide](/selfhosted/identity-providers#migration-guide) for detailed steps.
---