Skip to content

Fortified IDDocs

OTP validator

Used to validate a OTP either generated by an mobile app, token device or sent to the user via SMS/e-mail. Often used in conjunction with other authenticators. Requires modules AuthN & Pipes.

Using tokens when authenticating assumes that the user has a token.
Fortified ID have a product called Fortified ID Enrollment to help user to easily enroll for tokens.

Common Authenticator configuration can be found here.

NameDescriptionDefault valueMandatory
pipe_idPipe to use for validation.N/Atrue
pre_pipe_idPipe commonly used for sending OTPs. N/Afalse
allowed_otp_retryAllowed number of times a user is allowed to enter OTP before process is aborted.2false
webroot_dirSee common authenticator configurationweb/authenticator/otp_validationfalse
custom_identifierTag used for event separationN/Afalse

Apart from system logging, event logging is done when completing and failing a transaction.

Event ids are:

  • WEB_100019("OTP validated")

    • IDENTIFIER (user trace id)
    • CUSTOMER_IDENTIFIER (if configured)
    • SOURCE_ADDRESS (ip of the remote session)
  • WEB_100020("OTP validation failed")

    • IDENTIFIER (user trace id)
    • CUSTOMER_IDENTIFIER (if configured)
    • SOURCE_ADDRESS (ip of the remote session)

On otp-validation, data sent to pipe is:

  • otp - entered by user

None

API follows the general conventions of the Fortified Web Authenticator API.

All requests use the HTTP PUT method with Content-Type: application/json, sent to the directory URL the view was loaded from. The session cookie must be sent with every request.

MessagePurpose
stateFetch the current state. Send it when the view loads.
startSubmit the one-time password for validation.
cancelCancel the authentication.

Send this when the view loads, and after a browser reload. It moves a pending authenticator into progress and reports that the view may collect input.

{
"type": "state"
}

Send the one-time password entered by the user.

{
"type": "start",
"data": {
"otp": "<otp>"
}
}

A request can be canceled at any time. This is done by sending a cancel request.

{
"type": "cancel"
}

Expect HTTP status code 200. Anything else is to be considered an error.

The body is a JSON object. A step that is still in progress answers with a status property; a step that ends the authenticator answers with a complete, cancel, or failure message as described in Web Authenticator API.

StatusMeaning
ABOUT_TO_STARTThe authenticator is ready and the view should collect the one-time password.
ERRORThe one-time password was missing or rejected. Attempts remain.
{
"otp_validation.otp": "One-time password",
"otp_validation.start_validate": "Verify one-time password",
"otp_validation.verified": "One-time password verified",
"otp_validation.redirecting": "Redirecting...",
"otp_validation.cancel": "Cancel",
"otp_validation.ERROR": "Wrong one-time password",
"allow-cookies-body": "To save your language settings on this device you need to approve a language cookie.",
"allow-cookies-button": "Approve language cookie",
"authentication.help_text": "",
"change_language": ""
}
{
"otp_validation.otp": "Engångslösenord",
"otp_validation.start_validate": "Verifiera engångslösenord",
"otp_validation.verified": "Engångslösenord verifierat",
"otp_validation.redirecting": "Omdirigerar...",
"otp_validation.cancel": "Avbryt",
"otp_validation.ERROR": "Felaktigt engångslösenord",
"allow-cookies-body": "Vill du spara dina språkinställningar på denna enhet behövs ett godkännande av språk-cookie.",
"allow-cookies-button": "Godkänn språk-cookie",
"authentication.help_text": "",
"change_language": ""
}