Skip to content

Commit 4c4c056

Browse files
Merge pull request mendix#9013 from mendix/kv-user-types
User type info update for the IAM modules.
2 parents b4085a0 + 7725892 commit 4c4c056

4 files changed

Lines changed: 25 additions & 7 deletions

File tree

content/en/docs/appstore/use-content/platform-supported-content/modules/SAML/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ You can set up custom user provisioning by selecting the **IdP Configuration** t
457457
* **Allow the module to create users** – This enables the module to create users based on user provisioning and attribute mapping configurations. When disabled, it will still update existing users. However, for new users, it will display an exception message stating that the login action was successful but no user has been configured.
458458
* By default, the value is set to *Yes*.
459459
* **Default Userrole** – the role assigned to newly created users and remains unchanged even when the user's details are updated. You can select one default user role. To assign additional roles, use the Access Token Parsing Microflow. If the Access Token Processing Microflow is selected, OIDC verifies the updated default role configuration and applies any changes to the user's role. Note that, bulk updates for existing users are not automated when the default role configuration is changed.
460-
* **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.
460+
* **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. For more information, see [Populate User Types](/howto/monitoring-troubleshooting/populate-user-type/).
461461
* By default, the value is set to *Internal*.
462462
463463
2. Under **Attribute Mapping**, for each piece of information you want to add to your custom user entity, select an **IdP Attribute** (claim) and specify the **Configured Entity Attribute** where you want to store the information.

content/en/docs/appstore/use-content/platform-supported-content/modules/oidc.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -561,9 +561,9 @@ You can set up custom user provisioning once your app is running using the `OIDC
561561
* **Allow the module to create users** – this enables the module to create users based on user provisioning and attribute mapping configurations. When disabled, it will still update existing users. However, for new users, it will display an exception message stating that the login action was successful but no user has been configured.
562562
* By default, the value is set to ***Yes***.
563563
* **Default Userrole** – the role assigned to newly created users and remains unchanged even when the user's details are updated. You can select one default user role. To assign additional roles, use the Access Token Parsing Microflow. If the Access Token Processing Microflow is selected, OIDC verifies the updated default role configuration and applies any changes to the user's role. Note that, bulk updates for existing users are not automated when the default role configuration is changed.
564-
* **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.
564+
* **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. For more information, see [Populate User Types](/howto/monitoring-troubleshooting/populate-user-type/).
565565
* By default, the value is set to ***Internal***.
566-
566+
567567
5. Under **Attribute Mapping**, for each piece of information you want to add to your custom user entity, select an **IdP Attribute** (claim) and specify the **Configured Entity Attribute** where you want to store the information.
568568

569569
Note the following:

content/en/docs/appstore/use-content/platform-supported-content/modules/scim.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ In the **Provisioning** tab of the SCIM server configuration, you need to config
245245
* **Allow the module to create users**: this enables the module to create users based on user provisioning and attribute mapping configurations.
246246
* By default, the value is set to ***Yes***.
247247
* **Default Userrole** – the role assigned to newly created users and remains unchanged even when the user's details are updated. You can select one default user role. To assign additional roles, use the Access Token Parsing Microflow. If the Access Token Processing Microflow is selected, OIDC verifies the updated default role configuration and applies any changes to the user's role. Note that, bulk updates for existing users are not automated when the default role configuration is changed.
248-
* **User Type**: this allows you to configure end-users of your application as internal or external. It is created when the user is created and updated whenever user details, such as name, email, or active status, are changed.
248+
* **User Type**: this allows you to configure end-users of your application as internal or external. It is created when the user is created and updated whenever user details, such as name, email, or active status, are changed. For more information, see [Populate User Types](/howto/monitoring-troubleshooting/populate-user-type/).
249249
* By default, the value is set to ***Internal***.
250250
* **Attribute Mapping**: under **Attribute Mapping**, select an **IdP Attribute** (claim) for each piece of information you want to add to your custom user entity. Specify the **Configured Entity Attribute** where you want to store the information.
251251

content/en/docs/howto/monitoring-troubleshooting/populate-user-type.md

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,25 @@ The *Mendix Metering* module relies on this attribute to ascertain the end-user
2424

2525
{{< figure src="/attachments/howto/monitoring-troubleshooting/populate-user-type/user-type-enumeration.png" class="no-border" >}}
2626

27-
## Approach
27+
## Assigning UserType for Existing Users of IAM Modules
28+
29+
The simplest method to set the user type is by using the Identity and Access Management (IAM) modules, which require only configuration without the need to develop a microflow. Mendix offers you the following IAM modules:
30+
31+
* [OIDC](https://docs.mendix.com/appstore/modules/oidc/)
32+
* [SCIM](https://docs.mendix.com/appstore/modules/scim/)
33+
* [SAML](https://docs.mendix.com/appstore/modules/saml/)
34+
35+
Alternatively, you can build a custom microflow as described in the [Populating UserType for Existing Users of an App](#using-microflow) section below.
36+
37+
When connecting your app with an IdP, set up the user type through the capabilities of the OIDC SSO, SCIM, or SAML module. The user type is now configured in the User Provisioning, which is integrated into the OIDC SSO, SCIM, and SAML modules. This means you can directly configure end-users of your application as `internal` or `external` in the **User Provisioning** tab of your app. Based on this configuration, users are updated each time they log in. These modules allow you to set the user type per IdP as the source of your end-users, assuming that separate IdPs are used for `internal` and `external` users.
38+
39+
For more information, refer to the User Provisioning section of the following modules:
40+
41+
* [OIDC SSO](/appstore/modules/oidc/#custom-provisioning-rt)
42+
* [SCIM](/appstore/modules/scim/#user-provisioning)
43+
* [SAML](/appstore/modules/saml/#custom-provisioning-rt)
44+
45+
## Assigning UserType Using a Microflow
2846

2947
{{% alert color="info" %}}
3048
This approach is for end-users who are already set up in your app. For new end-users who onboard into your app, you can implement a similar logic to set the UserType attribute during initial end-user creation.
@@ -34,14 +52,14 @@ Outlined below is an example of a module that can be used to update UserType att
3452

3553
### Domain model
3654

37-
In the example below, our aim is to update UserType attribute of UserReportInfo entity. However, the entity `UserReportInfo` is protected in the System module and has no access rules. As a result, it cannot be exposed directly in the UI pages.
55+
In the example below, our aim is to update UserType attribute of `UserReportInfo` entity. However, the entity `UserReportInfo` is protected in the System module and has no access rules. As a result, it cannot be exposed directly in the UI pages.
3856
Therefore, the approach we take is to create a new non-persistable entity, `UserTypeReport`, which we will populate based on the values of `UserReportInfo` to show in the UI.
3957

4058
{{< figure src="/attachments/howto/monitoring-troubleshooting/populate-user-type/usertypereport.png" class="no-border" >}}
4159

4260
{{< figure src="/attachments/howto/monitoring-troubleshooting/populate-user-type/usertypereport-properties.png" class="no-border" >}}
4361

44-
### Populating **UserType** for Existing Users of an App
62+
### Populating **UserType** for Existing Users of an App {#using-microflow}
4563

4664
1. Create a microflow `User_RetrieveOrCreateUserReportInfo` which will ensure that a `UserReportInfo` object exists for a given `User`.
4765

0 commit comments

Comments
 (0)