From cf783d11d810585f12d03334edaac8a33be870b4 Mon Sep 17 00:00:00 2001 From: Pasindu Yeshan Date: Tue, 8 Oct 2024 13:09:37 +0530 Subject: [PATCH 1/8] Add IS mobile verification on update doc. --- .../users/change-verification-settings.png | Bin 0 -> 196905 bytes .../mobile-verification-on-update.md | 356 ++++++++++++++++++ .../user-attribute-change-verification.md | 1 + en/identity-server/next/mkdocs.yml | 8 +- 4 files changed, 363 insertions(+), 2 deletions(-) create mode 100644 en/identity-server/next/docs/assets/img/guides/users/change-verification-settings.png create mode 100644 en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md create mode 100644 en/identity-server/next/docs/guides/users/attributes/user-attribute-change-verification.md diff --git a/en/identity-server/next/docs/assets/img/guides/users/change-verification-settings.png b/en/identity-server/next/docs/assets/img/guides/users/change-verification-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..daf78817fd6a11d9be9890d31235cfc04ec39b8b GIT binary patch literal 196905 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 + + Name + Description + Example + + + Twilio Account SID + Account SID received in the previous step. + YourAccountSID + + + Twilio Auth Token + Auth token received in the previous step. + YourAuthToken + + + Sender + Phone number that you received when creating the Twilio account. + +1234567890 + + + +??? note "Configuring Vonage" + To configure Vonage as your SMS provider, follow the steps below: + + - Login to [Vonage](https://dashboard.nexmo.com/sign-in){:target="_blank"} and create an account. + - Fill in the required fields and create the account. + - Login to the Vonage dashboard and copy the API Key and API Secret. + - Go to **SMS Provider** section in the {{ product_name }} Console and click the **Vonage** tab and fill the required fields. + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
Vonage API KeyUse the API Key from the previous step.YourAPIKey
Vonage API SecretUse the API Secret from the previous step.YourAPISecret
SenderThe number that the receiver will see when you send an SMS.+1234567890
+ +??? note "Configuring a Custom Provider" + If you are not using either Twilio or Vonage as the SMS provider, you can configure a custom SMS provider. Custom SMS provider configuration will pass the SMS data to the given URL as an HTTP request. + + To configure a custom SMS provider, in the **SMS Provider** section click the **Custom** tab and fill the required fields. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
SMS Provider URLURL of the SMS gateway where the payload should be published.https://api.example.com/api/v1
Content TypeContent type of the payload. Possible values are JSON or FORM (Optional).JSON
HTTP MethodHTTP method that should be used when publishing the payload to the provider URL. Possible values: PUT, POST (Optional). POST
Payload TemplateHow the payload template should be.
Placeholders:
\{\{body\}\} - Generated body of the SMS. (Example - This can be the OTP).
\{\{mobile\}\} - Number that this sms should be sent to.
Example JSON payload template:
{“content”: \{\{body\}\},“to”: \{\{mobile\}\}}}

(\{\{mobile\}\} and \{\{body\}\} will be replaced with the corresponding values at the runtime.)
HeadersCustom static headers need to be passed. If multiple headers need to be passed, they should be comma separated. (Optional)authorisation: qwer1234asdfzxcv, x-csrf: true, x-abc: some-value
+ +## Configure mobile attribute change verification: + +1. On the {{product_name}} Console, go to **User Attributes & Stores** > **Attributes**. + +2. Under **Manage Attributes**, click on **User Attribute Change Verification**. + +3. Configure the following properties: + + + + + + + + + +
Enable user mobile number verification on updateWhen enabled, this option triggers an SMS One-Time Password (OTP) verification process when the user updates their mobile number.
Enable mobile number verification by Privileged UsersAllows privileged users (such as administrators) to initiate mobile number verification on behalf of other users.
+ +4. Click **Update** to save the changes. + +## Try it out + +### Update the primary mobile number + +Given below is a sample request and the relevant response for updating the mobile number via a PATCH operation to SCIM 2.0 Users endpoint. + +!!! abstract "" + **Request** + ```curl + curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":[],"Operations":[{"op":[operation], + "value":{[attributeName]:[attribute value]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/[user ID] + ``` + --- + **Sample Request** + ```curl + curl -v -k --user bob:pass123 -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{"op":"replace","value":{"phoneNumbers":[{"type":"mobile","value":"0123456789"}]}}]}' + --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 + ``` + --- + **Sample Response** + ``` + { + "emails": [ + "bobsmith@abc.com" + ], + "meta": { + "location": "https://localhost:9443/scim2/Users/6d433ee7-7cd4-47a3-810b-bc09023bc2ce", + "lastModified": "2020-10-12T13:35:24.579Z", + "resourceType": "User" + }, + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User", + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" + ], + "roles": [ + { + "type": "default", + "value": "Internal/everyone" + } + ], + "name": { + "givenName": "Bob", + "familyName": "Smith" + }, + "id": "6d433ee7-7cd4-47a3-810b-bc09023bc2ce", + "userName": "bob123", + "phoneNumbers": [ + { + "type": "mobile", + "value": "0111111111" + } + ], + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { + "pendingMobileNumber": "0123456789" + } + } + ``` + +### Update the verified mobile numbers list + +Given below is a sample request and the relevant response for updating the verified mobile numbers via a PATCH +operation to SCIM 2.0 Users endpoint. + +!!! abstract "" + **Request** + ```curl + curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":[],"Operations":[{"op":[operation], + "value":{[attributeName]:[attribute value]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/[user ID] + ``` + --- + **Sample Request** + ```curl + curl -v -k --user bob:pass123 -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{"op":"replace","value":{"urn:scim:wso2:schema": {"verifiedMobileNumbers": "0111111111,0123456789"} + }}]}' + --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 + ``` + --- + **Sample Response** + ``` + { + "emails": [ + "bobsmith@abc.com" + ], + "meta": { + "location": "https://localhost:9443/scim2/Users/6d433ee7-7cd4-47a3-810b-bc09023bc2ce", + "lastModified": "2020-10-12T13:35:24.579Z", + "resourceType": "User" + }, + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User", + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" + ], + "roles": [ + { + "type": "default", + "value": "Internal/everyone" + } + ], + "name": { + "givenName": "Bob", + "familyName": "Smith" + }, + "id": "6d433ee7-7cd4-47a3-810b-bc09023bc2ce", + "userName": "bob123", + "phoneNumbers": [ + { + "type": "mobile", + "value": "0111111111" + } + ], + "urn:scim:wso2:schema": { + "mobileNumbers": "0111111111", + "verifiedMobileNumbers": "0111111111", + } + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { + "pendingMobileNumber": "0123456789" + } + } + ``` + +Upon receiving the response given above, the user will receive an SMS notification with a verification code to the new +mobile number. + +### Validate the verification code + +The user can submit the SMS OTP code using the validate-code API. +Given below is a sample request and the relevant response to submit the received verification code. + +!!! abstract "" + **Request** + ```curl + curl -k -v -X POST -H "Authorization: " -H "Content-Type: application/json" -d + '{ "code": "","properties": []}' "https://localhost:9443/api/identity/user/v1.0/me/validate-code" + ``` + --- + **Sample Request** + ```curl + curl -k -v -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{ "code": "123{{base_path}}","properties": []}' + "https://localhost:9443/api/identity/user/v1.0/me/validate-code" + ``` + --- + **Response** + ``` + "HTTP/1.1 202 Accepted" + ``` + +### Resend the verification code + +The user can request to resend a new SMS OTP code using the resend-code API. +Given below is a sample request and the relevant response to request a new verification code. + +!!! abstract "" + **Request** + ```curl + curl -X POST -H "Authorization: Basic " -H "Content-Type: application/json" -d '{"properties": []}' + "https://localhost:9443/api/identity/user/v1.0/me/resend-code" + ``` + + The verification scenario should be specified in the properties parameter of the request body as follows : + ``` + "properties": [{"key": "RecoveryScenario", "value": "MOBILE_VERIFICATION_ON_VERIFIED_LIST_UPDATE"}] + ``` + - `MOBILE_VERIFICATION_ON_UPDATE`: Used when verifying a newly updated mobile number for a user.
+ - `MOBILE_VERIFICATION_ON_VERIFIED_LIST_UPDATE`: Used when updating the list of verified mobile numbers for a user. + --- + **Sample Request** + ```curl + curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"properties": [{"key":"RecoveryScenario","value": "MOBILE_VERIFICATION_ON_UPDATE"}]}' + "https://localhost:9443/api/identity/user/v1.0/me/resend-code" + ``` + --- + **Response** + ``` + "HTTP/1.1 201 Created" + ``` + +--- + +Additionally, you can use the following curl command to resend a new SMS OTP code by a privileged user. + +**Sample** + +!!! abstract "" + **Request** + ```curl + curl -X POST -H "Authorization: Basic " -H "Content-Type: application/json" -d '{"user":{},"properties": []}' + "https://localhost:9443/api/identity/user/v1.0/resend-code" + ``` + + The user and the verification scenario should be specified in the request body as follows : + ``` + "user": {"username": "", "realm": ""} + "properties": [{"key":"RecoveryScenario", "value":"MOBILE_VERIFICATION_ON_UPDATE"}] + ``` + - `MOBILE_VERIFICATION_ON_UPDATE`: Used when verifying updated primary mobile number.
+ - `MOBILE_VERIFICATION_ON_VERIFIED_LIST_UPDATE`: Used when updating the list of verified mobile numbers. + --- + **Sample Request** + ```curl + curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"user":{"username": "admin","realm": "PRIMARY"},"properties": [{"key":"RecoveryScenario","value":"MOBILE_VERIFICATION_ON_UPDATE"}]}' "https://localhost:9443/api/identity/user/v1.0/resend-code" -k -v + ``` + --- + **Response** + ``` + "HTTP/1.1 201 Created" + ``` + diff --git a/en/identity-server/next/docs/guides/users/attributes/user-attribute-change-verification.md b/en/identity-server/next/docs/guides/users/attributes/user-attribute-change-verification.md new file mode 100644 index 0000000000..ed115cab5e --- /dev/null +++ b/en/identity-server/next/docs/guides/users/attributes/user-attribute-change-verification.md @@ -0,0 +1 @@ +{% include "../../../../../../includes/guides/users/attributes/user-attribute-change-verification.md" %} \ No newline at end of file diff --git a/en/identity-server/next/mkdocs.yml b/en/identity-server/next/mkdocs.yml index 9694d83050..46c442dab7 100644 --- a/en/identity-server/next/mkdocs.yml +++ b/en/identity-server/next/mkdocs.yml @@ -155,8 +155,8 @@ plugins: 'guides/identity-lifecycles/configure-active-directory-user-stores-for-scim-2.0-based-inbound-provisioning.md': 'guides/users/user-stores/configure-active-directory-user-stores-for-scim2.md' 'guides/identity-lifecycles/sp-for-inbound-provisioning.md': 'guides/users/manage-users.md' 'guides/identity-lifecycles/self-register-verification.md': 'guides/account-configurations/user-onboarding/self-registration.md' - 'guides/identity-lifecycles/enable-email-account-verification-for-an-updated-email-address.md': 'guides/users/attributes/manage-attributes.md' - 'guides/identity-lifecycles/enable-verification-for-updated-mobile-number.md': 'guides/users/attributes/manage-attributes.md' + 'guides/identity-lifecycles/enable-email-account-verification-for-an-updated-email-address.md': 'guides/users/attributes/email-verification-on-update.md' + 'guides/identity-lifecycles/enable-verification-for-updated-mobile-number.md': 'guides/users/attributes/mobile-verification-on-update.md' 'guides/my-account/my-account.md': 'guides/user-self-service/configure-self-service-portal.md' 'guides/user-self-service/customer-self-service-portal.md': 'guides/user-self-service/configure-self-service-portal.md' @@ -497,6 +497,10 @@ nav: - SCIM2 attribute mappings: guides/users/attributes/manage-scim2-attribute-mappings.md - Configure email address as the username: guides/users/attributes/enable-email-as-username.md - Configure unique attributes: guides/users/attributes/configure-unique-attributes.md + - User attribute change verification: + - Configure user attribute change verification: guides/users/attributes/user-attribute-change-verification.md + - Enable verification for updated email address: guides/users/attributes/email-verification-on-update.md + - Enable verification for updated mobile number: guides/users/attributes/mobile-verification-on-update.md - Manage user stores: - Manage user stores: guides/users/user-stores/index.md - Configure the primary user store: From e7887d255809524d1a6eab9f5639832de432c721 Mon Sep 17 00:00:00 2001 From: Pasindu Yeshan Date: Tue, 8 Oct 2024 18:33:28 +0530 Subject: [PATCH 2/8] Add email verification on update docs --- .../my-account-mobile-verification-code.png | Bin 0 -> 30596 bytes .../guides/users/my-account-verify-email.png | Bin 0 -> 24768 bytes .../guides/users/my-account-verify-mobile.png | Bin 0 -> 23570 bytes .../email-verification-on-update.md | 211 ++++++++++++++++++ .../mobile-verification-on-update.md | 60 +++-- 5 files changed, 250 insertions(+), 21 deletions(-) create mode 100644 en/identity-server/next/docs/assets/img/guides/users/my-account-mobile-verification-code.png create mode 100644 en/identity-server/next/docs/assets/img/guides/users/my-account-verify-email.png create mode 100644 en/identity-server/next/docs/assets/img/guides/users/my-account-verify-mobile.png create mode 100644 en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md diff --git a/en/identity-server/next/docs/assets/img/guides/users/my-account-mobile-verification-code.png b/en/identity-server/next/docs/assets/img/guides/users/my-account-mobile-verification-code.png new file mode 100644 index 0000000000000000000000000000000000000000..7f3d5ed31760fbace2fb4764abadc824a43e781e GIT binary patch literal 30596 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

9B=BMRYnTPCSjo6v{U- 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

1NR)$w3{=0C7Sc6*=mH`Jy0&SSPe)R!7OewF> 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 tiW}FO84mlR*lhZlt@r8wQwx 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 D72P>T literal 0 HcmV?d00001 diff --git a/en/identity-server/next/docs/assets/img/guides/users/my-account-verify-mobile.png b/en/identity-server/next/docs/assets/img/guides/users/my-account-verify-mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..abd337b44b52978f323a8cbfcec50fc6213a48ba GIT binary patch literal 23570 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 literal 0 HcmV?d00001 diff --git a/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md b/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md new file mode 100644 index 0000000000..61a61977db --- /dev/null +++ b/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md @@ -0,0 +1,211 @@ +# Enable email account verification for an updated email address + +Email address verification on update ensures that when a user changes their primary email address, verification is +triggered to the new email address. The existing primary email address remains unchanged until the new one is +successfully verified. If multiple mobile emails per user support is enabled, users can maintain several verified email +addresses and designate one as the primary email address as needed. + +!!! note + - This feature can be invoked via a PUT/PATCH request to the SCIM 2.0 /Users endpoint or /Me endpoint. + - The verification on update capability is **only** supported for the `http://wso2.org/claims/emailAddresses` and + `http://wso2.org/claims/verifiedEmailAddresses` claims. + - Verification is not triggered if the email address to be updated is the same as the previously verified email + address of the user. + - Triggering an email verification is skipped if the `verifyEmail` claim is not set to true when + `UseVerifyClaim` config is enabled. + - By default, multiple email and mobile per user support is enabled. Add the following property to the above + `deployment.toml` config to disabled this server wide and restart the server. + ```toml + [identity_mgt.user_claim_update] + enable_multiple_emails_and_mobile_numbers = false + ``` + +## Prerequisites + +[Configure the email sending module]({{base_path}}/deploy/configure/email-sending-module/) in {{product_name}}. + +## Configure email address verification on update + +1. On the {{product_name}} Console, go to **User Attributes & Stores** > **Attributes**. + +2. Under **Manage Attributes**, click on **User Attribute Change Verification**. + +3. Configure the following property: + + + + + +
Enable User Email Verification on UpdateWhen enabled, this setting triggers an email verification process whenever a user updates their email + address.
+ +4. Click **Update** to save the changes. + +## Try it out + +### Update the primary email address. + +Given below is a sample request and the relevant response for updating the email address via a PATCH operation to +SCIM 2.0 Users endpoint. + +!!! abstract "" + **Request** + ``` + curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations":[{"op":[operation], "value":{ "emails":[{"primary":true, "value":[new email]}]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/[user ID] + ``` + --- + **Sample Request** + ```curl + curl -v -k --user admin:admin -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations":[{"op":"replace","value":{ "emails":[{"primary":true,"value":"kim.jackson.new@gmail.com"}]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 + ``` + --- + **Sample Response** + + ``` + { + "emails":[ + "kimjack@gmail.com" + ], + "meta":{ + "created":"2020-01-07T09:32:18", + "location":"https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21", + "lastModified":"2020-01-07T14:18:49", + "resourceType":"User" + }, + "schemas":[ + "urn:ietf:params:scim:schemas:core:2.0:User", + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", + "urn:scim:wso2:schema" + ], + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User":{ + "pendingEmails":[ + { + "value":"kim.jackson.new@gmail.com" + } + ] + }, + "roles":[ + { + "type":"default", + "value":"Internal/everyone" + } + ], + "name":{ + "givenName":"kim", + "familyName":"jackson" + }, + "id":"1e624046-520c-4628-a245-091e04b03f21", + "userName":"kim" + } + ``` + +Upon receiving the response outlined above, the user will receive an email notification prompting them to verify their +updated email address. Once verified, the `emailaddress` claim (http://wso2.org/claims/emailaddress) will be updated to reflect the newly-verified email address. + +### Update the verified email address list + +If you have multiple email and mobile per user support enabled, you can maintain several verified email addresses and +select one as your primary email address whenever you need. + +To verify a email address, simply click on the verify email address icon next to the email address you'd like to verify. + +![Email addresses update]({{base_path}}/assets/img/guides/users/my-account-verify-email.png) + +An email will be sent to the specified address for verification. To confirm the email address, simply click on the link provided in the email. + +Given below is a sample request and the relevant response for updating the verified email addresses via a PATCH +operation to SCIM 2.0 Users endpoint. + +!!! abstract "" + **Request** + ```curl + curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":[],"Operations":[{"op":[operation], + "value":{[attributeName]:[attribute value]}}]}' --header "Content-Type:application/json" + https://localhost:9443/scim2/Users/[user ID] + ``` + --- + **Sample Request** + ```curl + curl -v -k --user bob:pass123 -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{"op":"replace","value":{"urn:scim:wso2:schema": {"verifiedEmailAddresses": + "kimjack@gmail.com,kim.jackson.new@gmail.com"} + }}]}' + --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 + ``` + --- + **Sample Response** + ``` + { + "emails":[ + "kimjack@gmail.com" + ], + "meta":{ + "created":"2020-01-07T09:32:18", + "location":"https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21", + "lastModified":"2020-01-07T14:18:49", + "resourceType":"User" + }, + "schemas":[ + "urn:ietf:params:scim:schemas:core:2.0:User", + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" + ], + "urn:scim:wso2:schema": { + "emailAddresses": "kimjack@gmail.com", + "verifiedEmailAddresses": "kimjack@gmail.com", + }, + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User":{ + "pendingEmails":[ + { + "value":"kim.jackson.new@gmail.com" + } + ] + }, + "roles":[ + { + "type":"default", + "value":"Internal/everyone" + } + ], + "name":{ + "givenName":"kim", + "familyName":"jackson" + }, + "id":"1e624046-520c-4628-a245-091e04b03f21", + "userName":"kim" + } + ``` + +Upon receiving the response outlined above, the user will receive an email notification prompting them to verify their +updated email address. Once verified, the `emailAddresses` claim (http://wso2.org/claims/emailaddress) and +`verifiedEmailAddresses` claim (http://wso2.org/claims/verifiedEmailAddresses) will be updated to reflect the +newly-verified email address. + +## Resend email verification + +Run the following curl command to resend email verification upon updating the email address. + +!!! abstract "" + **Request** + ```curl + curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"user":{"username": ,"realm": "},"properties": [{"key":"RecoveryScenario","value":"EMAIL_VERIFICATION_ON_UPDATE"}]}' "https://localhost:9443/api/identity/user/v1.0/resend-code" -k -v + ``` + The verification scenario should be specified in the properties parameter of the request body as follows : + ``` + "properties": [{"key": "RecoveryScenario", "value": "EMAIL_VERIFICATION_ON_UPDATE"}] + ``` + - `EMAIL_VERIFICATION_ON_UPDATE`: Used when verifying a newly updated email address for a user.
+ - `EMAIL_VERIFICATION_ON_VERIFIED_LIST_UPDATE`: Used when updating the list of verified email addresses for a + user. + --- + **Sample Request** + ``` + curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"user": + {"username": "admin","realm": "PRIMARY"},"properties": + [{"key":"RecoveryScenario","value":"EMAIL_VERIFICATION_ON_UPDATE"}]}' "https://localhost:9443/api/identity/user/v1.0/resend-code" -k -v + ``` + --- + **Response** + ```curl + HTTP/1.1 201 Created + ``` + diff --git a/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md b/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md index 5158953a9b..7a7a73ef4f 100644 --- a/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md +++ b/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md @@ -1,25 +1,28 @@ -# Enable Mobile Number Verification for an Updated Mobile Number - -Mobile number verification on update ensures that when a user changes their primary mobile number, an SMS OTP is sent to the new number for verification. The existing primary number remains unchanged until the new one is successfully verified. If multiple mobile numbers per user support is enabled, users can maintain several verified numbers and designate one as the primary number as needed. - -!!! warning "Important" - - This feature can be invoked via a PUT/PATCH request to the SCIM 2.0 /Users endpoint or /Me endpoint. - - The verification on update capability is **only** supported for the `http://wso2.org/claims/mobile` and `http://wso2.org/claims/verifiedMobileNumbers` claims. - - An SMS OTP verification is not triggered if the mobile number to be updated is the same as the previously verified mobile number of the user. - -!!! note - By default, multiple email and mobile per user support is enabled. Add the following property to the above `deployment.toml` config to disabled this server wide and restart the server. +# Enable mobile number verification for an updated mobile number + +Mobile number verification on update ensures that when a user changes their primary mobile number, an SMS OTP is sent +to the new number for verification. The existing primary number remains unchanged until the new one is successfully +verified. If multiple mobile numbers per user support is enabled, users can maintain several verified numbers and +designate one as the primary number as needed. + +!!! note + - This feature can be invoked via a PUT/PATCH request to the SCIM 2.0 /Users endpoint or /Me endpoint. + - The verification on update capability is **only** supported for the `http://wso2.org/claims/mobile` and `http://wso2.org/claims/verifiedMobileNumbers` claims. + - An SMS OTP verification is not triggered if the mobile number to be updated is the same as the previously + verified mobile number of the user. + - Triggering a mobile verification is skipped if the `verifyMobile` claim is not set to true when + `UseVerifyClaim` config is enabled. + - By default, multiple email and mobile per user support is enabled. Add the following property to the above `deployment.toml` config to disabled this server wide and restart the server. ```toml [identity_mgt.user_claim_update] enable_multiple_emails_and_mobile_numbers = false ``` ---- -## Configuring SMS Providers +## Prerequisites -Configurations related to SMS providers are located under the **Email & SMS** section. +### Configurations related to SMS providers are located under the **Email & SMS** section. -### Supported Providers +#### Supported Providers {{ product_name }} supports Twilio, Vonage, or custom SMS providers by default. To learn how to configure each provider, please see the relevant section. @@ -125,7 +128,7 @@ Configurations related to SMS providers are located under the **Email & SMS** se -## Configure mobile attribute change verification: +## Configure mobile number verification on update 1. On the {{product_name}} Console, go to **User Attributes & Stores** > **Attributes**. @@ -148,8 +151,9 @@ Configurations related to SMS providers are located under the **Email & SMS** se ## Try it out ### Update the primary mobile number - -Given below is a sample request and the relevant response for updating the mobile number via a PATCH operation to SCIM 2.0 Users endpoint. + +Given below is a sample request and the relevant response for updating the mobile number via a PATCH operation to SCIM +2.0 Users endpoint. !!! abstract "" **Request** @@ -178,7 +182,8 @@ Given below is a sample request and the relevant response for updating the mobil }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", - "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", + "urn:scim:wso2:schema" ], "roles": [ { @@ -205,6 +210,18 @@ Given below is a sample request and the relevant response for updating the mobil ``` ### Update the verified mobile numbers list + +If you have multiple email and mobile per user support enabled, you can maintain several verified mobile numbers and +select one as your primary number whenever you need. + +To verify a mobile number, simply click on the verify mobile icon next to the number you'd like to verify. + +![Mobile number update]({{base_path}}/assets/img/guides/users/my-account-verify-mobile.png) + +A verification code will be sent to your mobile number. Enter this code in the provided field and click the 'Verify' +button to complete the process. + +![Mobile number verification code]({{base_path}}/assets/img/guides/users/my-account-mobile-verification-code.png) Given below is a sample request and the relevant response for updating the verified mobile numbers via a PATCH operation to SCIM 2.0 Users endpoint. @@ -237,7 +254,8 @@ operation to SCIM 2.0 Users endpoint. }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", - "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", + "urn:scim:wso2:schema" ], "roles": [ { @@ -260,7 +278,7 @@ operation to SCIM 2.0 Users endpoint. "urn:scim:wso2:schema": { "mobileNumbers": "0111111111", "verifiedMobileNumbers": "0111111111", - } + }, "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "pendingMobileNumber": "0123456789" } From 5dfb09a42b4f214cf54d48790d9ec8ebdbefd458 Mon Sep 17 00:00:00 2001 From: Pasindu Yeshan Date: Wed, 9 Oct 2024 13:16:45 +0530 Subject: [PATCH 3/8] Update wordings. --- .../guides/users/attributes/email-verification-on-update.md | 5 +++-- .../guides/users/attributes/mobile-verification-on-update.md | 2 +- en/identity-server/next/mkdocs.yml | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md b/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md index 61a61977db..731260b97f 100644 --- a/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md +++ b/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md @@ -1,4 +1,4 @@ -# Enable email account verification for an updated email address +# Enable user email verification on update Email address verification on update ensures that when a user changes their primary email address, verification is triggered to the new email address. The existing primary email address remains unchanged until the new one is @@ -147,7 +147,8 @@ operation to SCIM 2.0 Users endpoint. }, "schemas":[ "urn:ietf:params:scim:schemas:core:2.0:User", - "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", + urn:scim:wso2:schema ], "urn:scim:wso2:schema": { "emailAddresses": "kimjack@gmail.com", diff --git a/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md b/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md index 7a7a73ef4f..8790fd774a 100644 --- a/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md +++ b/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md @@ -1,4 +1,4 @@ -# Enable mobile number verification for an updated mobile number +# Enable mobile number verification on update Mobile number verification on update ensures that when a user changes their primary mobile number, an SMS OTP is sent to the new number for verification. The existing primary number remains unchanged until the new one is successfully diff --git a/en/identity-server/next/mkdocs.yml b/en/identity-server/next/mkdocs.yml index 46c442dab7..6add2b59ce 100644 --- a/en/identity-server/next/mkdocs.yml +++ b/en/identity-server/next/mkdocs.yml @@ -499,8 +499,8 @@ nav: - Configure unique attributes: guides/users/attributes/configure-unique-attributes.md - User attribute change verification: - Configure user attribute change verification: guides/users/attributes/user-attribute-change-verification.md - - Enable verification for updated email address: guides/users/attributes/email-verification-on-update.md - - Enable verification for updated mobile number: guides/users/attributes/mobile-verification-on-update.md + - Configure email address verification on update: guides/users/attributes/email-verification-on-update.md + - Configure mobile number verification on update: guides/users/attributes/mobile-verification-on-update.md - Manage user stores: - Manage user stores: guides/users/user-stores/index.md - Configure the primary user store: From f0fc3bca7963f09ba2eb1af2f600304309622497 Mon Sep 17 00:00:00 2001 From: Pasindu Yeshan Date: Wed, 9 Oct 2024 13:34:36 +0530 Subject: [PATCH 4/8] Update validation. --- .../email-verification-on-update.md | 13 +++++--- .../mobile-verification-on-update.md | 31 ++++++++++++------- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md b/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md index 731260b97f..31e6e0a941 100644 --- a/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md +++ b/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md @@ -77,6 +77,10 @@ SCIM 2.0 Users endpoint. "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", "urn:scim:wso2:schema" ], + "urn:scim:wso2:schema": { + "emailAddresses": "kimjack@gmail.com", + "verifiedEmailAddresses": "kimjack@gmail.com", + }, "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User":{ "pendingEmails":[ { @@ -100,7 +104,9 @@ SCIM 2.0 Users endpoint. ``` Upon receiving the response outlined above, the user will receive an email notification prompting them to verify their -updated email address. Once verified, the `emailaddress` claim (http://wso2.org/claims/emailaddress) will be updated to reflect the newly-verified email address. +updated email address. Once verified, the `emailAddresses` claim (http://wso2.org/claims/emailaddress) and +`verifiedEmailAddresses` claim (http://wso2.org/claims/verifiedEmailAddresses) will be updated to reflect the +newly-verified email address. ### Update the verified email address list @@ -177,9 +183,8 @@ operation to SCIM 2.0 Users endpoint. ``` Upon receiving the response outlined above, the user will receive an email notification prompting them to verify their -updated email address. Once verified, the `emailAddresses` claim (http://wso2.org/claims/emailaddress) and -`verifiedEmailAddresses` claim (http://wso2.org/claims/verifiedEmailAddresses) will be updated to reflect the -newly-verified email address. +updated email address. Once verified, `verifiedEmailAddresses` claim (http://wso2.org/claims/verifiedEmailAddresses) +will be updated to reflect the newly-verified email address. ## Resend email verification diff --git a/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md b/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md index 8790fd774a..ef8ba7f05f 100644 --- a/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md +++ b/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md @@ -150,7 +150,9 @@ designate one as the primary number as needed. ## Try it out -### Update the primary mobile number +### Trigger mobile number verification + +#### Update the primary mobile number Given below is a sample request and the relevant response for updating the mobile number via a PATCH operation to SCIM 2.0 Users endpoint. @@ -209,19 +211,15 @@ Given below is a sample request and the relevant response for updating the mobil } ``` -### Update the verified mobile numbers list +#### Update the verified mobile numbers list If you have multiple email and mobile per user support enabled, you can maintain several verified mobile numbers and select one as your primary number whenever you need. -To verify a mobile number, simply click on the verify mobile icon next to the number you'd like to verify. +To verify a mobile number, simply click on the verify mobile icon next to the number you'd like to verify. +A verification code will be sent to your mobile number. ![Mobile number update]({{base_path}}/assets/img/guides/users/my-account-verify-mobile.png) - -A verification code will be sent to your mobile number. Enter this code in the provided field and click the 'Verify' -button to complete the process. - -![Mobile number verification code]({{base_path}}/assets/img/guides/users/my-account-mobile-verification-code.png) Given below is a sample request and the relevant response for updating the verified mobile numbers via a PATCH operation to SCIM 2.0 Users endpoint. @@ -290,8 +288,13 @@ mobile number. ### Validate the verification code -The user can submit the SMS OTP code using the validate-code API. -Given below is a sample request and the relevant response to submit the received verification code. +Enter the verification code you received in the provided field and click the 'Verify' button to validate the +verification code. + +![Mobile number verification code]({{base_path}}/assets/img/guides/users/my-account-mobile-verification-code.png) + +Given below is a sample request and the relevant response to submit the received verification code using the +validate-code API. !!! abstract "" **Request** @@ -313,8 +316,12 @@ Given below is a sample request and the relevant response to submit the received ### Resend the verification code -The user can request to resend a new SMS OTP code using the resend-code API. -Given below is a sample request and the relevant response to request a new verification code. +The user can request to resend a new SMS OTP code by simply clicking on the "Resend verification code" button or +using the resend-code API. + +![Mobile number verification code]({{base_path}}/assets/img/guides/users/my-account-mobile-verification-code.png) + +Given below is a sample request and the relevant response to request a new verification code using the resend-code API. !!! abstract "" **Request** From cfc3362bb86b4a5e66608574cc6b9b102de25d35 Mon Sep 17 00:00:00 2001 From: Pasindu Yeshan Date: Thu, 19 Dec 2024 13:40:59 +0530 Subject: [PATCH 5/8] Update file locations --- .../guides/users/my-account-verify-email.png | Bin 24768 -> 38436 bytes .../email-verification-on-update.md | 218 +--------- .../mobile-verification-on-update.md | 382 +----------------- .../email-verification-on-update.md | 217 ++++++++++ .../mobile-verification-on-update.md | 381 +++++++++++++++++ 5 files changed, 600 insertions(+), 598 deletions(-) create mode 100644 en/includes/guides/users/attributes/email-verification-on-update.md create mode 100644 en/includes/guides/users/attributes/mobile-verification-on-update.md diff --git a/en/identity-server/next/docs/assets/img/guides/users/my-account-verify-email.png b/en/identity-server/next/docs/assets/img/guides/users/my-account-verify-email.png index 1daa119f0e4d1222a1b1ca0000f3c32ed685cc4b..c9901e4fcbd325424b101b20b098523e0eefcb3b 100644 GIT binary patch literal 38436 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 literal 24768 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
JPoGUEN}MP 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 D72P>T diff --git a/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md b/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md index 31e6e0a941..4da6924eba 100644 --- a/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md +++ b/en/identity-server/next/docs/guides/users/attributes/email-verification-on-update.md @@ -1,217 +1 @@ -# Enable user email verification on update - -Email address verification on update ensures that when a user changes their primary email address, verification is -triggered to the new email address. The existing primary email address remains unchanged until the new one is -successfully verified. If multiple mobile emails per user support is enabled, users can maintain several verified email -addresses and designate one as the primary email address as needed. - -!!! note - - This feature can be invoked via a PUT/PATCH request to the SCIM 2.0 /Users endpoint or /Me endpoint. - - The verification on update capability is **only** supported for the `http://wso2.org/claims/emailAddresses` and - `http://wso2.org/claims/verifiedEmailAddresses` claims. - - Verification is not triggered if the email address to be updated is the same as the previously verified email - address of the user. - - Triggering an email verification is skipped if the `verifyEmail` claim is not set to true when - `UseVerifyClaim` config is enabled. - - By default, multiple email and mobile per user support is enabled. Add the following property to the above - `deployment.toml` config to disabled this server wide and restart the server. - ```toml - [identity_mgt.user_claim_update] - enable_multiple_emails_and_mobile_numbers = false - ``` - -## Prerequisites - -[Configure the email sending module]({{base_path}}/deploy/configure/email-sending-module/) in {{product_name}}. - -## Configure email address verification on update - -1. On the {{product_name}} Console, go to **User Attributes & Stores** > **Attributes**. - -2. Under **Manage Attributes**, click on **User Attribute Change Verification**. - -3. Configure the following property: - - - - - -
Enable User Email Verification on UpdateWhen enabled, this setting triggers an email verification process whenever a user updates their email - address.
- -4. Click **Update** to save the changes. - -## Try it out - -### Update the primary email address. - -Given below is a sample request and the relevant response for updating the email address via a PATCH operation to -SCIM 2.0 Users endpoint. - -!!! abstract "" - **Request** - ``` - curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations":[{"op":[operation], "value":{ "emails":[{"primary":true, "value":[new email]}]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/[user ID] - ``` - --- - **Sample Request** - ```curl - curl -v -k --user admin:admin -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations":[{"op":"replace","value":{ "emails":[{"primary":true,"value":"kim.jackson.new@gmail.com"}]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 - ``` - --- - **Sample Response** - - ``` - { - "emails":[ - "kimjack@gmail.com" - ], - "meta":{ - "created":"2020-01-07T09:32:18", - "location":"https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21", - "lastModified":"2020-01-07T14:18:49", - "resourceType":"User" - }, - "schemas":[ - "urn:ietf:params:scim:schemas:core:2.0:User", - "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", - "urn:scim:wso2:schema" - ], - "urn:scim:wso2:schema": { - "emailAddresses": "kimjack@gmail.com", - "verifiedEmailAddresses": "kimjack@gmail.com", - }, - "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User":{ - "pendingEmails":[ - { - "value":"kim.jackson.new@gmail.com" - } - ] - }, - "roles":[ - { - "type":"default", - "value":"Internal/everyone" - } - ], - "name":{ - "givenName":"kim", - "familyName":"jackson" - }, - "id":"1e624046-520c-4628-a245-091e04b03f21", - "userName":"kim" - } - ``` - -Upon receiving the response outlined above, the user will receive an email notification prompting them to verify their -updated email address. Once verified, the `emailAddresses` claim (http://wso2.org/claims/emailaddress) and -`verifiedEmailAddresses` claim (http://wso2.org/claims/verifiedEmailAddresses) will be updated to reflect the -newly-verified email address. - -### Update the verified email address list - -If you have multiple email and mobile per user support enabled, you can maintain several verified email addresses and -select one as your primary email address whenever you need. - -To verify a email address, simply click on the verify email address icon next to the email address you'd like to verify. - -![Email addresses update]({{base_path}}/assets/img/guides/users/my-account-verify-email.png) - -An email will be sent to the specified address for verification. To confirm the email address, simply click on the link provided in the email. - -Given below is a sample request and the relevant response for updating the verified email addresses via a PATCH -operation to SCIM 2.0 Users endpoint. - -!!! abstract "" - **Request** - ```curl - curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":[],"Operations":[{"op":[operation], - "value":{[attributeName]:[attribute value]}}]}' --header "Content-Type:application/json" - https://localhost:9443/scim2/Users/[user ID] - ``` - --- - **Sample Request** - ```curl - curl -v -k --user bob:pass123 -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], - "Operations":[{"op":"replace","value":{"urn:scim:wso2:schema": {"verifiedEmailAddresses": - "kimjack@gmail.com,kim.jackson.new@gmail.com"} - }}]}' - --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 - ``` - --- - **Sample Response** - ``` - { - "emails":[ - "kimjack@gmail.com" - ], - "meta":{ - "created":"2020-01-07T09:32:18", - "location":"https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21", - "lastModified":"2020-01-07T14:18:49", - "resourceType":"User" - }, - "schemas":[ - "urn:ietf:params:scim:schemas:core:2.0:User", - "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", - urn:scim:wso2:schema - ], - "urn:scim:wso2:schema": { - "emailAddresses": "kimjack@gmail.com", - "verifiedEmailAddresses": "kimjack@gmail.com", - }, - "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User":{ - "pendingEmails":[ - { - "value":"kim.jackson.new@gmail.com" - } - ] - }, - "roles":[ - { - "type":"default", - "value":"Internal/everyone" - } - ], - "name":{ - "givenName":"kim", - "familyName":"jackson" - }, - "id":"1e624046-520c-4628-a245-091e04b03f21", - "userName":"kim" - } - ``` - -Upon receiving the response outlined above, the user will receive an email notification prompting them to verify their -updated email address. Once verified, `verifiedEmailAddresses` claim (http://wso2.org/claims/verifiedEmailAddresses) -will be updated to reflect the newly-verified email address. - -## Resend email verification - -Run the following curl command to resend email verification upon updating the email address. - -!!! abstract "" - **Request** - ```curl - curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"user":{"username": ,"realm": "},"properties": [{"key":"RecoveryScenario","value":"EMAIL_VERIFICATION_ON_UPDATE"}]}' "https://localhost:9443/api/identity/user/v1.0/resend-code" -k -v - ``` - The verification scenario should be specified in the properties parameter of the request body as follows : - ``` - "properties": [{"key": "RecoveryScenario", "value": "EMAIL_VERIFICATION_ON_UPDATE"}] - ``` - - `EMAIL_VERIFICATION_ON_UPDATE`: Used when verifying a newly updated email address for a user.
- - `EMAIL_VERIFICATION_ON_VERIFIED_LIST_UPDATE`: Used when updating the list of verified email addresses for a - user. - --- - **Sample Request** - ``` - curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"user": - {"username": "admin","realm": "PRIMARY"},"properties": - [{"key":"RecoveryScenario","value":"EMAIL_VERIFICATION_ON_UPDATE"}]}' "https://localhost:9443/api/identity/user/v1.0/resend-code" -k -v - ``` - --- - **Response** - ```curl - HTTP/1.1 201 Created - ``` - +{% include "../../../../../../includes/guides/users/attributes/email-verification-on-update.md" %} diff --git a/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md b/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md index ef8ba7f05f..d40cc67130 100644 --- a/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md +++ b/en/identity-server/next/docs/guides/users/attributes/mobile-verification-on-update.md @@ -1,381 +1 @@ -# Enable mobile number verification on update - -Mobile number verification on update ensures that when a user changes their primary mobile number, an SMS OTP is sent -to the new number for verification. The existing primary number remains unchanged until the new one is successfully -verified. If multiple mobile numbers per user support is enabled, users can maintain several verified numbers and -designate one as the primary number as needed. - -!!! note - - This feature can be invoked via a PUT/PATCH request to the SCIM 2.0 /Users endpoint or /Me endpoint. - - The verification on update capability is **only** supported for the `http://wso2.org/claims/mobile` and `http://wso2.org/claims/verifiedMobileNumbers` claims. - - An SMS OTP verification is not triggered if the mobile number to be updated is the same as the previously - verified mobile number of the user. - - Triggering a mobile verification is skipped if the `verifyMobile` claim is not set to true when - `UseVerifyClaim` config is enabled. - - By default, multiple email and mobile per user support is enabled. Add the following property to the above `deployment.toml` config to disabled this server wide and restart the server. - ```toml - [identity_mgt.user_claim_update] - enable_multiple_emails_and_mobile_numbers = false - ``` - -## Prerequisites - -### Configurations related to SMS providers are located under the **Email & SMS** section. - -#### Supported Providers - -{{ product_name }} supports Twilio, Vonage, or custom SMS providers by default. To learn how to configure each provider, please see the relevant section. - -??? note "Configuring Twilio" - To configure Twilio as your SMS provider, follow the steps below: - - - Go to [Twilio](https://www.twilio.com/try-twilio){:target="_blank"} and create an account. - - After signing up for your account, navigate to the Phone Numbers page in your console. You’ll see the phone number that has been selected for you. Note the phone number’s capabilities, such as "Voice", "SMS", and "MMS". - - After signing up, navigate to the Phone Numbers page in your console and note the phone number’s capabilities. - - Get your first Twilio phone number and use that as the “Sender” in the settings. For more information, see this tutorial in the Twilio documentation. - - Copy the Account SID and Auth Token from the Twilio console dashboard. - - Go to **SMS Provider** section in the {{ product_name }} Console and click the **Twilio** tab and fill the required fields. - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionExample
Twilio Account SIDAccount SID received in the previous step.YourAccountSID
Twilio Auth TokenAuth token received in the previous step.YourAuthToken
SenderPhone number that you received when creating the Twilio account.+1234567890
- -??? note "Configuring Vonage" - To configure Vonage as your SMS provider, follow the steps below: - - - Login to [Vonage](https://dashboard.nexmo.com/sign-in){:target="_blank"} and create an account. - - Fill in the required fields and create the account. - - Login to the Vonage dashboard and copy the API Key and API Secret. - - Go to **SMS Provider** section in the {{ product_name }} Console and click the **Vonage** tab and fill the required fields. - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionExample
Vonage API KeyUse the API Key from the previous step.YourAPIKey
Vonage API SecretUse the API Secret from the previous step.YourAPISecret
SenderThe number that the receiver will see when you send an SMS.+1234567890
- -??? note "Configuring a Custom Provider" - If you are not using either Twilio or Vonage as the SMS provider, you can configure a custom SMS provider. Custom SMS provider configuration will pass the SMS data to the given URL as an HTTP request. - - To configure a custom SMS provider, in the **SMS Provider** section click the **Custom** tab and fill the required fields. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionExample
SMS Provider URLURL of the SMS gateway where the payload should be published.https://api.example.com/api/v1
Content TypeContent type of the payload. Possible values are JSON or FORM (Optional).JSON
HTTP MethodHTTP method that should be used when publishing the payload to the provider URL. Possible values: PUT, POST (Optional). POST
Payload TemplateHow the payload template should be.
Placeholders:
\{\{body\}\} - Generated body of the SMS. (Example - This can be the OTP).
\{\{mobile\}\} - Number that this sms should be sent to.
Example JSON payload template:
{“content”: \{\{body\}\},“to”: \{\{mobile\}\}}}

(\{\{mobile\}\} and \{\{body\}\} will be replaced with the corresponding values at the runtime.)
HeadersCustom static headers need to be passed. If multiple headers need to be passed, they should be comma separated. (Optional)authorisation: qwer1234asdfzxcv, x-csrf: true, x-abc: some-value
- -## Configure mobile number verification on update - -1. On the {{product_name}} Console, go to **User Attributes & Stores** > **Attributes**. - -2. Under **Manage Attributes**, click on **User Attribute Change Verification**. - -3. Configure the following properties: - - - - - - - - - -
Enable user mobile number verification on updateWhen enabled, this option triggers an SMS One-Time Password (OTP) verification process when the user updates their mobile number.
Enable mobile number verification by Privileged UsersAllows privileged users (such as administrators) to initiate mobile number verification on behalf of other users.
- -4. Click **Update** to save the changes. - -## Try it out - -### Trigger mobile number verification - -#### Update the primary mobile number - -Given below is a sample request and the relevant response for updating the mobile number via a PATCH operation to SCIM -2.0 Users endpoint. - -!!! abstract "" - **Request** - ```curl - curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":[],"Operations":[{"op":[operation], - "value":{[attributeName]:[attribute value]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/[user ID] - ``` - --- - **Sample Request** - ```curl - curl -v -k --user bob:pass123 -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], - "Operations":[{"op":"replace","value":{"phoneNumbers":[{"type":"mobile","value":"0123456789"}]}}]}' - --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 - ``` - --- - **Sample Response** - ``` - { - "emails": [ - "bobsmith@abc.com" - ], - "meta": { - "location": "https://localhost:9443/scim2/Users/6d433ee7-7cd4-47a3-810b-bc09023bc2ce", - "lastModified": "2020-10-12T13:35:24.579Z", - "resourceType": "User" - }, - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User", - "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", - "urn:scim:wso2:schema" - ], - "roles": [ - { - "type": "default", - "value": "Internal/everyone" - } - ], - "name": { - "givenName": "Bob", - "familyName": "Smith" - }, - "id": "6d433ee7-7cd4-47a3-810b-bc09023bc2ce", - "userName": "bob123", - "phoneNumbers": [ - { - "type": "mobile", - "value": "0111111111" - } - ], - "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { - "pendingMobileNumber": "0123456789" - } - } - ``` - -#### Update the verified mobile numbers list - -If you have multiple email and mobile per user support enabled, you can maintain several verified mobile numbers and -select one as your primary number whenever you need. - -To verify a mobile number, simply click on the verify mobile icon next to the number you'd like to verify. -A verification code will be sent to your mobile number. - -![Mobile number update]({{base_path}}/assets/img/guides/users/my-account-verify-mobile.png) - -Given below is a sample request and the relevant response for updating the verified mobile numbers via a PATCH -operation to SCIM 2.0 Users endpoint. - -!!! abstract "" - **Request** - ```curl - curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":[],"Operations":[{"op":[operation], - "value":{[attributeName]:[attribute value]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/[user ID] - ``` - --- - **Sample Request** - ```curl - curl -v -k --user bob:pass123 -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], - "Operations":[{"op":"replace","value":{"urn:scim:wso2:schema": {"verifiedMobileNumbers": "0111111111,0123456789"} - }}]}' - --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 - ``` - --- - **Sample Response** - ``` - { - "emails": [ - "bobsmith@abc.com" - ], - "meta": { - "location": "https://localhost:9443/scim2/Users/6d433ee7-7cd4-47a3-810b-bc09023bc2ce", - "lastModified": "2020-10-12T13:35:24.579Z", - "resourceType": "User" - }, - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User", - "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", - "urn:scim:wso2:schema" - ], - "roles": [ - { - "type": "default", - "value": "Internal/everyone" - } - ], - "name": { - "givenName": "Bob", - "familyName": "Smith" - }, - "id": "6d433ee7-7cd4-47a3-810b-bc09023bc2ce", - "userName": "bob123", - "phoneNumbers": [ - { - "type": "mobile", - "value": "0111111111" - } - ], - "urn:scim:wso2:schema": { - "mobileNumbers": "0111111111", - "verifiedMobileNumbers": "0111111111", - }, - "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { - "pendingMobileNumber": "0123456789" - } - } - ``` - -Upon receiving the response given above, the user will receive an SMS notification with a verification code to the new -mobile number. - -### Validate the verification code - -Enter the verification code you received in the provided field and click the 'Verify' button to validate the -verification code. - -![Mobile number verification code]({{base_path}}/assets/img/guides/users/my-account-mobile-verification-code.png) - -Given below is a sample request and the relevant response to submit the received verification code using the -validate-code API. - -!!! abstract "" - **Request** - ```curl - curl -k -v -X POST -H "Authorization: " -H "Content-Type: application/json" -d - '{ "code": "","properties": []}' "https://localhost:9443/api/identity/user/v1.0/me/validate-code" - ``` - --- - **Sample Request** - ```curl - curl -k -v -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{ "code": "123{{base_path}}","properties": []}' - "https://localhost:9443/api/identity/user/v1.0/me/validate-code" - ``` - --- - **Response** - ``` - "HTTP/1.1 202 Accepted" - ``` - -### Resend the verification code - -The user can request to resend a new SMS OTP code by simply clicking on the "Resend verification code" button or -using the resend-code API. - -![Mobile number verification code]({{base_path}}/assets/img/guides/users/my-account-mobile-verification-code.png) - -Given below is a sample request and the relevant response to request a new verification code using the resend-code API. - -!!! abstract "" - **Request** - ```curl - curl -X POST -H "Authorization: Basic " -H "Content-Type: application/json" -d '{"properties": []}' - "https://localhost:9443/api/identity/user/v1.0/me/resend-code" - ``` - - The verification scenario should be specified in the properties parameter of the request body as follows : - ``` - "properties": [{"key": "RecoveryScenario", "value": "MOBILE_VERIFICATION_ON_VERIFIED_LIST_UPDATE"}] - ``` - - `MOBILE_VERIFICATION_ON_UPDATE`: Used when verifying a newly updated mobile number for a user.
- - `MOBILE_VERIFICATION_ON_VERIFIED_LIST_UPDATE`: Used when updating the list of verified mobile numbers for a user. - --- - **Sample Request** - ```curl - curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"properties": [{"key":"RecoveryScenario","value": "MOBILE_VERIFICATION_ON_UPDATE"}]}' - "https://localhost:9443/api/identity/user/v1.0/me/resend-code" - ``` - --- - **Response** - ``` - "HTTP/1.1 201 Created" - ``` - ---- - -Additionally, you can use the following curl command to resend a new SMS OTP code by a privileged user. - -**Sample** - -!!! abstract "" - **Request** - ```curl - curl -X POST -H "Authorization: Basic " -H "Content-Type: application/json" -d '{"user":{},"properties": []}' - "https://localhost:9443/api/identity/user/v1.0/resend-code" - ``` - - The user and the verification scenario should be specified in the request body as follows : - ``` - "user": {"username": "", "realm": ""} - "properties": [{"key":"RecoveryScenario", "value":"MOBILE_VERIFICATION_ON_UPDATE"}] - ``` - - `MOBILE_VERIFICATION_ON_UPDATE`: Used when verifying updated primary mobile number.
- - `MOBILE_VERIFICATION_ON_VERIFIED_LIST_UPDATE`: Used when updating the list of verified mobile numbers. - --- - **Sample Request** - ```curl - curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"user":{"username": "admin","realm": "PRIMARY"},"properties": [{"key":"RecoveryScenario","value":"MOBILE_VERIFICATION_ON_UPDATE"}]}' "https://localhost:9443/api/identity/user/v1.0/resend-code" -k -v - ``` - --- - **Response** - ``` - "HTTP/1.1 201 Created" - ``` - +{% include "../../../../../../includes/guides/users/attributes/mobile-verification-on-update.md" %} diff --git a/en/includes/guides/users/attributes/email-verification-on-update.md b/en/includes/guides/users/attributes/email-verification-on-update.md new file mode 100644 index 0000000000..31e6e0a941 --- /dev/null +++ b/en/includes/guides/users/attributes/email-verification-on-update.md @@ -0,0 +1,217 @@ +# Enable user email verification on update + +Email address verification on update ensures that when a user changes their primary email address, verification is +triggered to the new email address. The existing primary email address remains unchanged until the new one is +successfully verified. If multiple mobile emails per user support is enabled, users can maintain several verified email +addresses and designate one as the primary email address as needed. + +!!! note + - This feature can be invoked via a PUT/PATCH request to the SCIM 2.0 /Users endpoint or /Me endpoint. + - The verification on update capability is **only** supported for the `http://wso2.org/claims/emailAddresses` and + `http://wso2.org/claims/verifiedEmailAddresses` claims. + - Verification is not triggered if the email address to be updated is the same as the previously verified email + address of the user. + - Triggering an email verification is skipped if the `verifyEmail` claim is not set to true when + `UseVerifyClaim` config is enabled. + - By default, multiple email and mobile per user support is enabled. Add the following property to the above + `deployment.toml` config to disabled this server wide and restart the server. + ```toml + [identity_mgt.user_claim_update] + enable_multiple_emails_and_mobile_numbers = false + ``` + +## Prerequisites + +[Configure the email sending module]({{base_path}}/deploy/configure/email-sending-module/) in {{product_name}}. + +## Configure email address verification on update + +1. On the {{product_name}} Console, go to **User Attributes & Stores** > **Attributes**. + +2. Under **Manage Attributes**, click on **User Attribute Change Verification**. + +3. Configure the following property: + + + + + +
Enable User Email Verification on UpdateWhen enabled, this setting triggers an email verification process whenever a user updates their email + address.
+ +4. Click **Update** to save the changes. + +## Try it out + +### Update the primary email address. + +Given below is a sample request and the relevant response for updating the email address via a PATCH operation to +SCIM 2.0 Users endpoint. + +!!! abstract "" + **Request** + ``` + curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations":[{"op":[operation], "value":{ "emails":[{"primary":true, "value":[new email]}]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/[user ID] + ``` + --- + **Sample Request** + ```curl + curl -v -k --user admin:admin -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations":[{"op":"replace","value":{ "emails":[{"primary":true,"value":"kim.jackson.new@gmail.com"}]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 + ``` + --- + **Sample Response** + + ``` + { + "emails":[ + "kimjack@gmail.com" + ], + "meta":{ + "created":"2020-01-07T09:32:18", + "location":"https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21", + "lastModified":"2020-01-07T14:18:49", + "resourceType":"User" + }, + "schemas":[ + "urn:ietf:params:scim:schemas:core:2.0:User", + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", + "urn:scim:wso2:schema" + ], + "urn:scim:wso2:schema": { + "emailAddresses": "kimjack@gmail.com", + "verifiedEmailAddresses": "kimjack@gmail.com", + }, + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User":{ + "pendingEmails":[ + { + "value":"kim.jackson.new@gmail.com" + } + ] + }, + "roles":[ + { + "type":"default", + "value":"Internal/everyone" + } + ], + "name":{ + "givenName":"kim", + "familyName":"jackson" + }, + "id":"1e624046-520c-4628-a245-091e04b03f21", + "userName":"kim" + } + ``` + +Upon receiving the response outlined above, the user will receive an email notification prompting them to verify their +updated email address. Once verified, the `emailAddresses` claim (http://wso2.org/claims/emailaddress) and +`verifiedEmailAddresses` claim (http://wso2.org/claims/verifiedEmailAddresses) will be updated to reflect the +newly-verified email address. + +### Update the verified email address list + +If you have multiple email and mobile per user support enabled, you can maintain several verified email addresses and +select one as your primary email address whenever you need. + +To verify a email address, simply click on the verify email address icon next to the email address you'd like to verify. + +![Email addresses update]({{base_path}}/assets/img/guides/users/my-account-verify-email.png) + +An email will be sent to the specified address for verification. To confirm the email address, simply click on the link provided in the email. + +Given below is a sample request and the relevant response for updating the verified email addresses via a PATCH +operation to SCIM 2.0 Users endpoint. + +!!! abstract "" + **Request** + ```curl + curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":[],"Operations":[{"op":[operation], + "value":{[attributeName]:[attribute value]}}]}' --header "Content-Type:application/json" + https://localhost:9443/scim2/Users/[user ID] + ``` + --- + **Sample Request** + ```curl + curl -v -k --user bob:pass123 -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{"op":"replace","value":{"urn:scim:wso2:schema": {"verifiedEmailAddresses": + "kimjack@gmail.com,kim.jackson.new@gmail.com"} + }}]}' + --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 + ``` + --- + **Sample Response** + ``` + { + "emails":[ + "kimjack@gmail.com" + ], + "meta":{ + "created":"2020-01-07T09:32:18", + "location":"https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21", + "lastModified":"2020-01-07T14:18:49", + "resourceType":"User" + }, + "schemas":[ + "urn:ietf:params:scim:schemas:core:2.0:User", + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", + urn:scim:wso2:schema + ], + "urn:scim:wso2:schema": { + "emailAddresses": "kimjack@gmail.com", + "verifiedEmailAddresses": "kimjack@gmail.com", + }, + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User":{ + "pendingEmails":[ + { + "value":"kim.jackson.new@gmail.com" + } + ] + }, + "roles":[ + { + "type":"default", + "value":"Internal/everyone" + } + ], + "name":{ + "givenName":"kim", + "familyName":"jackson" + }, + "id":"1e624046-520c-4628-a245-091e04b03f21", + "userName":"kim" + } + ``` + +Upon receiving the response outlined above, the user will receive an email notification prompting them to verify their +updated email address. Once verified, `verifiedEmailAddresses` claim (http://wso2.org/claims/verifiedEmailAddresses) +will be updated to reflect the newly-verified email address. + +## Resend email verification + +Run the following curl command to resend email verification upon updating the email address. + +!!! abstract "" + **Request** + ```curl + curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"user":{"username": ,"realm": "},"properties": [{"key":"RecoveryScenario","value":"EMAIL_VERIFICATION_ON_UPDATE"}]}' "https://localhost:9443/api/identity/user/v1.0/resend-code" -k -v + ``` + The verification scenario should be specified in the properties parameter of the request body as follows : + ``` + "properties": [{"key": "RecoveryScenario", "value": "EMAIL_VERIFICATION_ON_UPDATE"}] + ``` + - `EMAIL_VERIFICATION_ON_UPDATE`: Used when verifying a newly updated email address for a user.
+ - `EMAIL_VERIFICATION_ON_VERIFIED_LIST_UPDATE`: Used when updating the list of verified email addresses for a + user. + --- + **Sample Request** + ``` + curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"user": + {"username": "admin","realm": "PRIMARY"},"properties": + [{"key":"RecoveryScenario","value":"EMAIL_VERIFICATION_ON_UPDATE"}]}' "https://localhost:9443/api/identity/user/v1.0/resend-code" -k -v + ``` + --- + **Response** + ```curl + HTTP/1.1 201 Created + ``` + diff --git a/en/includes/guides/users/attributes/mobile-verification-on-update.md b/en/includes/guides/users/attributes/mobile-verification-on-update.md new file mode 100644 index 0000000000..ef8ba7f05f --- /dev/null +++ b/en/includes/guides/users/attributes/mobile-verification-on-update.md @@ -0,0 +1,381 @@ +# Enable mobile number verification on update + +Mobile number verification on update ensures that when a user changes their primary mobile number, an SMS OTP is sent +to the new number for verification. The existing primary number remains unchanged until the new one is successfully +verified. If multiple mobile numbers per user support is enabled, users can maintain several verified numbers and +designate one as the primary number as needed. + +!!! note + - This feature can be invoked via a PUT/PATCH request to the SCIM 2.0 /Users endpoint or /Me endpoint. + - The verification on update capability is **only** supported for the `http://wso2.org/claims/mobile` and `http://wso2.org/claims/verifiedMobileNumbers` claims. + - An SMS OTP verification is not triggered if the mobile number to be updated is the same as the previously + verified mobile number of the user. + - Triggering a mobile verification is skipped if the `verifyMobile` claim is not set to true when + `UseVerifyClaim` config is enabled. + - By default, multiple email and mobile per user support is enabled. Add the following property to the above `deployment.toml` config to disabled this server wide and restart the server. + ```toml + [identity_mgt.user_claim_update] + enable_multiple_emails_and_mobile_numbers = false + ``` + +## Prerequisites + +### Configurations related to SMS providers are located under the **Email & SMS** section. + +#### Supported Providers + +{{ product_name }} supports Twilio, Vonage, or custom SMS providers by default. To learn how to configure each provider, please see the relevant section. + +??? note "Configuring Twilio" + To configure Twilio as your SMS provider, follow the steps below: + + - Go to [Twilio](https://www.twilio.com/try-twilio){:target="_blank"} and create an account. + - After signing up for your account, navigate to the Phone Numbers page in your console. You’ll see the phone number that has been selected for you. Note the phone number’s capabilities, such as "Voice", "SMS", and "MMS". + - After signing up, navigate to the Phone Numbers page in your console and note the phone number’s capabilities. + - Get your first Twilio phone number and use that as the “Sender” in the settings. For more information, see this tutorial in the Twilio documentation. + - Copy the Account SID and Auth Token from the Twilio console dashboard. + - Go to **SMS Provider** section in the {{ product_name }} Console and click the **Twilio** tab and fill the required fields. + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
Twilio Account SIDAccount SID received in the previous step.YourAccountSID
Twilio Auth TokenAuth token received in the previous step.YourAuthToken
SenderPhone number that you received when creating the Twilio account.+1234567890
+ +??? note "Configuring Vonage" + To configure Vonage as your SMS provider, follow the steps below: + + - Login to [Vonage](https://dashboard.nexmo.com/sign-in){:target="_blank"} and create an account. + - Fill in the required fields and create the account. + - Login to the Vonage dashboard and copy the API Key and API Secret. + - Go to **SMS Provider** section in the {{ product_name }} Console and click the **Vonage** tab and fill the required fields. + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
Vonage API KeyUse the API Key from the previous step.YourAPIKey
Vonage API SecretUse the API Secret from the previous step.YourAPISecret
SenderThe number that the receiver will see when you send an SMS.+1234567890
+ +??? note "Configuring a Custom Provider" + If you are not using either Twilio or Vonage as the SMS provider, you can configure a custom SMS provider. Custom SMS provider configuration will pass the SMS data to the given URL as an HTTP request. + + To configure a custom SMS provider, in the **SMS Provider** section click the **Custom** tab and fill the required fields. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
SMS Provider URLURL of the SMS gateway where the payload should be published.https://api.example.com/api/v1
Content TypeContent type of the payload. Possible values are JSON or FORM (Optional).JSON
HTTP MethodHTTP method that should be used when publishing the payload to the provider URL. Possible values: PUT, POST (Optional). POST
Payload TemplateHow the payload template should be.
Placeholders:
\{\{body\}\} - Generated body of the SMS. (Example - This can be the OTP).
\{\{mobile\}\} - Number that this sms should be sent to.
Example JSON payload template:
{“content”: \{\{body\}\},“to”: \{\{mobile\}\}}}

(\{\{mobile\}\} and \{\{body\}\} will be replaced with the corresponding values at the runtime.)
HeadersCustom static headers need to be passed. If multiple headers need to be passed, they should be comma separated. (Optional)authorisation: qwer1234asdfzxcv, x-csrf: true, x-abc: some-value
+ +## Configure mobile number verification on update + +1. On the {{product_name}} Console, go to **User Attributes & Stores** > **Attributes**. + +2. Under **Manage Attributes**, click on **User Attribute Change Verification**. + +3. Configure the following properties: + + + + + + + + + +
Enable user mobile number verification on updateWhen enabled, this option triggers an SMS One-Time Password (OTP) verification process when the user updates their mobile number.
Enable mobile number verification by Privileged UsersAllows privileged users (such as administrators) to initiate mobile number verification on behalf of other users.
+ +4. Click **Update** to save the changes. + +## Try it out + +### Trigger mobile number verification + +#### Update the primary mobile number + +Given below is a sample request and the relevant response for updating the mobile number via a PATCH operation to SCIM +2.0 Users endpoint. + +!!! abstract "" + **Request** + ```curl + curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":[],"Operations":[{"op":[operation], + "value":{[attributeName]:[attribute value]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/[user ID] + ``` + --- + **Sample Request** + ```curl + curl -v -k --user bob:pass123 -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{"op":"replace","value":{"phoneNumbers":[{"type":"mobile","value":"0123456789"}]}}]}' + --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 + ``` + --- + **Sample Response** + ``` + { + "emails": [ + "bobsmith@abc.com" + ], + "meta": { + "location": "https://localhost:9443/scim2/Users/6d433ee7-7cd4-47a3-810b-bc09023bc2ce", + "lastModified": "2020-10-12T13:35:24.579Z", + "resourceType": "User" + }, + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User", + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", + "urn:scim:wso2:schema" + ], + "roles": [ + { + "type": "default", + "value": "Internal/everyone" + } + ], + "name": { + "givenName": "Bob", + "familyName": "Smith" + }, + "id": "6d433ee7-7cd4-47a3-810b-bc09023bc2ce", + "userName": "bob123", + "phoneNumbers": [ + { + "type": "mobile", + "value": "0111111111" + } + ], + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { + "pendingMobileNumber": "0123456789" + } + } + ``` + +#### Update the verified mobile numbers list + +If you have multiple email and mobile per user support enabled, you can maintain several verified mobile numbers and +select one as your primary number whenever you need. + +To verify a mobile number, simply click on the verify mobile icon next to the number you'd like to verify. +A verification code will be sent to your mobile number. + +![Mobile number update]({{base_path}}/assets/img/guides/users/my-account-verify-mobile.png) + +Given below is a sample request and the relevant response for updating the verified mobile numbers via a PATCH +operation to SCIM 2.0 Users endpoint. + +!!! abstract "" + **Request** + ```curl + curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":[],"Operations":[{"op":[operation], + "value":{[attributeName]:[attribute value]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/[user ID] + ``` + --- + **Sample Request** + ```curl + curl -v -k --user bob:pass123 -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{"op":"replace","value":{"urn:scim:wso2:schema": {"verifiedMobileNumbers": "0111111111,0123456789"} + }}]}' + --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 + ``` + --- + **Sample Response** + ``` + { + "emails": [ + "bobsmith@abc.com" + ], + "meta": { + "location": "https://localhost:9443/scim2/Users/6d433ee7-7cd4-47a3-810b-bc09023bc2ce", + "lastModified": "2020-10-12T13:35:24.579Z", + "resourceType": "User" + }, + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User", + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", + "urn:scim:wso2:schema" + ], + "roles": [ + { + "type": "default", + "value": "Internal/everyone" + } + ], + "name": { + "givenName": "Bob", + "familyName": "Smith" + }, + "id": "6d433ee7-7cd4-47a3-810b-bc09023bc2ce", + "userName": "bob123", + "phoneNumbers": [ + { + "type": "mobile", + "value": "0111111111" + } + ], + "urn:scim:wso2:schema": { + "mobileNumbers": "0111111111", + "verifiedMobileNumbers": "0111111111", + }, + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { + "pendingMobileNumber": "0123456789" + } + } + ``` + +Upon receiving the response given above, the user will receive an SMS notification with a verification code to the new +mobile number. + +### Validate the verification code + +Enter the verification code you received in the provided field and click the 'Verify' button to validate the +verification code. + +![Mobile number verification code]({{base_path}}/assets/img/guides/users/my-account-mobile-verification-code.png) + +Given below is a sample request and the relevant response to submit the received verification code using the +validate-code API. + +!!! abstract "" + **Request** + ```curl + curl -k -v -X POST -H "Authorization: " -H "Content-Type: application/json" -d + '{ "code": "","properties": []}' "https://localhost:9443/api/identity/user/v1.0/me/validate-code" + ``` + --- + **Sample Request** + ```curl + curl -k -v -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{ "code": "123{{base_path}}","properties": []}' + "https://localhost:9443/api/identity/user/v1.0/me/validate-code" + ``` + --- + **Response** + ``` + "HTTP/1.1 202 Accepted" + ``` + +### Resend the verification code + +The user can request to resend a new SMS OTP code by simply clicking on the "Resend verification code" button or +using the resend-code API. + +![Mobile number verification code]({{base_path}}/assets/img/guides/users/my-account-mobile-verification-code.png) + +Given below is a sample request and the relevant response to request a new verification code using the resend-code API. + +!!! abstract "" + **Request** + ```curl + curl -X POST -H "Authorization: Basic " -H "Content-Type: application/json" -d '{"properties": []}' + "https://localhost:9443/api/identity/user/v1.0/me/resend-code" + ``` + + The verification scenario should be specified in the properties parameter of the request body as follows : + ``` + "properties": [{"key": "RecoveryScenario", "value": "MOBILE_VERIFICATION_ON_VERIFIED_LIST_UPDATE"}] + ``` + - `MOBILE_VERIFICATION_ON_UPDATE`: Used when verifying a newly updated mobile number for a user.
+ - `MOBILE_VERIFICATION_ON_VERIFIED_LIST_UPDATE`: Used when updating the list of verified mobile numbers for a user. + --- + **Sample Request** + ```curl + curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"properties": [{"key":"RecoveryScenario","value": "MOBILE_VERIFICATION_ON_UPDATE"}]}' + "https://localhost:9443/api/identity/user/v1.0/me/resend-code" + ``` + --- + **Response** + ``` + "HTTP/1.1 201 Created" + ``` + +--- + +Additionally, you can use the following curl command to resend a new SMS OTP code by a privileged user. + +**Sample** + +!!! abstract "" + **Request** + ```curl + curl -X POST -H "Authorization: Basic " -H "Content-Type: application/json" -d '{"user":{},"properties": []}' + "https://localhost:9443/api/identity/user/v1.0/resend-code" + ``` + + The user and the verification scenario should be specified in the request body as follows : + ``` + "user": {"username": "", "realm": ""} + "properties": [{"key":"RecoveryScenario", "value":"MOBILE_VERIFICATION_ON_UPDATE"}] + ``` + - `MOBILE_VERIFICATION_ON_UPDATE`: Used when verifying updated primary mobile number.
+ - `MOBILE_VERIFICATION_ON_VERIFIED_LIST_UPDATE`: Used when updating the list of verified mobile numbers. + --- + **Sample Request** + ```curl + curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"user":{"username": "admin","realm": "PRIMARY"},"properties": [{"key":"RecoveryScenario","value":"MOBILE_VERIFICATION_ON_UPDATE"}]}' "https://localhost:9443/api/identity/user/v1.0/resend-code" -k -v + ``` + --- + **Response** + ``` + "HTTP/1.1 201 Created" + ``` + From ff3921d82bc4928c925b2b5a851aa1187a4ed3e2 Mon Sep 17 00:00:00 2001 From: himeshsiriwardana Date: Tue, 7 Jan 2025 10:57:52 +0530 Subject: [PATCH 6/8] updated multiple email address/ mobile verification docs --- .../next/__pycache__/hooks.cpython-312.pyc | Bin 0 -> 1445 bytes en/identity-server/next/mkdocs.yml | 9 +- .../email-verification-on-update.md | 216 ++++--- .../mobile-verification-on-update.md | 531 ++++++++++-------- .../user-attribute-change-verification.md | 12 +- 5 files changed, 441 insertions(+), 327 deletions(-) create mode 100644 en/identity-server/next/__pycache__/hooks.cpython-312.pyc diff --git a/en/identity-server/next/__pycache__/hooks.cpython-312.pyc b/en/identity-server/next/__pycache__/hooks.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5f6c4c9d8b4abb2f6acf7a22884def5c638c72b5 GIT binary patch literal 1445 zcmY*ZPfQ$D82{en`sjh_2P}np$R9yH|%uv&CL6L-F$PV37*sPbJ9{)TN44mGg2{$tzVguM)82uOY8V zKs5^GGtovJS$?I1BZSsaPDNTr?zN$%>`A9^kDSVUx22+=o(-aFe~YC#T@GS5Y00|iTl#Z!;~UtSD-Gr!af{jB|;tP zNl`#`*^|q$&YK8DDa^uWIe-OBqps9dPqpMhG^uNdln}){%_Ej7u%}FmSz}~t7}vu0 z<#@DXM|!cyJAtjs3dBWY@QUIm@TFAl>DWgoiivMF) zE1U_!hVHqD;aq#1ykp$rlyPIpu2Q~a%sR!@Dy_NPu$&^lWOIYo4BNsL+ugW?mTQz5 zHH^<#a-3zJTiJ+QiWt~g+*-wlH*wm8)*BZdrToFkeI@-Yo^067{>Sm`&fv53(6)Wg z-iaTiFE)l+qvMC86aMJLlhL>RWVSJXx712!o3@{Rv+-W5f2cWiZ>BNZx-z|=7-??! z34Qm1pLpw!{-IXi*v^#Sck!@q!ta}S^!jgoSDzEWhM`v}7ByA;}medWR-c9f-225}@q+hQ2?0erZD(1&rBU=rv1$H zlgu^0>$OJg?%CGRNJDF^f7^Q`Lw4p!gG6fc!(;pe^h6*zoFxzjuU3}@DRSIpt3|=@ zT+Li#!Zi~GVWRON0|f7ps!G|hYk^jxZgJgWqA*Ov^AK1@U=iy{*L2mfRx9)xJCCaP zqwpD=j$}f}Q;0u>p5I~8hsl4G1Q~grf&Ogs;|KHi=N~NGU)a@m$9~iw>U-n+S8p9; RKRrmzZ}uK5DoKS7{sjdGLb?C| literal 0 HcmV?d00001 diff --git a/en/identity-server/next/mkdocs.yml b/en/identity-server/next/mkdocs.yml index fc9ba0ff29..47840d3b8f 100644 --- a/en/identity-server/next/mkdocs.yml +++ b/en/identity-server/next/mkdocs.yml @@ -526,10 +526,11 @@ nav: - SCIM2 attribute mappings: guides/users/attributes/manage-scim2-attribute-mappings.md - Configure email address as the username: guides/users/attributes/enable-email-as-username.md - Configure unique attributes: guides/users/attributes/configure-unique-attributes.md - - User attribute change verification: - - Configure user attribute change verification: guides/users/attributes/user-attribute-change-verification.md - - Configure email address verification on update: guides/users/attributes/email-verification-on-update.md - - Configure mobile number verification on update: guides/users/attributes/mobile-verification-on-update.md + - Verify changes when updating attributes: + - Configure verification settings: guides/users/attributes/user-attribute-change-verification.md + - Try it out: + - Email address update verification: guides/users/attributes/email-verification-on-update.md + - Mobile number update verification: guides/users/attributes/mobile-verification-on-update.md - Manage user stores: - Manage user stores: guides/users/user-stores/index.md - Configure the primary user store: diff --git a/en/includes/guides/users/attributes/email-verification-on-update.md b/en/includes/guides/users/attributes/email-verification-on-update.md index 31e6e0a941..fc360791ec 100644 --- a/en/includes/guides/users/attributes/email-verification-on-update.md +++ b/en/includes/guides/users/attributes/email-verification-on-update.md @@ -1,63 +1,70 @@ -# Enable user email verification on update +# Try out email address update verification -Email address verification on update ensures that when a user changes their primary email address, verification is -triggered to the new email address. The existing primary email address remains unchanged until the new one is -successfully verified. If multiple mobile emails per user support is enabled, users can maintain several verified email -addresses and designate one as the primary email address as needed. +Email address verification ensures that when a user updates their primary email address, a verification request is triggered to the new email address. The primary email address will not change until the new email address is verified. If you have enabled [multiple email addresses per user]({{base_path}}/guides/users/attributes/manage-attributes/#assign-multiple-email-addresses-and-mobile-numbers-to-a-user), users can maintain several verified email addresses and designate one as the primary email address. -!!! note +!!! note - This feature can be invoked via a PUT/PATCH request to the SCIM 2.0 /Users endpoint or /Me endpoint. - The verification on update capability is **only** supported for the `http://wso2.org/claims/emailAddresses` and `http://wso2.org/claims/verifiedEmailAddresses` claims. - - Verification is not triggered if the email address to be updated is the same as the previously verified email - address of the user. - - Triggering an email verification is skipped if the `verifyEmail` claim is not set to true when - `UseVerifyClaim` config is enabled. - - By default, multiple email and mobile per user support is enabled. Add the following property to the above - `deployment.toml` config to disabled this server wide and restart the server. - ```toml - [identity_mgt.user_claim_update] - enable_multiple_emails_and_mobile_numbers = false - ``` + - Verification is not triggered if the email address to be updated is the same as a previously verified email address of the user. ## Prerequisites -[Configure the email sending module]({{base_path}}/deploy/configure/email-sending-module/) in {{product_name}}. +- [Configure the email sending module]({{base_path}}/deploy/configure/email-sending-module/) of the {{product_name}}. + +- If required, enable [support for multiple email addresses]({{base_path}}/guides/users/attributes/manage-attributes/#assign-multiple-email-addresses-and-mobile-numbers-to-a-user) for users. + +- Update [email verification settings]({{base_path}}/guides/users/attributes/user-attribute-change-verification/). -## Configure email address verification on update +## Try it out -1. On the {{product_name}} Console, go to **User Attributes & Stores** > **Attributes**. +Follow the guides below to try out different email update scenarios. -2. Under **Manage Attributes**, click on **User Attribute Change Verification**. +### Update the primary email address -3. Configure the following property: - - - - - -
Enable User Email Verification on UpdateWhen enabled, this setting triggers an email verification process whenever a user updates their email - address.
+If you only support a single email address and wish to update the email address of a user, -4. Click **Update** to save the changes. +1. On the {{product_name}} Console, go to **User Management** > **Users**. -## Try it out +2. Select a user account and go to its **Profile** tab. -### Update the primary email address. +3. Under **Email**, update the user's email address. -Given below is a sample request and the relevant response for updating the email address via a PATCH operation to -SCIM 2.0 Users endpoint. +4. Click **Update** to save the changes. An email will be sent to the specified address for verification. The user needs to click the link provided in the email to verify the email address. + +Alternatively, you may update the email address via a PATCH operation to the [SCIM 2.0 Users endpoint]({{base_path}}/apis/scim2/scim2-users-rest-api/) as shown below. !!! abstract "" - **Request** - ``` - curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations":[{"op":[operation], "value":{ "emails":[{"primary":true, "value":[new email]}]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/[user ID] - ``` - --- - **Sample Request** - ```curl - curl -v -k --user admin:admin -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations":[{"op":"replace","value":{ "emails":[{"primary":true,"value":"kim.jackson.new@gmail.com"}]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 - ``` + + === "Request format" + ``` + curl -v -k --user : -X PATCH + https://localhost:9443/scim2/Users/ \ + -d '{ + "schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{ + "op":, + "value": + { "emails":[{"primary":true, "value":}]} + }] + }' \ + --header "Content-Type:application/json" + ``` + === "Sample request" + + ```curl + curl -v -k --user admin:admin -X PATCH + https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 \ + -d '{ + "schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{ + "op":"replace", + "value": + { "emails":[{"primary":true,"value":"kim.jackson.new@gmail.com"}]} + }] + }' \ + --header "Content-Type:application/json" + ``` --- **Sample Response** @@ -103,42 +110,58 @@ SCIM 2.0 Users endpoint. } ``` -Upon receiving the response outlined above, the user will receive an email notification prompting them to verify their -updated email address. Once verified, the `emailAddresses` claim (http://wso2.org/claims/emailaddress) and -`verifiedEmailAddresses` claim (http://wso2.org/claims/verifiedEmailAddresses) will be updated to reflect the -newly-verified email address. +Upon receiving the response outlined above, the user will receive an email notification prompting them to verify their updated email address. Once verified, the `emailAddresses` claim (http://wso2.org/claims/emailaddress) and `verifiedEmailAddresses` claim (http://wso2.org/claims/verifiedEmailAddresses) will be updated to reflect the new email address. + +### Update the verified email addresses list + +If you have enabled support for multiple email addresses and mobile numbers, a user can have several verified email addresses and a single primary email address. + +To verify an email address, + +1. On the {{product_name}} Console, go to **User Management** > **Users**. -### Update the verified email address list +2. Select a user account and go to its **Profile** tab. -If you have multiple email and mobile per user support enabled, you can maintain several verified email addresses and -select one as your primary email address whenever you need. +3. Under **Email Addresses**, click the verify icon on an unverified email address of the user. -To verify a email address, simply click on the verify email address icon next to the email address you'd like to verify. + ![Email addresses update]({{base_path}}/assets/img/guides/users/my-account-verify-email.png) -![Email addresses update]({{base_path}}/assets/img/guides/users/my-account-verify-email.png) + An email will be sent to the specified address for verification. The user needs to click the link provided in the email to verify the email address. -An email will be sent to the specified address for verification. To confirm the email address, simply click on the link provided in the email. - -Given below is a sample request and the relevant response for updating the verified email addresses via a PATCH -operation to SCIM 2.0 Users endpoint. +Alternatively, you may update the email addresses via a PATCH operation to the [SCIM 2.0 Users endpoint]({{base_path}}/apis/scim2/scim2-users-rest-api/) as shown below. !!! abstract "" - **Request** - ```curl - curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":[],"Operations":[{"op":[operation], - "value":{[attributeName]:[attribute value]}}]}' --header "Content-Type:application/json" - https://localhost:9443/scim2/Users/[user ID] - ``` - --- - **Sample Request** - ```curl - curl -v -k --user bob:pass123 -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], - "Operations":[{"op":"replace","value":{"urn:scim:wso2:schema": {"verifiedEmailAddresses": - "kimjack@gmail.com,kim.jackson.new@gmail.com"} - }}]}' - --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 - ``` + + === "Request format" + + ```curl + curl -v -k --user [username]:[password] -X PATCH + https://localhost:9443/scim2/Users/ \ + -d '{ + "schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{ + "op":, + "value":{"urn:scim:wso2:schema": {"verifiedEmailAddresses": }} + }] + }' + --header "Content-Type:application/json" + ``` + === "Sample request" + + ```curl + curl -v -k --user bob:pass123 -X PATCH + https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 \ + -d '{ + "schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{ + "op":"replace", + "value":{"urn:scim:wso2:schema": {"verifiedEmailAddresses": "kimjackson@gmail.com,kim.jackson.new@gmail.com"}} + }] + }' + --header "Content-Type:application/json" + ``` --- + **Sample Response** ``` { @@ -182,19 +205,48 @@ operation to SCIM 2.0 Users endpoint. } ``` -Upon receiving the response outlined above, the user will receive an email notification prompting them to verify their -updated email address. Once verified, `verifiedEmailAddresses` claim (http://wso2.org/claims/verifiedEmailAddresses) -will be updated to reflect the newly-verified email address. +Upon receiving the response outlined above, the user will receive an email notification prompting them to verify their updated email address. Once verified, the `verifiedEmailAddresses` claim (http://wso2.org/claims/verifiedEmailAddresses) will be updated to reflect the new email address. ## Resend email verification -Run the following curl command to resend email verification upon updating the email address. +Run the following curl command in case you want to resend the email verification. !!! abstract "" - **Request** - ```curl - curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"user":{"username": ,"realm": "},"properties": [{"key":"RecoveryScenario","value":"EMAIL_VERIFICATION_ON_UPDATE"}]}' "https://localhost:9443/api/identity/user/v1.0/resend-code" -k -v - ``` + + === "Request format" + + ```curl + curl -k -v -X POST https://localhost:9443/api/identity/user/v1.0/resend-code + -H "Authorization: Basic Base64(:)" + -H "Content-Type: application/json" \ + -d '{ + "user": { + "username": , + "realm": " + }, + "properties": [{ + "key":"RecoveryScenario", + "value": + }] + }' + ``` + === "Sample request" + + ``` + curl -k -v -X POST https://localhost:9443/api/identity/user/v1.0/resend-code + -H "Authorization: Basic YWRtaW46YWRtaW4=" + -H "Content-Type: application/json" \ + -d '{ + "user": { + "username": "bob", + "realm": "PRIMARY" + }, + "properties": [{ + "key":"RecoveryScenario", + "value":"EMAIL_VERIFICATION_ON_UPDATE" + }] + }' + ``` The verification scenario should be specified in the properties parameter of the request body as follows : ``` "properties": [{"key": "RecoveryScenario", "value": "EMAIL_VERIFICATION_ON_UPDATE"}] @@ -203,13 +255,7 @@ Run the following curl command to resend email verification upon updating the em - `EMAIL_VERIFICATION_ON_VERIFIED_LIST_UPDATE`: Used when updating the list of verified email addresses for a user. --- - **Sample Request** - ``` - curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"user": - {"username": "admin","realm": "PRIMARY"},"properties": - [{"key":"RecoveryScenario","value":"EMAIL_VERIFICATION_ON_UPDATE"}]}' "https://localhost:9443/api/identity/user/v1.0/resend-code" -k -v - ``` - --- + **Response** ```curl HTTP/1.1 201 Created diff --git a/en/includes/guides/users/attributes/mobile-verification-on-update.md b/en/includes/guides/users/attributes/mobile-verification-on-update.md index ef8ba7f05f..bdbf82640a 100644 --- a/en/includes/guides/users/attributes/mobile-verification-on-update.md +++ b/en/includes/guides/users/attributes/mobile-verification-on-update.md @@ -1,175 +1,174 @@ # Enable mobile number verification on update -Mobile number verification on update ensures that when a user changes their primary mobile number, an SMS OTP is sent -to the new number for verification. The existing primary number remains unchanged until the new one is successfully -verified. If multiple mobile numbers per user support is enabled, users can maintain several verified numbers and -designate one as the primary number as needed. +Mobile number verification ensures that when a user updates their primary mobile number, an SMS OTP is sent to the new number for verification. The primary mobile number remains unchanged until the new one is successfully verified. will not change until the new email address is verified. If you have enabled [multiple mobile numbers per user]({{base_path}}/guides/users/attributes/manage-attributes/#assign-multiple-email-addresses-and-mobile-numbers-to-a-user), users can maintain several verified email addresses and designate one as the primary mobile number. !!! note - This feature can be invoked via a PUT/PATCH request to the SCIM 2.0 /Users endpoint or /Me endpoint. - The verification on update capability is **only** supported for the `http://wso2.org/claims/mobile` and `http://wso2.org/claims/verifiedMobileNumbers` claims. - - An SMS OTP verification is not triggered if the mobile number to be updated is the same as the previously - verified mobile number of the user. - - Triggering a mobile verification is skipped if the `verifyMobile` claim is not set to true when - `UseVerifyClaim` config is enabled. - - By default, multiple email and mobile per user support is enabled. Add the following property to the above `deployment.toml` config to disabled this server wide and restart the server. - ```toml - [identity_mgt.user_claim_update] - enable_multiple_emails_and_mobile_numbers = false - ``` + - An SMS OTP verification is not triggered if the mobile number to be updated is the same as a previously verified mobile number of the user. ## Prerequisites -### Configurations related to SMS providers are located under the **Email & SMS** section. - -#### Supported Providers - -{{ product_name }} supports Twilio, Vonage, or custom SMS providers by default. To learn how to configure each provider, please see the relevant section. - -??? note "Configuring Twilio" - To configure Twilio as your SMS provider, follow the steps below: - - - Go to [Twilio](https://www.twilio.com/try-twilio){:target="_blank"} and create an account. - - After signing up for your account, navigate to the Phone Numbers page in your console. You’ll see the phone number that has been selected for you. Note the phone number’s capabilities, such as "Voice", "SMS", and "MMS". - - After signing up, navigate to the Phone Numbers page in your console and note the phone number’s capabilities. - - Get your first Twilio phone number and use that as the “Sender” in the settings. For more information, see this tutorial in the Twilio documentation. - - Copy the Account SID and Auth Token from the Twilio console dashboard. - - Go to **SMS Provider** section in the {{ product_name }} Console and click the **Twilio** tab and fill the required fields. - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionExample
Twilio Account SIDAccount SID received in the previous step.YourAccountSID
Twilio Auth TokenAuth token received in the previous step.YourAuthToken
SenderPhone number that you received when creating the Twilio account.+1234567890
- -??? note "Configuring Vonage" - To configure Vonage as your SMS provider, follow the steps below: - - - Login to [Vonage](https://dashboard.nexmo.com/sign-in){:target="_blank"} and create an account. - - Fill in the required fields and create the account. - - Login to the Vonage dashboard and copy the API Key and API Secret. - - Go to **SMS Provider** section in the {{ product_name }} Console and click the **Vonage** tab and fill the required fields. - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionExample
Vonage API KeyUse the API Key from the previous step.YourAPIKey
Vonage API SecretUse the API Secret from the previous step.YourAPISecret
SenderThe number that the receiver will see when you send an SMS.+1234567890
- -??? note "Configuring a Custom Provider" - If you are not using either Twilio or Vonage as the SMS provider, you can configure a custom SMS provider. Custom SMS provider configuration will pass the SMS data to the given URL as an HTTP request. - - To configure a custom SMS provider, in the **SMS Provider** section click the **Custom** tab and fill the required fields. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionExample
SMS Provider URLURL of the SMS gateway where the payload should be published.https://api.example.com/api/v1
Content TypeContent type of the payload. Possible values are JSON or FORM (Optional).JSON
HTTP MethodHTTP method that should be used when publishing the payload to the provider URL. Possible values: PUT, POST (Optional). POST
Payload TemplateHow the payload template should be.
Placeholders:
\{\{body\}\} - Generated body of the SMS. (Example - This can be the OTP).
\{\{mobile\}\} - Number that this sms should be sent to.
Example JSON payload template:
{“content”: \{\{body\}\},“to”: \{\{mobile\}\}}}

(\{\{mobile\}\} and \{\{body\}\} will be replaced with the corresponding values at the runtime.)
HeadersCustom static headers need to be passed. If multiple headers need to be passed, they should be comma separated. (Optional)authorisation: qwer1234asdfzxcv, x-csrf: true, x-abc: some-value
- -## Configure mobile number verification on update - -1. On the {{product_name}} Console, go to **User Attributes & Stores** > **Attributes**. - -2. Under **Manage Attributes**, click on **User Attribute Change Verification**. - -3. Configure the following properties: - - - - - - - - - -
Enable user mobile number verification on updateWhen enabled, this option triggers an SMS One-Time Password (OTP) verification process when the user updates their mobile number.
Enable mobile number verification by Privileged UsersAllows privileged users (such as administrators) to initiate mobile number verification on behalf of other users.
- -4. Click **Update** to save the changes. +- Configure your preferred SMS provider in {{product_name}}. + + ??? note "Configuring Twilio" + To configure Twilio as your SMS provider, follow the steps below: + + - Go to [Twilio](https://www.twilio.com/try-twilio){:target="_blank"} and create an account. + - After signing up for your account, navigate to the Phone Numbers page in your console. You’ll see the phone number that has been selected for you. Note the phone number’s capabilities, such as "Voice", "SMS", and "MMS". + - After signing up, navigate to the Phone Numbers page in your console and note the phone number’s capabilities. + - Get your first Twilio phone number and use that as the “Sender” in the settings. For more information, see this tutorial in the Twilio documentation. + - Copy the Account SID and Auth Token from the Twilio console dashboard. + - Go to **SMS Provider** section in the {{ product_name }} Console and click the **Twilio** tab and fill the required fields. + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
Twilio Account SIDAccount SID received in the previous step.YourAccountSID
Twilio Auth TokenAuth token received in the previous step.YourAuthToken
SenderPhone number that you received when creating the Twilio account.+1234567890
+ + ??? note "Configuring Vonage" + + To configure Vonage as your SMS provider, follow the steps below: + + - Login to [Vonage](https://dashboard.nexmo.com/sign-in){:target="_blank"} and create an account. + - Fill in the required fields and create the account. + - Login to the Vonage dashboard and copy the API Key and API Secret. + - Go to **SMS Provider** section in the {{ product_name }} Console and click the **Vonage** tab and fill the required fields. + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
Vonage API KeyUse the API Key from the previous step.YourAPIKey
Vonage API SecretUse the API Secret from the previous step.YourAPISecret
SenderThe number that the receiver will see when you send an SMS.+1234567890
+ + ??? note "Configuring a Custom Provider" + + If you are not using either Twilio or Vonage as the SMS provider, you can configure a custom SMS provider. Custom SMS provider configuration will pass the SMS data to the given URL as an HTTP request. + + To configure a custom SMS provider, in the **SMS Provider** section click the **Custom** tab and fill the required fields. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
SMS Provider URLURL of the SMS gateway where the payload should be published.https://api.example.com/api/v1
Content TypeContent type of the payload. Possible values are JSON or FORM (Optional).JSON
HTTP MethodHTTP method that should be used when publishing the payload to the provider URL. Possible values: PUT, POST (Optional). POST
Payload TemplateHow the payload template should be.
Placeholders:
\{\{body\}\} - Generated body of the SMS. (Example - This can be the OTP).
\{\{mobile\}\} - Number that this sms should be sent to.
Example JSON payload template:
{“content”: \{\{body\}\},“to”: \{\{mobile\}\}}}

(\{\{mobile\}\} and \{\{body\}\} will be replaced with the corresponding values at the runtime.)
HeadersCustom static headers need to be passed. If multiple headers need to be passed, they should be comma separated. (Optional)authorisation: qwer1234asdfzxcv, x-csrf: true, x-abc: some-value
+ +- If required, enable [support for multiple mobile numbers]({{base_path}}/guides/users/attributes/manage-attributes/#assign-multiple-email-addresses-and-mobile-numbers-to-a-user) for users. + +- Update [mobile number verification settings]({{base_path}}/guides/users/attributes/user-attribute-change-verification/). + ## Try it out -### Trigger mobile number verification +Follow the guides below to try out different mobile number update scenarios. + +### Update the primary mobile number + +If you only support a single mobile number and wish to update the mobile number of a user, + +1. On the {{product_name}} Console, go to **User Management** > **Users**. + +2. Select a user account and go to its **Profile** tab. + +3. Under **Mobile**, update the user's mobile number. -#### Update the primary mobile number +4. Click **Update** to save the changes. An SMS OTP will be sent to the specified mobile number for verification. The user needs to enter the SMS OTP to verify the mobile number. -Given below is a sample request and the relevant response for updating the mobile number via a PATCH operation to SCIM -2.0 Users endpoint. +Alternatively, you may update the mobile number via a PATCH operation to the [SCIM 2.0 Users endpoint]({{base_path}}/apis/scim2/scim2-users-rest-api/) as shown below. !!! abstract "" - **Request** - ```curl - curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":[],"Operations":[{"op":[operation], - "value":{[attributeName]:[attribute value]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/[user ID] - ``` - --- - **Sample Request** - ```curl - curl -v -k --user bob:pass123 -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], - "Operations":[{"op":"replace","value":{"phoneNumbers":[{"type":"mobile","value":"0123456789"}]}}]}' - --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 - ``` + + === "Request format" + ``` + curl -v -k --user : -X PATCH + https://localhost:9443/scim2/Users/ \ + -d '{ + "schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{ + "op":, + "value": + { "mobileNumbers":[{"type":"mobile", "value":}]} + }] + }' \ + --header "Content-Type:application/json" + ``` + === "Sample request" + + ```curl + curl -v -k --user admin:admin -X PATCH + https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 \ + -d '{ + "schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{ + "op":"replace", + "value": + { "phoneNumbers":[{"type": "mobile", "value":"0123456789"}]} + }] + }' \ + --header "Content-Type:application/json" + ``` --- **Sample Response** ``` @@ -211,33 +210,57 @@ Given below is a sample request and the relevant response for updating the mobil } ``` -#### Update the verified mobile numbers list +### Update the verified mobile numbers list + +If you have enabled support for multiple mobile numbers, a user can have several verified mobile numbers and a single primary mobile number. -If you have multiple email and mobile per user support enabled, you can maintain several verified mobile numbers and -select one as your primary number whenever you need. +To verify an email address, + +1. On the {{product_name}} Console, go to **User Management** > **Users**. + +2. Select a user account and go to its **Profile** tab. + +3. Under **Mobile**, click the verify icon on an unverified mobile number of the user. -To verify a mobile number, simply click on the verify mobile icon next to the number you'd like to verify. A verification code will be sent to your mobile number. ![Mobile number update]({{base_path}}/assets/img/guides/users/my-account-verify-mobile.png) + +An SMS OTP will be sent to the specified mobile number for verification. The user needs to provide the OTP to verify the mobile number. -Given below is a sample request and the relevant response for updating the verified mobile numbers via a PATCH -operation to SCIM 2.0 Users endpoint. +Alternatively, you may update the mobile numbers via a PATCH operation to the [SCIM 2.0 Users endpoint]({{base_path}}/apis/scim2/scim2-users-rest-api/) as shown below. !!! abstract "" - **Request** - ```curl - curl -v -k --user [username]:[password] -X PATCH -d '{"schemas":[],"Operations":[{"op":[operation], - "value":{[attributeName]:[attribute value]}}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/[user ID] - ``` - --- - **Sample Request** - ```curl - curl -v -k --user bob:pass123 -X PATCH -d '{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], - "Operations":[{"op":"replace","value":{"urn:scim:wso2:schema": {"verifiedMobileNumbers": "0111111111,0123456789"} - }}]}' - --header "Content-Type:application/json" https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 - ``` + + === "Request format" + + ```curl + curl -v -k --user [username]:[password] -X PATCH + https://localhost:9443/scim2/Users/ \ + -d '{ + "schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{ + "op":, + "value":{"urn:scim:wso2:schema": {"verifiedMobileNumbers": }} + }] + }' + --header "Content-Type:application/json" + ``` + === "Sample request" + + ```curl + curl -v -k --user bob:pass123 -X PATCH + https://localhost:9443/scim2/Users/1e624046-520c-4628-a245-091e04b03f21 \ + -d '{ + "schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"], + "Operations":[{ + "op":"replace", + "value":{"urn:scim:wso2:schema": {"verifiedMobileNumbers": "0111111111,0123456789"}} + }] + }' + --header "Content-Type:application/json" + ``` + --- **Sample Response** ``` @@ -283,96 +306,140 @@ operation to SCIM 2.0 Users endpoint. } ``` -Upon receiving the response given above, the user will receive an SMS notification with a verification code to the new -mobile number. +Upon receiving the response outlined above, the user will receive an SMS notification prompting them to verify their updated mobile number. Once verified, the `verifiedMobileNumbers` claim (http://wso2.org/claims/verifiedMobileNumbers) will be updated to reflect the new mobile number. -### Validate the verification code +## Validate the verification code -Enter the verification code you received in the provided field and click the 'Verify' button to validate the -verification code. +When going through the mobile number verification process, users can enter the SMS OTP in the provided prompt and click **Verify** to verify the mobile number. ![Mobile number verification code]({{base_path}}/assets/img/guides/users/my-account-mobile-verification-code.png) -Given below is a sample request and the relevant response to submit the received verification code using the -validate-code API. +Alternatively, the validation-code API can be used to submit the SMS OTP as shown below. !!! abstract "" - **Request** - ```curl - curl -k -v -X POST -H "Authorization: " -H "Content-Type: application/json" -d - '{ "code": "","properties": []}' "https://localhost:9443/api/identity/user/v1.0/me/validate-code" - ``` - --- - **Sample Request** - ```curl - curl -k -v -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{ "code": "123{{base_path}}","properties": []}' - "https://localhost:9443/api/identity/user/v1.0/me/validate-code" - ``` + + === "Request format" + + ```curl + curl -v -k -X POST https://localhost:9443/api/identity/user/v1.0/me/validate-code + -H "Authorization: " + -H "Content-Type: application/json" \ + -d '{ "code": "", + "properties": [] + }' + ``` + === "Sample request" + + ```curl + curl -v -k -X POST https://localhost:9443/api/identity/user/v1.0/me/validate-code + -H "Authorization: Ym9iOmJvYjEyMw==" + -H "Content-Type: application/json" \ + -d '{ "code": "1234", + "properties": [] + }' + ``` --- **Response** ``` "HTTP/1.1 202 Accepted" ``` -### Resend the verification code +## Resend the verification code -The user can request to resend a new SMS OTP code by simply clicking on the "Resend verification code" button or -using the resend-code API. +Users can request for a new SMS OTP code by simply clicking the `Resend verification code` button in the shown prompt ![Mobile number verification code]({{base_path}}/assets/img/guides/users/my-account-mobile-verification-code.png) -Given below is a sample request and the relevant response to request a new verification code using the resend-code API. +Alternatively, the resend-code API can be used to resend the SMS OTP as shown below. + +### By a non-privileged user + +The following command can be used by users themselves to receive a new SMS OTP. !!! abstract "" - **Request** - ```curl - curl -X POST -H "Authorization: Basic " -H "Content-Type: application/json" -d '{"properties": []}' - "https://localhost:9443/api/identity/user/v1.0/me/resend-code" - ``` - The verification scenario should be specified in the properties parameter of the request body as follows : - ``` - "properties": [{"key": "RecoveryScenario", "value": "MOBILE_VERIFICATION_ON_VERIFIED_LIST_UPDATE"}] - ``` + === "Request format" + + ```curl + curl -X POST https://localhost:9443/api/identity/user/v1.0/me/resend-code + -H "Authorization: " + -H "Content-Type: application/json" \ + -d '{ "properties": [{ + "key": "RecoveryScenario", + "value": "" + }] + }' + ``` + === "Sample request" + + ```curl + curl -X POST https://localhost:9443/api/identity/user/v1.0/me/resend-code + -H "Authorization: Ym9iOmJvYjEyMw==" + -H "Content-Type: application/json" \ + -d '{ "properties": [{ + "key": "RecoveryScenario", + "value": "MOBILE_VERIFICATION_ON_UPDATE" + }] + }' + ``` + + The verification scenario should be specified in the `properties` parameter of the request body as follows: + - `MOBILE_VERIFICATION_ON_UPDATE`: Used when verifying a newly updated mobile number for a user.
- `MOBILE_VERIFICATION_ON_VERIFIED_LIST_UPDATE`: Used when updating the list of verified mobile numbers for a user. --- - **Sample Request** - ```curl - curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"properties": [{"key":"RecoveryScenario","value": "MOBILE_VERIFICATION_ON_UPDATE"}]}' - "https://localhost:9443/api/identity/user/v1.0/me/resend-code" - ``` - --- + **Response** ``` "HTTP/1.1 201 Created" ``` ---- +### By a privileged user -Additionally, you can use the following curl command to resend a new SMS OTP code by a privileged user. - -**Sample** +The following command can be used by privileged users to send an SMS OTP on behalf of a user. !!! abstract "" - **Request** - ```curl - curl -X POST -H "Authorization: Basic " -H "Content-Type: application/json" -d '{"user":{},"properties": []}' - "https://localhost:9443/api/identity/user/v1.0/resend-code" - ``` - The user and the verification scenario should be specified in the request body as follows : - ``` - "user": {"username": "", "realm": ""} - "properties": [{"key":"RecoveryScenario", "value":"MOBILE_VERIFICATION_ON_UPDATE"}] - ``` - - `MOBILE_VERIFICATION_ON_UPDATE`: Used when verifying updated primary mobile number.
+ === "Request format" + + ```curl + curl -X POST https://localhost:9443/api/identity/user/v1.0/resend-code + -H "Authorization: " + -H "Content-Type: application/json" \ + -d '{ + "user": { + "username": , + "realm": " + }, + "properties": [{ + "key":"RecoveryScenario", + "value": + }] + }' + ``` + === "Sample request" + + ```curl + curl -X POST https://localhost:9443/api/identity/user/v1.0/resend-code + -H "Authorization: YWRtaW46YWRtaW4=" + -H "Content-Type: application/json" \ + -d '{ + "user": { + "username": "bob", + "realm": PRIMARY" + }, + "properties": [{ + "key":"RecoveryScenario", + "value":"MOBILE_VERIFICATION_ON_UPDATE" + }] + }' + ``` + + The verification scenario should be specified in the request body as follows: + + - `MOBILE_VERIFICATION_ON_UPDATE`: Used when verifying updated primary mobile number. - `MOBILE_VERIFICATION_ON_VERIFIED_LIST_UPDATE`: Used when updating the list of verified mobile numbers. - --- - **Sample Request** - ```curl - curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "Content-Type: application/json" -d '{"user":{"username": "admin","realm": "PRIMARY"},"properties": [{"key":"RecoveryScenario","value":"MOBILE_VERIFICATION_ON_UPDATE"}]}' "https://localhost:9443/api/identity/user/v1.0/resend-code" -k -v - ``` + --- **Response** ``` diff --git a/en/includes/guides/users/attributes/user-attribute-change-verification.md b/en/includes/guides/users/attributes/user-attribute-change-verification.md index e89b5b9a61..712b89afd2 100644 --- a/en/includes/guides/users/attributes/user-attribute-change-verification.md +++ b/en/includes/guides/users/attributes/user-attribute-change-verification.md @@ -1,6 +1,6 @@ -# Configure user attribute change verification +# Configure verification settings for attribute updates -This guide explains how to configure notification and verification settings when a user changes specific attributes like their email address or mobile number. These settings ensure users are properly notified or required to verify updates for security purposes. +This guide explains how to configure notification and verification settings when a user changes specific attributes like their email address or mobile number. These settings ensure users are properly notified when attributes are updated or are requested to verify critical attribute updates. Follow the steps below to configure attribute change verification settings: @@ -15,7 +15,7 @@ Follow the steps below to configure attribute change verification settings: - + @@ -23,15 +23,15 @@ Follow the steps below to configure attribute change verification settings: - + - + - +
Enable User Email Verification on UpdateWhen enabled, this setting triggers an email verification process whenever a user updates their email address.When enabled, triggers an email verification process whenever a user updates their email address.
Email verification on update link expiry time
Enable user email notification on updateWhen enabled, this setting triggers a notification email to the existing email address whenever the user attempts to update their email address.When enabled, triggers a notification email to the existing email address whenever the user attempts to update their email address.
Enable user mobile number verification on updateWhen enabled, this option triggers an SMS One-Time Password (OTP) verification process when the user updates their mobile number.When enabled, triggers an SMS One-Time Password (OTP) verification process when the user updates their mobile number.
Enable mobile number verification by Privileged UsersAllows privileged users (such as administrators) to initiate mobile number verification on behalf of other users.When enabled, allows privileged users (such as administrators) to initiate mobile number verification on behalf of other users.
From 434bcbac9b5d8c46cc8e2102dbd6dbe95a067dd9 Mon Sep 17 00:00:00 2001 From: Himesh Siriwardana Date: Tue, 7 Jan 2025 11:08:22 +0530 Subject: [PATCH 7/8] Update en/includes/guides/users/attributes/mobile-verification-on-update.md --- .../guides/users/attributes/mobile-verification-on-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/includes/guides/users/attributes/mobile-verification-on-update.md b/en/includes/guides/users/attributes/mobile-verification-on-update.md index bdbf82640a..9a45b8dbd6 100644 --- a/en/includes/guides/users/attributes/mobile-verification-on-update.md +++ b/en/includes/guides/users/attributes/mobile-verification-on-update.md @@ -1,6 +1,6 @@ # Enable mobile number verification on update -Mobile number verification ensures that when a user updates their primary mobile number, an SMS OTP is sent to the new number for verification. The primary mobile number remains unchanged until the new one is successfully verified. will not change until the new email address is verified. If you have enabled [multiple mobile numbers per user]({{base_path}}/guides/users/attributes/manage-attributes/#assign-multiple-email-addresses-and-mobile-numbers-to-a-user), users can maintain several verified email addresses and designate one as the primary mobile number. +Mobile number verification ensures that when a user updates their primary mobile number, an SMS OTP is sent to the new number for verification. The primary mobile number remains unchanged until the new one is successfully verified. If you have enabled [multiple mobile numbers per user]({{base_path}}/guides/users/attributes/manage-attributes/#assign-multiple-email-addresses-and-mobile-numbers-to-a-user), users can maintain several verified mobile numbers and designate one as the primary mobile number. !!! note - This feature can be invoked via a PUT/PATCH request to the SCIM 2.0 /Users endpoint or /Me endpoint. From 9c0530fca2c986965b68af452392baa76ab02808 Mon Sep 17 00:00:00 2001 From: Himesh Siriwardana Date: Tue, 7 Jan 2025 11:08:27 +0530 Subject: [PATCH 8/8] Update en/includes/guides/users/attributes/mobile-verification-on-update.md --- .../guides/users/attributes/mobile-verification-on-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/includes/guides/users/attributes/mobile-verification-on-update.md b/en/includes/guides/users/attributes/mobile-verification-on-update.md index 9a45b8dbd6..3e9a64392a 100644 --- a/en/includes/guides/users/attributes/mobile-verification-on-update.md +++ b/en/includes/guides/users/attributes/mobile-verification-on-update.md @@ -214,7 +214,7 @@ Alternatively, you may update the mobile number via a PATCH operation to the [SC If you have enabled support for multiple mobile numbers, a user can have several verified mobile numbers and a single primary mobile number. -To verify an email address, +To verify a mobile number, 1. On the {{product_name}} Console, go to **User Management** > **Users**.