diff --git a/en/asgardeo/docs/apis/organization-apis/restapis/claim-management.yaml b/en/asgardeo/docs/apis/organization-apis/restapis/claim-management.yaml index b4c4af498e..d1d7d67ef4 100644 --- a/en/asgardeo/docs/apis/organization-apis/restapis/claim-management.yaml +++ b/en/asgardeo/docs/apis/organization-apis/restapis/claim-management.yaml @@ -444,6 +444,14 @@ components: description: Specifies if the claim will be prompted during user registration and displayed on the user profile. example: true + uniquenessScope: + type: string + description: Specifies the scope of uniqueness validation for the claim value. + enum: + - NONE + - WITHIN_USERSTORE + - ACROSS_USERSTORES + example: "NONE" attributeMapping: type: array description: Userstore attribute mappings. diff --git a/en/asgardeo/docs/assets/img/guides/users/configure-attribute-uniqueness-validation.png b/en/asgardeo/docs/assets/img/guides/users/configure-attribute-uniqueness-validation.png new file mode 100644 index 0000000000..a1a82edad1 Binary files /dev/null and b/en/asgardeo/docs/assets/img/guides/users/configure-attribute-uniqueness-validation.png differ diff --git a/en/asgardeo/docs/guides/user-accounts/account-login/configure-login-identifiers.md b/en/asgardeo/docs/guides/user-accounts/account-login/configure-login-identifiers.md index 4c671dcbb2..3fc8029d84 100644 --- a/en/asgardeo/docs/guides/user-accounts/account-login/configure-login-identifiers.md +++ b/en/asgardeo/docs/guides/user-accounts/account-login/configure-login-identifiers.md @@ -30,4 +30,9 @@ To configure alternative login identifiers for your organization: 4. Click **Update** to save the changes. + {% if attribute_uniqueness_validation %} + !!! note + A consent prompt will appear if [uniqueness validation]({{base_path}}/guides/users/attributes/configure-unique-attributes/) is not already configured for the selected attribute(s). Without confirmation, the alternative login identifier configuration will not be applied. + {% endif %} + Upon successful configuration, the login and recovery user interfaces will update according to the defined login identifier attributes. \ No newline at end of file diff --git a/en/asgardeo/docs/guides/users/attributes/configure-unique-attributes.md b/en/asgardeo/docs/guides/users/attributes/configure-unique-attributes.md new file mode 100644 index 0000000000..6776aa3c0c --- /dev/null +++ b/en/asgardeo/docs/guides/users/attributes/configure-unique-attributes.md @@ -0,0 +1 @@ +{% include "../../../../../includes/guides/users/attributes/configure-unique-attributes.md" %} \ No newline at end of file diff --git a/en/asgardeo/features.json b/en/asgardeo/features.json index df662c3459..a8f4c8ab29 100644 --- a/en/asgardeo/features.json +++ b/en/asgardeo/features.json @@ -17,5 +17,12 @@ "guides/authentication/sso-integrations/add-zoom-template.md", "guides/authentication/sso-integrations/add-slack-template.md" ] + }, + + "attribute_uniqueness_validation": { + "enabled": true, + "page": [ + "guides/users/attributes/configure-unique-attributes.md" + ] } } diff --git a/en/asgardeo/mkdocs.yml b/en/asgardeo/mkdocs.yml index 483bf13658..aec307abd4 100644 --- a/en/asgardeo/mkdocs.yml +++ b/en/asgardeo/mkdocs.yml @@ -305,6 +305,7 @@ nav: - OIDC attribute mappings: guides/users/attributes/manage-oidc-attribute-mappings.md - OIDC scopes: guides/users/attributes/manage-scopes.md - SCIM2 attribute mappings: guides/users/attributes/manage-scim2-attribute-mappings.md + - Configure unique attributes: guides/users/attributes/configure-unique-attributes.md - Manage user stores: - Manage user stores: guides/users/user-stores/index.md - Connect a remote user store: guides/users/user-stores/configure-a-user-store.md diff --git a/en/identity-server/next/docs/apis/organization-apis/restapis/claim-mgt.yaml b/en/identity-server/next/docs/apis/organization-apis/restapis/claim-mgt.yaml index fd807937bb..7d0bfac832 100644 --- a/en/identity-server/next/docs/apis/organization-apis/restapis/claim-mgt.yaml +++ b/en/identity-server/next/docs/apis/organization-apis/restapis/claim-mgt.yaml @@ -448,6 +448,14 @@ components: description: Specifies if the claim will be prompted during user registration and displayed on the user profile. example: true + uniquenessScope: + type: string + description: Specifies the scope of uniqueness validation for the claim value. + enum: + - NONE + - WITHIN_USERSTORE + - ACROSS_USERSTORES + example: "NONE" attributeMapping: type: array description: Userstore attribute mappings. diff --git a/en/identity-server/next/docs/apis/restapis/claim-management.yaml b/en/identity-server/next/docs/apis/restapis/claim-management.yaml index e2410da268..1e9fdf055f 100644 --- a/en/identity-server/next/docs/apis/restapis/claim-management.yaml +++ b/en/identity-server/next/docs/apis/restapis/claim-management.yaml @@ -1102,6 +1102,14 @@ components: description: Specifies if the claim will be prompted during user registration and displayed on the user profile. example: true + uniquenessScope: + type: string + description: Specifies the scope of uniqueness validation for the claim value. + enum: + - NONE + - WITHIN_USERSTORE + - ACROSS_USERSTORES + example: "NONE" attributeMapping: type: array description: Userstore attribute mappings. @@ -1158,6 +1166,14 @@ components: description: Specifies if the claim will be prompted during user registration and displayed on the user profile. example: true + uniquenessScope: + type: string + description: Specifies the scope of uniqueness validation for the claim value. + enum: + - NONE + - WITHIN_USERSTORE + - ACROSS_USERSTORES + example: "NONE" attributeMapping: type: array description: Userstore attribute mappings. diff --git a/en/identity-server/next/docs/assets/img/guides/users/additional-properties.png b/en/identity-server/next/docs/assets/img/guides/users/additional-properties.png deleted file mode 100644 index 54a7172603..0000000000 Binary files a/en/identity-server/next/docs/assets/img/guides/users/additional-properties.png and /dev/null differ diff --git a/en/identity-server/next/docs/assets/img/guides/users/configure-attribute-uniqueness-validation.png b/en/identity-server/next/docs/assets/img/guides/users/configure-attribute-uniqueness-validation.png new file mode 100644 index 0000000000..4e78ade147 Binary files /dev/null and b/en/identity-server/next/docs/assets/img/guides/users/configure-attribute-uniqueness-validation.png differ diff --git a/en/identity-server/next/docs/guides/users/attributes/configure-unique-attributes.md b/en/identity-server/next/docs/guides/users/attributes/configure-unique-attributes.md index 141cd233c7..aed90c924a 100644 --- a/en/identity-server/next/docs/guides/users/attributes/configure-unique-attributes.md +++ b/en/identity-server/next/docs/guides/users/attributes/configure-unique-attributes.md @@ -1,43 +1 @@ -# Configure unique attributes - -{{product_name}} can be configured to retain the uniqueness of user attributes. This allows you to keep a user attribute value as a unique value within or across all userstores. - -Follow the steps below to configure: - -1. Open the `deployment.toml` file in the `/repository/conf` folder and add the following configurations. - - ``` toml - [identity_mgt.user_claim_update.uniqueness] - enable = true - scope_within_userstore = false # Optional. - ``` - - !!! note - To keep the uniqueness within a userstore, set `scope_within_userstore` as `true`. - -2. Restart the {{product_name}}. -3. On the {{ product_name }} Console, go to **User Attributes & Stores** > **Attributes**. -2. Click **Attributes** to see the list of attributes. -3. Click **Edit** for the attribute you want to update. -4. Go to the **Additional Properties** tab and add the following property to configure the attribute's uniqueness. - - - - - - - - - - - - - - -
Property NameProperty Value
isUniquetrue
- - ![additional-properties]({{base_path}}/assets/img/guides/users/additional-properties.png){: width="600" style="display: block; margin: 0; border: 0.3px solid lightgrey;"} - -6. Finally, click `+` button and `Update` to save the additional property. - -You can now verify the functionality by attempting to add users with an existing attribute value or updating the user attribute value of an existing user. \ No newline at end of file +{% include "../../../../../../includes/guides/users/attributes/configure-unique-attributes.md" %} \ No newline at end of file diff --git a/en/includes/guides/users/attributes/configure-unique-attributes.md b/en/includes/guides/users/attributes/configure-unique-attributes.md new file mode 100644 index 0000000000..a9a14e19d5 --- /dev/null +++ b/en/includes/guides/users/attributes/configure-unique-attributes.md @@ -0,0 +1,31 @@ +# Configure unique attributes + +User attributes can be configured to be unique. This setting determines the scope within which users must have a unique value for a given attribute. + +Follow the steps below to configure the uniqueness of user attributes: + +{% if product_name == "WSO2 Identity Server" and is_version != "7.0.0" %} +1. Open the `deployment.toml` file in the `/repository/conf` folder and add the following configurations. + + ```toml + [identity_mgt.user_claim_update.uniqueness] + enable = true + ``` + +2. Restart {{product_name}}. +{% endif %} + +3. On the {{ product_name }} Console, go to **User Attributes & Stores** > **Attributes**. +4. Under **Manage Attributes**, click **Attributes** to see the list of attributes. +5. Click the **Edit** icon corresponding to the attribute you want to update. +6. In the **General** tab of the attribute, select one of the following scopes from the **Uniqueness Validation** dropdown. + + - **None**: No validation is applied. Users can have duplicate values for the selected attribute. + - **Within User Store**: Users within the same user store cannot have duplicate values for the selected attribute. However, users in other user stores may have duplicates. + - **Across User Stores**: Attribute values are unique across all user stores preventing duplicates throughout the organization. + + ![additional-properties]({{base_path}}/assets/img/guides/users/configure-attribute-uniqueness-validation.png){: width="600" style="display: block; margin: 0; border: 0.3px solid lightgrey;"} + +7. Click **Update** to save the changes. + +You can now verify the functionality by attempting to add users with an existing attribute value or updating the user attribute value of an existing user. \ No newline at end of file