Skip to content

docs: fix self-hosted SCIM Tenant URL and explain duplicate users (embedded Entra SCIM) - #925

Draft
SunsetDrifter wants to merge 1 commit into
mainfrom
cc/entra-scim-user-matching
Draft

docs: fix self-hosted SCIM Tenant URL and explain duplicate users (embedded Entra SCIM)#925
SunsetDrifter wants to merge 1 commit into
mainfrom
cc/entra-scim-user-matching

Conversation

@SunsetDrifter

Copy link
Copy Markdown
Contributor

What

Two changes to the embedded Entra ID SCIM sync page (manage/team/idp-sync/embedded/microsoft-entra-id-scim-sync):

  1. Tenant URL: the page showed the NetBird Cloud endpoint (https://api.netbird.io/api/scim/v2?aadOptscim062020) on a self-hosted page. A reader who copies it verbatim points Entra provisioning at NetBird Cloud instead of their own server, and sync silently fails. Changed to https://YOUR_NETBIRD_DOMAIN/... with a note explaining it must be the reader's own management domain. (A customer hit exactly this and had to work it out themselves.)

  2. New section: "Why this mapping prevents duplicate users" after the User Attribute Mapping step. NetBird matches users by the Entra objectId, never by email. Entra's default externalId source is mailNickname, so anyone who syncs before correcting the mapping gets a second account for every user who already signed in, showing the identical email as the original. This is a recurring support case; the page previously said objectId is "the correct stable identifier" without naming the failure mode. The section explains the mechanism and includes remediation guidance for accounts that already have duplicates.

Both behaviors reproduced on a self-hosted Enterprise install (v0.76.3) with a real Entra tenant and enterprise-app provisioning.

Follow-ups (not in this PR)

  • The cloud twin page (manage/team/idp-sync/microsoft-entra-id-scim-sync) shares the externalId text and could take the same duplicate-users section.
  • The self-hosted setup wizard itself displays the Cloud Tenant URL (dashboard EntraSCIMSetup.tsx); the docs fix here covers the page, but the product string needs the same treatment.

The embedded Entra SCIM page showed the NetBird Cloud Tenant URL
(api.netbird.io) on a self-hosted page; a reader who copies it points
Entra at Cloud and provisioning silently fails. Use the reader's own
management domain instead.

Add a section explaining why externalId must map to objectId: NetBird
matches users by stable ID, not email, so a mailNickname externalId
creates a same-email duplicate of an existing sign-in user. Includes
remediation for accounts that already have duplicates.
@vercel

vercel Bot commented Aug 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview Aug 14, 2026 4:20pm

Request Review

@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8f5603f0-d422-49c5-872e-723f304a1da3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant