Okta SSO with NetBird Self-Hosted
Okta is a cloud-based identity and access management service for enterprise use, providing single sign-on, multi-factor authentication, and lifecycle management.
Management Setup (Recommended)
Add Okta as an external IdP directly in the NetBird Management Dashboard. This is the simplest approach and recommended for most deployments.
Prerequisites
- NetBird self-hosted with embedded IdP enabled
- Okta Workforce Identity Cloud account
Step 1: Start Creating OIDC Application in Okta
- Navigate to Okta Admin Dashboard
- Click Applications → Applications
- Click Create App Integration

- Select:
- Sign-in method:
OIDC - OpenID Connect - Application type:
Web Application
- Sign-in method:

- Click Next
- Fill in:
- App integration name:
NetBird - Grant type:
Authorization Code - Leave redirect URIs empty for now (you'll add this in Step 3)
- App integration name:
- Under Assignments, select an option for controlled access:
- Allow everyone in your organization to access (recommended for testing)
- Limit access to selected groups (for production)
- Skip group assignment for now (assign later)

- Don't click Save yet — keep this tab open and proceed to Step 2
Step 2: Get Redirect URL from NetBird
- Open a new tab or window and log in to your NetBird Dashboard
- Navigate to Settings → Identity Providers
- Click Add Identity Provider
- Fill in the fields:
| Field | Value |
|---|---|
| Type | Okta |
| Name | Okta (or your preferred display name) |
| Client ID | From Okta application (will fill after Step 3) |
| Client Secret | From Okta application (will fill after Step 3) |
| Issuer | Your Okta URL (e.g., https://your-org.okta.com) |
- Copy the Redirect URL that NetBird displays (but don't click Add Provider yet)

Step 3: Complete Okta Application Setup
- Return to the Okta tab
- In the Sign-in redirect URIs field, paste the redirect URL you copied from NetBird

- Click Save
- Note the Client ID and Client Secret — you'll need these for Step 4

Step 4: Complete NetBird Setup
- Return to the NetBird tab
- Fill in the Client ID and Client Secret from Step 3

- Click Add Provider
Step 5: Test the Connection
- Log out of NetBird Dashboard
- On the login page, you should see an "Okta" button
- Click it and authenticate with your Okta credentials
- You should be redirected back to NetBird and logged in. Unless your user approval setting were changed you will need to log back into your local admin account to approve the user.
Configuring JWT 'groups' Claim
To sync Okta groups with NetBird, you need to configure Okta to include a groups claim in the ID token. There are two methods depending on your Okta setup.
Method 1: Application-Level Configuration (Recommended)
This method works with Okta's org authorization server and is the simplest approach:
- In Okta Admin Console, go to Applications → Applications
- Select your NetBird application
- Go to the Sign On tab
- Click Edit in the OpenID Connect ID Token section
- Under Group claim type, select Filter
- In Group claims filter:
- Claim name:
groups - Filter: Select Matches regex and enter
.*(to include all groups)
- Claim name:
- Click Save

Method 2: Custom Authorization Server
If you're using a custom authorization server (required for access token claims):
- In Okta Admin Console, go to Security → API
- Select your custom authorization server
- Go to the Claims tab
- Click Add Claim
- Configure the claim:
- Name:
groups - Include in token type:
ID Token(select Always) - Value type:
Groups - Filter: Select Matches regex and enter
.*
- Name:
- Click Create

The groups claim has a limit of 100 groups. If a user belongs to more than 100 groups that match the filter, the request will fail. Use a more specific filter (e.g., ^NetBird-.*) to limit the groups included.
Enable JWT Group Sync in NetBird
After configuring Okta:
- In NetBird Dashboard, go to Settings → Groups
- Enable JWT group sync
- Set JWT claim to
groups - Optionally configure JWT allow groups to restrict access
Standalone Setup (Advanced)
Use Okta as your primary identity provider instead of NetBird's embedded IdP. This option gives you full control over authentication and user management, is recommended for experienced Okta administrators as it also requires additional setup and ongoing maintenance.
For most deployments, the embedded IdP 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 Management Setup (Recommended) section above.
For detailed instructions on the standalone setup, see the Okta SSO with NetBird Self-Hosted (Legacy) documentation.
If you prefer to have full control over authentication, consider self-hosted alternatives like PocketID.
Troubleshooting
"Invalid redirect URI" error
- Ensure all redirect URIs are configured in Okta
- Check for trailing slashes
- Verify the application type matches the use case
"Invalid issuer" error
- Ensure the issuer is set to use the Okta URL (not dynamic)
- Verify the OIDC configuration endpoint returns valid JSON

