← Back to plugin index

Matrix Checking Step

Description
Step to verify a matrix card/index list challenge.
Type name
MatrixAuthStep
Class
com.airlock.iam.flow.shared.application.configuration.matrix.MatrixAuthStepConfig
May be used by
License-Tags
Matrixcard
Properties
TAN Service (tanService)
Description
The TAN service to be used.
Attributes
Plugin-Link
Mandatory
Assignable plugins
TAN List Type (tanListType)
Description
The type of the Matrix Card/TAN list to be used. It is one of the following:
  • Indexed TAN list: A token list with an index next to each token. The tokens are queried in random order.
  • Matrix card: A matrix card with the tokens organized in rows and columns. The tokens are queried in random order.
Attributes
Enum
Mandatory
Token List Renderer (tokenListRenderer)
Description
Tells the authenticator which token list renderer has been used for producing the matrix card. This is needed for the translation of internal indices to challenge coordinates.
This property is only required if "TAN List Type" is set to Matrix card.
Attributes
Plugin-Link
Optional
Assignable plugins
Authentication Method ID (authenticationMethodId)
Description
The identifier of the authentication method for this step. Since the authentication method is also the identifier for failed login attempts for this step, distinct identifiers must be chosen if multiple instances of the same step type are used to check different credentials (e.g., two password step instances check two different passwords).

Example: a system tracks two passwords per user. Password 1 is used in flow A, password 2 in flow B. These two steps must have distinct 'Authentication Method Ids', e.g. PASSWORD1 and PASSWORD2.

If only one identifier (e.g. "PASSWORD") is used, this may allow brute force attacks on the password as follows. Assuming an attacker knows the user's password 1, they get an unlimited number of attempts on flow B, as the 'PASSWORD' counter can repeatedly be reset to 0 by performing a successful login on flow A.

To prevent such attacks, use two different counters by setting the authentication methods, for example, to PASSWORD1 and PASSWORD2, respectively.

Attributes
String
Optional
Length <= 23
Default value
MATRIX
Start Index (startIndex)
Description
If indexed token lists (see configuration property "TAN List Type") are used, this property defines the lowest index. Usually the start index is zero or one (default).
If the "TAN List Type" is not "Indexed TAN list", this property is ignored.
Attributes
Integer
Optional
Default value
1
Challenge Validity [ms] (responseValidityMillis)
Description
The number of milliseconds a response is valid for. If a response is provided correctly but after its expiration, the step will fail.

If not set, this feature is disabled, i.e. challenges never expire (this is the default).

Attributes
Integer
Optional
Max Retries (maxRetries)
Description

The number of times a wrong response can be sent before the flow is aborted. If set to zero (the default), only one attempt is possible.

The purpose of this settings is usability. The failed attempts counter is always increased upon receiving a wrong response and the user is locked when the global failed attempts limit is exceeded.

Attributes
Integer
Optional
Default value
0
New Challenge On Retry (newChallengeOnRetry)
Description
If "Max Retries" is set to a value bigger than 0, this property specifies if a new challenge is generated for the retry.
Attributes
Boolean
Optional
Default value
true
Count Unanswered Challenges (countUnansweredChallenges)
Description

If enabled, any pending challenge that is abandoned will be counted as an unanswered challenge. After too many unanswered challenges (see the "Max Unanswered Challenges" property), further attempts will always fail. This prevents an attacker from being able to "wait" for a specific challenge that has been leaked.

Important: This feature requires the properties 'Col Challenge Open Since' and 'Col Unanswered Challenges' on the Token List Persister to be configured, otherwise it will not work properly.

Attributes
Boolean
Optional
Default value
true
Unanswered Challenge Timeout [in Hours] (unansweredChallengeTimeout)
Description
When "Count Unanswered Challenges" is enabled, this property sets the timeout for unanswered challenges. When an unanswered challenge times out, the unanswered challenges counter is reset. Make sure to also configure the properties 'Col Challenge Open Since' and 'Col Unanswered Challenges' on the Token List Persister, otherwise this feature will not work properly.
Attributes
Integer
Optional
Default value
12
Max Unanswered Challenges (maxUnansweredChallenges)
Description
When "Count Unanswered Challenges" is enabled, this property sets the maximum number of unanswered challenges. Once this limit is exceeded, the step will always fail.
Attributes
Integer
Optional
Default value
3
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: MatrixAuthStep
id: MatrixAuthStep-xxxxxx
displayName: 
comment: 
properties:
  authenticationMethodId: MATRIX
  countUnansweredChallenges: true
  customFailureResponseAttributes:
  customResponseAttributes:
  dynamicStepActivations:
  interactiveGotoTargets:
  maxRetries: 0
  maxUnansweredChallenges: 3
  newChallengeOnRetry: true
  onFailureGotos:
  preCondition:
  requiresActivation: false
  responseValidityMillis:
  skipCondition:
  startIndex: 1
  stepId:
  tagsOnSuccess:
  tanListType:
  tanService:
  tokenListRenderer:
  unansweredChallengeTimeout: 12