Activate User and User Attribute Process

Content

Overview

This Process defines how a user verifies and activates their ULM User ID (and/or one of its entity attributes). In other words, this Process activates a new user, or it activates a new authentication identifier (authN ID) that a user registers and adds to their ULM User ID.

Multiple Process Orchestration

Most user journeys are facilitated by a single Process. Conversely, there are some cases where ULM orchestrates and links two or more Processes to complete a given journey.

The Activate User (and User Attribute) Process completes a user journey initiated by a preceding process, typically in cases where the user opts to (or needs to) navigate away from the client UI, and then resume their interactions with ULM from a separate point of entry (e.g., a redirect URL in a verification email).

ULM User Entity and AuthN ID Status

ULM is built on top of a user-centric and entitlement-specific data model of ULM data entities. Each ULM entity is defined by a set of default and extensible attributes. Some of the extensible attributes are simple string values, and others are more complex arrays (i.e., list of objects that make up a single attribute).

Like all ULM entities, the User entity has a default or "top level" status attribute. All of a user's registered authN IDs are stored one level down inside the attributes array, and each authN ID has its own status.

When the GET /session/token API redeems an action token to invoke the Activate User Process, the token is contextually aware so that it knows what attribute(s) need to be updated.

Process Invocation

Unlike most ULM Processes, Activate User cannot be invoked with the Process Start API. Instead, the GET session/token API invokes this Process when it redeems an action token generated by a previous Process.

Possible API variations of calling the Process include the following:

GET session/token?token={token}

  1. The user completes a Process.
  2. The Process generates an action token and sends a clickable or tappable link in an email or SMS. The link includes a redirect URL back to the client application, and the action token value is appended to the URL string.
  3. Once the user clicks/taps the link, they are redirected back to the client.
  4. The client then takes the token value to call GET /session/token?token={token value} to trigger the Activate User Process.

GET session/token?customToken={OTP}&pkat={PKAT}

  1. The user completes a Process.
  2. The Process generates and sends a receives a short, custom One Time Passcode in an email or SMS. The Process also returns a pkat to the front-end client.
  3. The front-end client prompts the user to enter their code to verify who they are.
  4. Once the user enters their code, the client then takes the OTP and the PKAT to call GET /session/token?customToken={otp}&pkat{pkat} to trigger the Activate User Process.

Common Use Scenarios

The following use cases commonly involve the Activate User Process.

  • A new, anonymous user onboards with their email or mobile. They then verify (activate) their email/mobile, and fully activate their User ID at the same time.
  • A new, anonymous user onboards with their social account. However, they change the email/mobile sent back by the social provider. They then verify (activate) the new email/mobile, and fully activate their User ID at the same time.
  • An existing, authenticated user registers a new email or mobile. They then verify (activate) the new email/mobile, and can now use it for authentication.
  • An existing, authenticated user updates a current email or mobile with a new one. They then verify (activate) the new email/mobile. The old email/mobile is removed from the User ID.

Process Flow

These tables describe the Process at a high level.

Active User and/or User Attribute
Actors Front-end user, Client Application, ULM Cloud, Email Service or SMS Service, ULM User entity.
Pre-Conditions The User ID (i.e., ULM User entity) exists in ULM, but the user has not yet verified their email or mobile
  User may be currently anonymous to ULM. ULM recognizes the user once they redeem the token.
Basic Flow This flow follows the Onboard User with Email and Mobile Process.
  1 Once the user submits their info to ULM, they then receive an email or SMS with an action token (clickable link, OTP, or both).
  2 The user invokes this Process through one of two methods:
    a They manually enter the OTP into client UI (if the client prompts them for a code).
    b They click (or tap) the verification link in their email/SMS.
  3 ULM redeems the token, and verifies that the user is coming in from the standard onboarding flow.
  4 ULM verifies the the email/mobile and changes the authN ID attribute status from activating to activated.
  5 ULM changes the ULM User entity status from activating to activated.
  6 ULM automatically authenticates the user.
Post-Conditions The User ID is now fully activated.
  The user's email address or mobile number is now a valid authentication identifier (or authN ID).
  The user can now authenticate with this authN ID and password.
Error Messages The user can now authenticate with this authN ID and password.
  Action token expired.

Active User and/or User Attribute - Alt. Flow 1
Alt. Flow 1 This flow follows the Add or Update User Email/Mobile Process.
  1 Once the user submits their desired authN ID, they then receive an email or SMS with an action token (clickable link, OTP, or both)
  2 The user then invokes the Process through one of two methods:
    a They manually enter the OTP into client UI (if the client prompts them for a code).
    b They click (or tap) the verification link in their email/SMS.
  3 ULM redeems the token, and verifies that the user is coming in from the Add or Update Email/Mobile flow.
  4 ULM fully activates a new email/mobile, or updates an existing email/mobile, based on the following criteria:
    a The email/mobile currently has a pending status. This means an existing email/mobile is being updated (as opposed to a new email being added to the User entity). ULM changes the email/mobile's status from pending to activated. If the replaced email/mobile was the user's primary notification channel, then this setting carries over to the updated email/mobile.
    b The email/mobile currently has an activating status. This means it is a new email/mobile being added to the ULM User entity. ULM changes the new email/mobile's status from activating status to activated.
  5 ULM automatically authenticates the user.
    Notes:
- If a new email/mobile is added to the User ID, then a notification is sent to that new channel.
- If the primary email/mobile was updated, then a notification is also sent to the email/mobile that is being replaced. The notification indicates that this email/mobile that has been removed from ULM.
- If the current/primary email or mobile is replaced, then ULM invalidates all other sessions (e.g., for remember me/auto-login) except for the current one.
Post-Conditions The new or updated email/mobile is activated as a authentication identifier (authN ID).
  The user can now authenticate with this authN ID and password.
  If a previous email or mobile was replaced, then that email/mobile is removed from the ULM User entity.
Error Messages User not found (i.e., the user ID referenced in the token no longer exists).
  Action token expired.

Edge Case
If a user successfully onboards and authenticates into ULM with their social account, and then selects to add an additional authN IDs to their User ID, the Activate User Process will first prompt the user to supply a password before it verifies the new authN ID.
The user must set a password on their ULM User ID if they want to have more than one authN ID registered to their User ID.

Active User and/or User Attribute - Alt. Flow 2
Alt. Flow 2 This flow follows the Onboard with Social Account flow, after the social provider delivers user info to ULM.
  1 (Conditional) ULM sends an action token to the user's email/mobile in one of the following scenarios:
    a The user changes the email/mobile value returned by the social provider.
    b The social provider does not return an email/mobile. Therefore, the user must provide and verify a contact channel.
    Notes:
- If the social provider returns an email/mobile, and the user simply confirms that email/mobile, then ULM trusts that the provider has validated the contact channel. In that scenario, the Activate User Process is not invoked. Instead, the Onboard & Authenticate User with Social Process completes user registration and full activation.
  2 The user then invokes the Process through one of two methods:
    a They manually enter the OTP into client UI (if the client prompts them for a code).
    b They click (or tap) the verification link in their email/SMS.
  3 ULM redeems the token, and verifies that the user is coming in from the Social Onboarding flow.
  4 ULM registers both the social media ID and email/mobile as attributes on the ULM User entity.
  5 ULM automatically authenticates the user.
Post-Conditions The ULM User ID is fully activated and associated to the social account.
  The user can now authenticate with that social account.
  The user-supplied email/mobile is now a valid authentication identifier (or authN ID).
  The user can optionally add a password to their User ID with the Update Password process.
Error Messages User not found (i.e., the user ID referenced in the token no longer exists).
  Action token expired.

Active User and/or User Attribute - Alt. Flow 3
Alt. Flow 3 A customer calls into the operator's business call center, and requests help with onboarding.
  1 A customer service representative (CSR) assists a customer over the phone. They enter customer's first name, last name, and email/mobile in the respective CRM.
    Notes:
- The CSR can provide any additional user details to be stored as attributes on the User entity.
- The CSR can not provide a password for the new User entity.
- The CSR can use the ULM Care UI to create the new ULM User ID.
- Alternatively, the operator's proprietary CRM can also invoke one of ULM's REST APIs for User provisioning.
  2 ULM creates the ULM User entity, and registers the authN ID and attribute on the entity. The authN ID has an activating status.
  3 ULM sends an action token to email/mobile provided by the CSR.
  4 The user invokes the Activate User Process through one of two methods:
    a They manually enter the OTP into client UI (if the client prompts them for a code).
    b They click (or tap) the verification link in their email/SMS.
  5 ULM looks up and locates the User ID based on the token data.
  6 ULM prompts the user to set a password.
  7 The user provides a password.
  8 ULM verifies the password, changes both the ULM User entity status and authN ID status from activating to activated.
Post-Conditions The ULM User ID is fully activated, and their email/mobile is now a valid authN ID.
  The user can log into ULM with this authN ID and a password.
Error Messages User not found (i.e., the user referenced in the OTP token).
  Action token expired.

App Settings

Out of the box, this Process includes the following application settings. These configurable settings modify and control the Process behaviour.

Application Settings Default Settings
Password Complexity Rules Defines the minimum criteria for an acceptable password. Configuration points include:
- Whether or not to require at least one uppercase (A-Z) character
- Whether or not to require at least one lowercase (a-z) character
- Whether or not to require at least one numeric (0-9) character
- The minimum password length
A-Z: Enabled
a-z: Enabled
0-9: Enabled
Minimum length: 8

See the edge case under Alt Flow 1 above for context of where and how a password prompt may come into effect with this Process.

User Journey Flow Diagram

The Activate User Process concludes a variety of different user journeys. See the Journey Flow diagrams for the following Processes for an idea of how this Process fits into those journeys:

  • Onboard User with Email & Mobile
  • Onboard & Authenticate User with Social Account
  • Add/Update Email, Mobile, or Alias
  • Authenticate User (if the user attempts to sign in with an unverified or activating authN ID)

API Walkthroughs

The following section provides guided walkthroughs of the Activate User Process.

Activate User ID with OTP Scenario

A separate process sends an OTP to the user (and sends a PKAT to the client application UI). The client application prompts the user for that OTP.

Request

The Session Token API initiates the Process, and uses the OTP the PKAT as URL parameters:

GET /session/token?customToken=12345&pkat=ZZZZ
<no body>

Response

If the token is valid, the Process starts, activates the User ID (and/or the user's authN ID), and returns a 200 HTTP status code.

Response Body
{
  "processId": "0c931a26-61df-4ed4-8121-592e0cf8c3dc",
  "lastStep": true,
  "runtimeId": 5014,
  "userId": 6040,
  "UserAuthenticated": true 
}

The Process also authenticates the user (if they are not already authenticated).

Response Parameters
Parameters Description
processId The unique identifier for this instance of the Process.
lastStep Boolean that indicates whether or not this was the last step in the Process.
runtimeId Identifier of the ULM Runtime entity currently associated to the ULM User entity.

About Runtime Entities: Upon user creation or authentication, ULM Cloud looks for a JRUNTIMEID cookie in the end user's browser or application. If no cookie is found, ULM creates a Runtime Entity with a unique ID and associates it to the user during the login phase. ULM will generate and pass a corresponding JRUNTIMEID cookie for clients to store and return with subsequent requests.
userId The unique identifier of the current user.
userAuthenticated Boolean that indicates if the user was authenticated into ULM.

Activate AuthN ID with Link Scenario

A separate process sends a clickable verification link to the user (and sends a PKAT to the client application UI). The link includes a redirect URL back to the client, and the action value appended to the URL. The client application prompts the user to go to their email/mobile to verify it.

Request

The user clicks the verification link, which then redirects them back to the client. The Session Token API initiates the Process and uses the token value as a URL parameter:

GET /session/token?value=28965cc4-6b5f-4f41-aba4-7dfef2432fee
<no body>

Response

If the token is valid, the Process starts, activates the authN ID, and returns a 200 HTTP status code:

Response Body
{
    "processId": "0c931a26-61df-4ed4-8121-592e0cf8c3dc",
    "lastStep": true,
    "runtimeId": 5014,
    "userId": 6040,
    "userAuthenticated": true 
}

The Process also authenticates the user (if they are not already authenticated).

Response Parameters
Parameters Description
processId The unique identifier for this instance of the Process.
lastStep Boolean that indicates whether or not this was the last step in the Process.
runtimeId Identifier of the ULM Runtime entity currently associated to the ULM User entity.

About Runtime Entities: Upon user creation or authentication, ULM Cloud looks for a JRUNTIMEID cookie in the end user's browser or application. If no cookie is found, ULM creates a Runtime Entity with a unique ID and associates it to the user during the login phase. ULM will generate and pass a corresponding JRUNTIMEID cookie for clients to store and return with subsequent requests.
userId The unique identifier of the current user.
userAuthenticated Boolean that indicates if the user was authenticated into ULM.

Activate AuthN ID with Link, Password Required

A user onboards into ULM successfully with their social account. Therefore, they have a verified authN ID but no password. The user decides to add a another authN ID to their user profile, and that Process sends a clickable verification link to the user (and sends a PKAT to the client application UI). The link includes a redirect URL back to the client, and the action value appended to the URL. The client application prompts the user to go to their email/mobile to verify it.

However, in this scenario, the Process prompts for a required password before it completes its task. This is because a user must set a password before they are allowed to have more than one authN ID.

Initial Request

The user clicks the verification link, which then redirects them back to the client. The Session Token API initiates the Process and uses the token value as a URL parameter:

GET /session/token?value=28965cc4-6b5f-4f41-aba4-7dfef2432fee
<no body>

Initial Response: Prompt for Password

If the token is valid, the Process starts and prompts the user to set a password:

Response Body
{
    "processId": "c8f337af-5cf1-4958-bdc2-e83fb942c8fd",
    "processName": "onboard.ActivateUserAndAttribute.v1.0",
    "stepName": "CreateCredentialPrompt",
    "lastStep": false,
    "displayMessage": "Please set a password",
    "parameters": {
        "credential": "String"
    },
    "output": {
        "activatedAuthenticationIdentifier": {
            "type": "EMAIL",
            "value": "email@amdocs.com"
        },
        "userDisplayName": "Jane Smith",
        "newUser": false
    }
}
Response Parameters
Parameters Description
processId Unique identifier for the current instance of this Process.
processName Full name of the Process, including the category and version number.
stepName Name of the specific step that the Process is currently on.
lastStep Boolean that indicates whether or not this was the last step in the Process.
displayMessage Optional message that the UI can display to the end user.
parameters Object that contains the data that was requested in the previous Process response
  credential The user's desired password.
output Object that contains data that the client can consume, retain, and use for additional operations.
  activatedAuthenticationIdentifier Object that contains the target authN ID to be activated.
    type The authN ID type (e.g. e-mail or phone number).
    value The actual authN ID value.
  userDisplayName User's display name (first and/or last name).
  newUser Boolean that indicates if the user is new to ULM Cloud and is being activated for the first time. False if the user is activating a new Authentication Identifier to an existing ULM ID.

Next Request: User Provides Password

The user enters their desired password, and the client passes that info to the Process with the Process Step API.

PUT /process/step
{
    "processId": "c8f337af-5cf1-4958-bdc2-e83fb942c8fd",
    "parameters": {
        "credential": "Test_test1!13"
    }
}
Request Parameters
Parameters Description
processId Unique identifier for the current instance of this Process.
parameters Object that contains the data that was requested in the previous Process response.
  credential The desired password.

Final Response: Success

If the password passes validation, the Process activates the authN ID, and returns a 200 HTTP status code:

Response Body
{
    "processId": "0c931a26-61df-4ed4-8121-592e0cf8c3dc",
    "lastStep": true,
    "runtimeId": 5014,
    "userId": 6040,
    "userAuthenticated": true 
}

The Process also authenticates the user. Going forward, the user can now authenticate with this authN ID and password.

Response Parameters
Parameters Description
processId The unique identifier for this instance of the Process.
lastStep Boolean that indicates whether or not this was the last step in the Process.
runtimeId Identifier of the ULM Runtime entity currently associated to the ULM User entity.
userId The unique identifier of the current user.
userAuthenticated Boolean that indicates if the user was authenticated into ULM.

Error Codes

Below is a comprehensive list of potential error codes that may be returned during the execution of this Process.

Common Error Code

Common Process Error Codes

Process-Specific Error Codes

HTTP Status Format ULM Error Code Field Description
404 operation error user-not-found n/a If the user associated with the provided OTP has been removed.
400 validation error NotEmpty credential Provided value must not be empty.
400 validation error NotWeakPassword credential Password given must pass the password complexity rules.

Revision History

Version Description
2020.09 Added this topic.