Skip to content

oidc_child: support Entra onPremisesImmutableId identifiers - #9038

Open
mmpleake wants to merge 1 commit into
SSSD:masterfrom
mmpleake:entra-hybrid-onprem-immutable-id
Open

oidc_child: support Entra onPremisesImmutableId identifiers#9038
mmpleake wants to merge 1 commit into
SSSD:masterfrom
mmpleake:entra-hybrid-onprem-immutable-id

Conversation

@mmpleake

@mmpleake mmpleake commented Aug 4, 2026

Copy link
Copy Markdown

IDP: Add Entra onPremisesImmutableId option

Hybrid AD and Entra ID deployments can use the AD objectGUID as the
SSSD user UUID while Entra ID returns a cloud-generated id from the
userinfo endpoint. This causes the IdP authentication result to fail
matching the cached AD user entry.

Add idp_auth_user_identifier_attr so deployments can explicitly choose
which userinfo attribute oidc_child should return as the user
identifier. When set to onPremisesImmutableId, oidc_child decodes the
base64-encoded AD objectGUID, converts it from Microsoft GUID byte
order, and returns the canonical UUID string.

The default behavior is unchanged. Existing IdP configurations continue
to use their current provider defaults unless the new option is set.

Resolves: #8574

:config: Added idp_auth_user_identifier_attr for IdP authentication.
This allows hybrid AD and Entra ID deployments to use
onPremisesImmutableId as the authentication identifier.

@justin-stephenson justin-stephenson left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for submitting this PR, it looks quite well done including documentation and tests.

Can you please remove the Merge branch 'SSSD:master' into entra-hybrid-onprem-immutable-id merge commit?

@sumit-bose will likely have more comments on this PR.

@mmpleake
mmpleake force-pushed the entra-hybrid-onprem-immutable-id branch 2 times, most recently from 32954f6 to 5ba5d84 Compare August 17, 2026 21:55
Add support for mapping users via the Entra ID onPremisesImmutableId attribute in the IdP/OIDC provider, enabling AD + Entra hybrid deployments to resolve on-prem identities.

Refactor oidc_child response handling into a dedicated oidc_child_user_id module so user-id extraction and response matching are more modular and independently testable, and add cmocka coverage in test_oidc_user_id.c. Update Makefile.am for the new sources and the string_utils reference, and document the new option in sssd-idp.5.

Assisted-By: Claude (Anthropic), and other generative AI tools (multiple models) using the AI Incubator sandbox provided by the Center for AI at Pacific Northwest National Laboratory (PNNL)
@mmpleake
mmpleake force-pushed the entra-hybrid-onprem-immutable-id branch from 5ba5d84 to 1b8d3a4 Compare August 17, 2026 21:59
@alexey-tikhonov alexey-tikhonov added the no-backport This should go to target branch only. label Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-backport This should go to target branch only.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

oidc_child: AD+Entra hybrid authentication fails with UUID mismatch when using id_provider=ad and auth_provider=idp

4 participants