← Back to plugin index

Email Verification Step

Description

User self-registration flow step that verifies the email address of a user by sending an email with an OTP that has to be entered correctly for the flow to continue.

Note that channel verification is the only way to ensure the uniqueness of email addresses while at the same time not revealing already registered email addresses (if Stealth Mode is enabled).

Type name
EmailRegistrationVerificationStep
Class
com.airlock.iam.userselfreg.application.configuration.step.EmailRegistrationVerificationStepConfig
May be used by
License-Tags
SelfRegistration
Properties
Email Item (emailItemDefinition)
Description
Verification target. This item must contain the email address of the user.
Attributes
Plugin-Link
Mandatory
Assignable plugins
CAPTCHA (captchaProvider)
Description
If a CAPTCHA is configured, a CAPTCHA challenge will be added to:
  • the response of the flow selecting request (when this step is the first interactive step in a flow).
  • the step response immediately preceding the protected step (when this step is not the first interactive step in a flow).
To complete this step and proceed with the flow, the CAPTCHA must be solved successfully.
Caution: The CAPTCHA only protects the verification of the OTP. The OTP is send to the user before the CAPTCHA is solved.
Attributes
Plugin-Link
Optional
Assignable plugins
Email Service (emailService)
Description
Email service for sending emails.
Attributes
Plugin-Link
Mandatory
Assignable plugins
OTP Generator (otpGenerator)
Description
Secret string generator to create the OTP. Make sure that the code is long enough to prevent brute-force attacks (by restarting the flow multiple times).
Attributes
Plugin-Link
Mandatory
Assignable plugins
Email Message Provider (emailMessageProvider)
Description
Creates the Email message content.
Attributes
Plugin-Link
Mandatory
Assignable plugins
Max Failed Attempts (maxFailedAttempts)
Description
Number of allowed failed attempts before the flow is aborted.
Attributes
Integer
Optional
Default value
1
OTP Validity [s] (otpValidity)
Description
Determines how long the OTP is valid (in seconds).
Attributes
Integer
Optional
Default value
300
Otp Case Sensitive (otpCaseSensitive)
Description
If enabled, the case of characters is considered when matching the entered otp against the generated one.
Attributes
Boolean
Optional
Default value
true
Send As HTML (sendAsHtml)
Description

If enabled, the verification email will be sent as an HTML mail. Otherwise it will be sent as plain text.

Security Warning: If e-mails are sent as HTML, make sure to properly escape values originating from untrusted sources (such as user input during self-registration). This can be achieved by enabling the property 'Escape Values in HTML'.

If a more fine-grained control is required, use a 'Transforming Value Map Provider' with an 'HTML String Escaper' to transform all values of the map. (Alternatively, if you want to transform only individual values of a map, use a 'Value Provider Map' with 'Transforming String Value Providers'.)

Attributes
Boolean
Optional
Default value
false
Masking Settings (maskingSettings)
Description
Settings for masking the email address in the REST API responses. Please refer to the REST API documentation for further details.

If left empty, the email address will not be masked.

Attributes
Plugin-Link
Optional
Assignable plugins
Interactive Goto Targets (interactiveGotoTargets)
Description
Manually selectable Goto targets. These are steps to which the user can chose to jump when this is the current flow step.
Attributes
Plugin-List
Optional
Assignable plugins
Dynamic Step Activations (dynamicStepActivations)
Description
Steps that can be dynamically activated while in this step.
Attributes
Plugin-List
Optional
Assignable plugins
Skip Condition (skipCondition)
Description

If this condition is configured and fulfilled, the step is skipped and the flow execution continues with the subsequent step.

Attributes
Plugin-Link
Optional
Assignable plugins
Pre Condition (preCondition)
Description
This step is executed only if the configured pre condition is fulfilled. If the condition is not fulfilled, the step and flow execution fail immediately. The step is not initialized and no step method can be called. If no condition is configured, the behavior is that of a fulfilled pre condition.
Attributes
Plugin-Link
Optional
Assignable plugins
Requires Activation (requiresActivation)
Description
If enabled, this step is only executed if it has been dynamically activated from a previous step. If it has not been activated, the step is skipped (equivalent to when the skip condition is fulfilled).
Attributes
Boolean
Optional
Default value
false
Tags On Success (tagsOnSuccess)
Description
This step grants these tags if it completes successfully.
Attributes
Plugin-List
Optional
Assignable plugins
Step ID (stepId)
Description
ID of this step. This is only needed if this step is the target of a goto action or if this step requires activation.
Attributes
Plugin-Link
Optional
Assignable plugins
On Failure Gotos (onFailureGotos)
Description

If the step fails (no retry) and a goto target for the error code is defined here, the flow does not fail and instead a "goto" to the specified target step is executed. Note that even when the "goto" is executed, any error codes that are considered a failed factor attempt will still increment the "failed attempts" counter, and may lead to the user being locked. Therefore, this may still result in a failed flow.

A typical application of this feature is switching to an alternative authentication factor step, if an external service (e.g. Futurae server, SMS gateway) is not available (error code EXTERNAL_SERVICE_UNAVAILABLE with "Strict Counting" disabled, which will not increment the "failed attempts" counter). Other error codes can be found in the IAM REST documentation, in both the general "Error Codes" section and in the documentation of specific endpoints.

Attributes
Plugin-Map
Optional
Assignable plugins
Custom Response Attributes (customResponseAttributes)
Description

A list of custom attributes that are returned in the REST response in addition to the standard attributes the step already returns. The custom attributes defined here are only returned if the step result does not lead to an error response.

Custom attributes are added to the response when a step is initialized and when actions are executed on the step. They will therefore be available in the response leading to this step, and in any responses from endpoints specific to this step. For non-interactive steps, custom attributes are accumulated and added to the response leading to the next interactive step.

Custom attributes are not returned for 'retrieve' endpoints.

Attributes
Plugin-List
Optional
Assignable plugins
YAML Template (with default values)

type: EmailRegistrationVerificationStep
id: EmailRegistrationVerificationStep-xxxxxx
displayName: 
comment: 
properties:
  captchaProvider:
  customFailureResponseAttributes:
  customResponseAttributes:
  dynamicStepActivations:
  emailItemDefinition:
  emailMessageProvider:
  emailService:
  interactiveGotoTargets:
  maskingSettings:
  maxFailedAttempts: 1
  onFailureGotos:
  otpCaseSensitive: true
  otpGenerator:
  otpValidity: 300
  preCondition:
  requiresActivation: false
  sendAsHtml: false
  skipCondition:
  stepId:
  tagsOnSuccess: