You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/en/docs/marketplace/platform-supported-content/modules/scim/using-scim-with-oidc.md
+14-7Lines changed: 14 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ The following decision flow diagram shows how to choose the correct identifier-m
16
16
17
17
## Scenarios
18
18
19
-
### Scenario 1: Aligning OIDC and SCIM Identifiers to Update Existing Users
19
+
### Scenario 1: Aligning OIDC and SCIM Identifiers To Update Existing Users
20
20
21
21
This scenario applies when users have already authenticated to the Mendix application using OIDC and the customer subsequently enables SCIM for user provisioning. When a user first logs in via OIDC, the Identity Provider (IdP) provides a unique identifier, such as the `sub` claim (for example, `00u12abcD3XYZpqRs5d6`).
22
22
@@ -49,15 +49,15 @@ In Identity Providers such as Microsoft Entra ID, the SCIM provisioning flow doe
49
49
50
50
To allow SCIM to correctly identify and update existing users, configure the SCIM configuration as follows:
51
51
52
-
* In Attribute Mapping, map `userName` claim to `FullName` of Mendix custom entity attribute and map `externalID` claim to `System.User.Name`.
52
+
* In Attribute Mapping, map the `userName` claim to the `FullName` of the Mendix custom entity attribute and map the `externalID` claim to the`System.User.Name`.
53
53
* Set `customuserentity.FullName` as the Principal attribute.
54
54
55
55
With this configuration, Mendix matches SCIM users to existing OIDC-provisioned users using the shared `preferred_username` value and updates the existing user records instead of creating duplicates.
56
56
57
57
{{% alert color="info" %}}
58
58
Note the following:
59
59
60
-
* Only map IdP claims to `System.User.Name` in SCIM when it is used as the principal attribute for user matching; otherwise, duplicates may be created.
60
+
* Only map IdP claims to the `System.User.Name` in SCIM when it is used as the principal attribute for user matching; otherwise, duplicates may be created.
61
61
* To prevent duplicate users, map identifiers to an attribute that does not change over time, such as `objectId`. For more information, see [Configuring oid Claim in the OIDC SSO](/appstore/modules/oidc/#configuring-oid-claim-in-the-oidc-sso).
62
62
63
63
{{% /alert %}}
@@ -76,30 +76,37 @@ If the organization decides to standardize on `oid` as the long-term unique iden
76
76
* Add `oid` as a custom claim in the attribute mapping.
77
77
* Update the OIDC attribute mapping from `sub` to `oid`, changing `System.User.Name` to map from `oid` instead of `sub`.
78
78
79
-
If you are using `sub` already and have never used `oid`, it can be mapped to System.User.name. Otherwise,
79
+
If you are using `sub` already and have never used `oid` before, it can be mapped to `System.User.Name`. Otherwise, ensure that existing users are aligned with the `oid` value to avoid duplicate user creation.
80
80
81
81
2. SCIM configuration
82
82
83
83
* Change the SCIM principal attribute from `customuserentity.FullName` to `Name`.
84
-
* Ensure SCIM provisioning uses `externalId`maped to `System.User.Name` (containing the `oid` value).
84
+
* Ensure SCIM provisioning uses the `externalId`mapped to the`System.User.Name` (containing the `oid` value).
85
85
86
86
This alignment ensures that both authentication (OIDC) and provisioning (SCIM) consistently reference the same Mendix user based on a single, stable identifier.
87
87
88
88
### Scenario 3: No Existing Shared Identifier — Introducing a New Stable Attribute {#new-stable-attribute}
89
89
90
90
This scenario applies when a Mendix application has already provisioned users through the OIDC SSO module, but no identifier suitable for SCIM correlation exists in the Mendix user data.
91
91
92
-
In the existing configuration, users authenticate via OIDC and the `sub` claim (for example, `00u12abcD3XYZpqRs5d6`) is mapped to `System.User.Name` and configured as the OIDC principal attribute. No secondary identifiers—such as `preferred_username` or `email`, were mapped during the OIDC login process. As a result, the Mendix database contains only the `sub` value as the user identifier.
92
+
In the existing configuration, users authenticate via OIDC, and the `sub` claim (for example, `00u12abcD3XYZpqRs5d6`) is mapped to `System.User.Name` and configured as the OIDC principal attribute. No secondary identifiers—such as `preferred_username` or `email` were mapped during the OIDC login process. As a result, the Mendix database contains only the `sub` value as the user identifier.
93
93
94
94
Because SCIM provisioning does not support the OIDC `sub` claim, SCIM cannot use this identifier to locate existing users. To enable consistent user matching across OIDC and SCIM, a new stable identifier must be introduced and stored in the Mendix user entity. To resolve this limitation, OIDC must be updated to send an additional unique attribute, such as `preferred_username`, which can be shared with SCIM and used for user correlation. This new identifier must be mapped to a Mendix user attribute (for example, `customuserentity.FullName`). Existing users must then log in at least once after the mapping change to ensure the new identifier is populated in the Mendix database.
95
95
96
96
To implement this scenario, do the following:
97
97
98
98
1. Update OIDC attribute mapping:
99
99
Map a stable, unique claim from the IdP, for example, map `preferred_username` to the `customuserentity.FullName` (custom Entity attribute).
100
+
100
101
2. Propagate the new identifier:
101
102
Require existing users to log in via OIDC after the mapping is applied, so the new attribute is stored in Mendix.
102
-
3. Align SCIM configuration
103
+
104
+
3. Align SCIM configuration:
103
105
Configure SCIM to use the newly populated attribute for user matching and follow the same SCIM principal attribute and mapping approach described in the [Scenario 2: OIDC Unique Identifier Not Supported by the SCIM — Using an Alternative Stable Attribute](#alternative-stable-attribute) section above.
104
106
105
107
By introducing a shared, stable identifier and ensuring it is populated for all existing users, Mendix can reliably correlate SCIM provisioning requests with OIDC-authenticated users and update existing records instead of creating duplicates.
0 commit comments