Skip to content

Commit fa1c401

Browse files
committed
proofreading
1 parent 1ec54eb commit fa1c401

1 file changed

Lines changed: 21 additions & 21 deletions

File tree

  • content/en/docs/marketplace/platform-supported-content/modules

content/en/docs/marketplace/platform-supported-content/modules/oidc.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -516,13 +516,13 @@ Example: `OIDC.Default_SAM_TokenProcessing_CustomATP`
516516
When the `IsClientGrantOnly` constant is set to *true*, the OIDC SSO module considers the configuration as Client Credential grant configuration.
517517
{{% /alert %}}
518518

519-
## User Provisioning (End-user Onboarding)
519+
## User Provisioning (End-User Onboarding)
520520

521521
Initially, your app will not have any end-users. You can onboard end-users into your app using one of the following mechanisms:
522522

523-
1. Manual user creation: an admin user can manually create users in your app. The [Administration](/appstore/modules/administration/) module helps you implement this mechanism.
524-
2. SCIM Protocol: use the SCIM protocol to let your IdP create and/or deactivate end-users. The SCIM module helps you implement the mechanism. For more information, see [SCIM](/appstore/modules/scim/).
525-
3. Just-in-Time (JIT) User Provisioning: in the JIT user provisioning, users will be created when they successfully log in via SSO. Both SAML and OIDC SSO support this mechanism. If you do not want JIT user provisioning, it is possible to disable it as described in the section [Runtime Configuration of End-user Onboarding](#custom-provisioning-rt) below.
523+
1. Manual user creation: An admin user can manually create users in your app. The [Administration](/appstore/modules/administration/) module helps you implement this mechanism.
524+
2. SCIM Protocol: Use the SCIM protocol to let your IdP create and/or deactivate end-users. The SCIM module helps you implement the mechanism. For more information, see [SCIM](/appstore/modules/scim/).
525+
3. Just-in-Time (JIT) User Provisioning: In the JIT user provisioning, users will be created when they successfully log in via SSO. Both SAML and OIDC SSO support this mechanism. If you do not want JIT user provisioning, it is possible to disable it as described in the section [Runtime Configuration of End-user Onboarding](#custom-provisioning-rt) below.
526526
4. Proprietary user provisioning: The Mendix Low-Code platform offers the flexibility to develop a customized user provisioning mechanism.
527527

528528
The OIDC SSO module supports two methods for configuration of JIT user provisioning:
@@ -536,14 +536,14 @@ From version 3.0.0 of the OIDC SSO module, you can configure user provisioning a
536536

537537
By default, end-users are provisioned using the `Administration.Account` entity. To use a custom user entity, you can configure it through JIT onboarding via runtime settings or by defining constants in deploy-time configuration, as described below:
538538

539-
#### Deploy-time Configuration of End-user Onboarding{#custom-provisioning-dep}
539+
#### Deploy-Time Configuration of End-User Onboarding{#custom-provisioning-dep}
540540

541541
You can set up custom user provisioning by setting constants when you deploy your app. You do not need a local MxAdmin user to do the necessary configurations. This is an automatable configuration in the CI/CD pipeline. However, the configuration has the following limitations compared to setting up provisioning using a microflow or changing the settings at runtime:
542542

543-
* You need to restart your app to apply changes to the constants
544-
* You cannot set custom mapping of IdP claims to attributes of your custom user entity
543+
* You need to restart your app to apply changes to the constants.
544+
* You cannot set custom mapping of IdP claims to attributes of your custom user entity.
545545

546-
You can set up custom user provisioning by setting the following constants. You can set default values when you build your app but can override these in the app's environment.
546+
You can set up custom user provisioning by setting the following constants. You can set default values when you build your app, but you can override these in the app's environment.
547547

548548
| Constant | Use | Notes | Example |
549549
| --- | --- | --- | --- |
@@ -560,9 +560,9 @@ You can set up custom user provisioning by setting the following constants. You
560560
You may have a requirement that users log in to your application only via SSO. However, when you deploy your app on the Mendix Cloud, the platform may still create an MxAdmin user with a local password. From version 2.1.0 of the UserCommons module, if the flag for the `DisableMxAdmin` constant is set to `True`, the MxAdmin user will be deactivated via the startup microflow `ASU_UserCommons_StartUp`.
561561
{{% /alert %}}
562562

563-
#### Runtime Configuration of End-user Onboarding{#custom-provisioning-rt}
563+
#### Runtime Configuration of End-User Onboarding{#custom-provisioning-rt}
564564

565-
By default, users are provisioned by [Default User Provisioning Configuration](#default). Optionally, you can customize user provisioning by [Modifying Default Attribute Mapping](#modify-default), [User Provisioning Using Your Custom User Entity](#custom_user_entity), or [User Provisioning Using a Microflow at Runtime](#microflow-at-runtime).
565+
By default, users are provisioned by the [Default User Provisioning Configuration](#default). Optionally, you can customize user provisioning by [Modifying Default Attribute Mapping](#modify-default), [User Provisioning Using Your Custom User Entity](#custom_user_entity), or [User Provisioning Using a Microflow at Runtime](#microflow-at-runtime).
566566

567567
You can set up just-in-time user provisioning as follows:
568568

@@ -576,7 +576,7 @@ Fields below are available in the **UserProvisioning** tab for the User Provisio
576576
* **The attribute where the user principal is stored** – a unique identifier associated with an authenticated user.
577577
* **Allow the module to create users** – this enables the module to create users based on configurations of JIT user provisioning and attribute mapping. When disabled, it will still update existing users. However, for new users, it will display an exception message in the log.
578578
* By default, the value is set to ***Yes***.
579-
* **User role** (optional) – the role which will be assigned to newly created users. This is optional and will be applied to all IdPs. You can select any user role as a default or keep the field empty. User Provisioning does not allow you to assign user roles dynamically. It can only set a default role. If you need additional user roles, use the Access Token Parsing microflow to assign multiple roles. For more information, see the [Dynamic Assignment of Userroles (Access Token Parsing)](#access-token-parsing) section below.
579+
* **User role** (optional) – the role that will be assigned to newly created users. This is optional and will be applied to all IdPs. You can select any user role as a default or keep the field empty. User Provisioning does not allow you to assign user roles dynamically. It can only set a default role. If you need additional user roles, use the Access Token Parsing microflow to assign multiple roles. For more information, see the [Dynamic Assignment of Userroles (Access Token Parsing)](#access-token-parsing) section below.
580580
* By default, the value is set to ***User***.
581581
* **User Type** – this allows you to configure end-users of your application as internal or external. It is created upon the creation of the user and updated each time the user logs in. It is a setting configured per IdP. If two IdPs are connected, one IdP may have the user type set to ***Internal*** while the other may have the user type set to ***External***.
582582
* By default, the value is set to ***Internal***.
@@ -585,14 +585,14 @@ Fields below are available in the **UserProvisioning** tab for the User Provisio
585585

586586
Note the following:
587587

588-
* You cannot use the IdP claim which is the primary attribute identifying the user and you cannot use the attribute you set in **The attribute where the user principal is stored**.
588+
* You cannot use the IdP claim, which is the primary attribute identifying the user, and you cannot use the attribute you set in **The attribute where the user principal is stored**.
589589
* You can map only one IdP claim to a Custom user Entity attribute.
590590
* The **IdP Attribute** is one of the fixed claims supported by the OIDC SSO module.
591591
* IdP Attributes(Claims) cannot be of type enum, autonumber, or an association.
592592

593593
* Optionally, you can select the microflow in the **Custom UserProvisioning** field to use custom logic for user provisioning. For more information, see the [User Provisioning Using a Microflow at Runtime](#microflow-at-runtime) section below.
594594

595-
* To facilitate upcoming enhancements to the platform, you need to perform some configuration so that Mendix can correctly identify end users. Correct identification is crucial for ensuring consistent and accurate end user metering and deduplication of end users across multiple applications in your landscape. For this reason, the UserCommons module features the **User Metering Named Identifier** entity in version 2.2.0 and above. If you have a multi-app internal user license or an external user license, you must persist the same value for the same end user across different apps, regardless of which modules you use. In most cases, the end user's email address is a good choice. Currently, Mendix uses the `system.user.name` to identify users, it will use the **User Metering Named Identifier** instead, unless it is not populated. For accurate user metering, you do not need to change what value is persisted in the `system.user.name`. You can continue to persist whatever value you are using there today. The `system.user.name` is often used for technical user identifiers, for example, the `oid` value when using the OIDC SSO module. For more information, see [Guidance on User Identifier](#guidance-user-identifier). Both `system.user.name` and `userCommons.NamedUserIdentifier.value` have a uniqueness constraint for the named user identifier. This means an app cannot have two users who share the same identifier value.
595+
* To facilitate upcoming enhancements to the platform, you need to perform some configuration so that Mendix can correctly identify end users. Correct identification is crucial for ensuring consistent and accurate end user metering and deduplication of end users across multiple applications in your landscape. For this reason, the UserCommons module features the **User Metering Named Identifier** entity in version 2.2.0 and above. If you have a multi-app internal user license or an external user license, you must persist the same value for the same end user across different apps, regardless of which modules you use. In most cases, the end user's email address is a good choice. Currently, Mendix uses the `system.user.name` to identify users, it will use the **User Metering Named Identifier** instead, unless it is not populated. For accurate user metering, you do not need to change what value is persisted in the `system.user.name`. You can continue to persist whatever value you are using there today. The `system.user.name` is often used for technical user identifiers, for example, the `oid` value when using the OIDC SSO module. For more information, see [Guidance on User Identifier](#guidance-user-identifier). Both `system.user.name` and `userCommons.NamedUserIdentifier.value` has a uniqueness constraint for the named user identifier. This means an app cannot have two users who share the same identifier value.
596596

597597
* If you want to use a user attribute other than email address for the **User Metering Named Identifier**, you can configure it on the **UserProvisioning** tab:
598598

@@ -608,7 +608,7 @@ If you are using module version 3.2.0 and below, you will need to refresh the mo
608608

609609
If the standard configuration meets your needs and your application does not have special user management requirements, you can use the default User Provisioning.
610610

611-
In default configuration, the custom user entity is set as `Administration.Account`, the principal attribute is set as `Name`, and the default attribute mapping is provided.
611+
In the default configuration, the custom user entity is set as `Administration.Account`, the principal attribute is set as `Name`, and the default attribute mapping is provided.
612612

613613
| IdP Attribute | Configured Entity Attribute |
614614
| -------------------- | --------------------------- |
@@ -621,7 +621,7 @@ In default configuration, the custom user entity is set as `Administration.Accou
621621
You may need a different or custom attribute mapping, for example, if you are configuring OIDC SSO and SCIM together and need a common identifier. For more information, see the [User Identifiers in the OIDC and SCIM Protocols](#user-identifiers-in-the-oidc-and-scim-protocols) section below.
622622

623623
In this case, you can modify the default attribute mapping.
624-
To do so, change the default **IdP Attribute** or the **Configured Entity Attribute**, by editing the mapping in the **Attribute Mapping** section within the **UserProvisioning** tab.
624+
To do so, change the default **IdP Attribute** or the **Configured Entity Attribute** by editing the mapping in the **Attribute Mapping** section within the **UserProvisioning** tab.
625625

626626
##### Creating IdP Attribute Manually
627627

@@ -636,7 +636,7 @@ Select the required attribute to use it in your mapping.
636636

637637
##### User Provisioning Using Your Custom User Entity{#custom_user_entity}
638638

639-
If you want to use your custom user entity which is a specialization of the `System.User` entity to store user information, select it in the **Custom user Entity (extension of System.User)** field by replacing the `Administration.Account` entity.
639+
If you want to use your custom user entity, which is a specialization of the `System.User` entity to store user information, select it in the **Custom user Entity (extension of System.User)** field by replacing the `Administration.Account` entity.
640640

641641
To configure custom JIT user provisioning, set up the fields listed in the [Runtime Configuration of End-user Onboarding](#custom-provisioning-rt) section above and save the configuration.
642642

@@ -655,7 +655,7 @@ Select it in the **Custom UserProvisioning** field. The custom microflow name mu
655655

656656
* **UserInfoParameter(UserCommons.UserInfoParam)**: A Mendix object containing user claims information through its associated objects. You can use this parameter to retrieve user provisioning configuration information.
657657
* **User(System.User)**: A Mendix object representing the user to be provisioned. Ensure that the selected microflow matches this parameter signature.
658-
* The microflow must return a **System.User** object to ensure proper user provisioning and updates. It will be executed after user creation or update of user. However, starting from version 2.0.0 of the UserCommons module, this is no longer mandatory.
658+
* The microflow must return a **System.User** object to ensure proper user provisioning and updates. It will be executed after user creation or the update of the user. However, starting from version 2.0.0 of the UserCommons module, this is no longer mandatory.
659659
* If you have added a new microflow, you need to refresh the module containing your microflow as described in the [Mx Model Reflection](/appstore/modules/model-reflection/).
660660

661661
### Configuring User Provisioning for Version 2.4.0 and Below
@@ -682,7 +682,7 @@ Do not change the `UserProvisioning_StandardOIDC` microflow. This may cause prob
682682
Since this feature is deprecated from version 3.0.0 of the module, you can do the custom user provisioning at runtime or deploy-time. For more information, see the [Runtime configuration of end-user on-boarding](#custom-provisioning-rt) and [Deploy-time configuration of end-user on-boarding](#custom-provisioning-dep) sections above.
683683
{{% /alert %}}
684684

685-
Review the microflow `CUSTOM_UserProvisioning` in the **USE_ME** > **1. Configuration** folder of the OIDC module. This is where you can change the way that end-users are provisioned in your app. The OpenID token is passed to the microflow as a parameter. Use this object to find an existing, or create a new, `System.User` object for the end-user. This is set as the return value of the microflow. You can find examples included in the **USE_ME** > **1. Configuration** > **User Provisioning Examples** folder.
685+
Review the microflow `CUSTOM_UserProvisioning` in the **USE_ME** > **1. Configuration** folder of the OIDC module. This is where you can change the way that end-users are provisioned in your app. The OpenID token is passed to the microflow as a parameter. Use this object to find an existing, or create a new `System.User` object for the end-user. This is set as the return value of the microflow. You can find examples included in the **USE_ME** > **1. Configuration** > **User Provisioning Examples** folder.
686686

687687
Make a single call from `CUSTOM_UserProvisioning` to your own module where you implement the provisioning flow you need. This way, it will be easy to install new versions of the OIDC SSO module over time without overwriting your custom provisioning.
688688

@@ -723,8 +723,8 @@ Role of user identifiers in OIDC and SCIM protocols:
723723
The default behavior for the OIDC SSO module is to persist the value of the `sub` claim in the system.user.name attribute. This is not forward-compatible with the introduction of SCIM. Therefore, for B2E applications connected with Entra ID for SSO, Mendix recommends the following:
724724

725725
* For any new application, use the `oid` claim as a user identifier by modifying the user provisioning flow. This will allow you to introduce SCIM.
726-
* For existing applications that do not persist user-specific application data (other than system.user or administration.account), modify the user provisioning flow to use the `oid` claim instead of the `sub` claim. Delete all system.user and administration.account records to remove old user data. This will re-provision the users, allowing you to introduce SCIM.
727-
* For existing applications that do not need to use SCIM, you can continue to use the default `sub` claim value or any other claim such as `preferred_username`.
726+
* For existing applications that do not persist user-specific application data (other than system.user or administration.account), modify the user provisioning flow to use the `oid` claim instead of the `sub` claim. Delete all `system.user`, and `administration.account` records to remove old user data. This will re-provision the users, allowing you to introduce SCIM.
727+
* For existing applications that do not need to use SCIM, you can continue to use the default `sub` claim value or any other claim, such as `preferred_username`.
728728
* For existing applications where you want to introduce SCIM, you need to define a migration strategy for the identifiers.
729729

730730
#### Configuring `oid` Claim in the OIDC SSO
@@ -733,7 +733,7 @@ By default, the `WellKnownendpoint` (Automatic configuration URL) does not inclu
733733

734734
1. Go to **Attribute Mapping** and click **New**.
735735
2. Select **Search** and click **New**.
736-
3. Create `oid` claim and map it to the Entity Attribute.
736+
3. Create an `oid` claim and map it to the Entity Attribute.
737737

738738
## API Authentication {#api-authentication}
739739

0 commit comments

Comments
 (0)