← Back to plugin index

SSO Ticket Authentication Step

Description
Non-interactive SSO ticket flow step. This step extracts an SSO ticket from the request to identify the user and award tags to this user. Up to 100000 tickets are kept in memory (until expiration) to prevent re-use of the same ticket.
Type name
SsoTicketAuthenticationStep
Class
com.airlock.iam.authentication.application.configuration.sso.SsoTicketIdentifyingStepConfig
May be used by
License-Tags
SSOTickets
Properties
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
SSO_TICKET
Ignore Ticket Data Of Tickets For Authenticated User (ignoreTicketDataOfTicketsForAuthenticatedUser)
Description

Ignores ticket data of tickets for the already authenticated user in the session. The step will be successful in such cases. Tickets will in any case still be validated and the step will fail for invalid tickets or tickets identifying a different user than the already authenticated user.

This configuration might be useful in combination with other features (e.g. OpenId Connect SSO Login Hint), so that the ticket is ignored in case of an existing user session with the same user as in the ticket.

Attributes
Boolean
Optional
Default value
false
Ticket Extractors (ticketExtractors)
Description
List of ticket extractors that can extract an SSO ticket from the request. The ticket of the first successful extractor is used.
Attributes
Plugin-List
Mandatory
Assignable plugins
Ticket Decoder (ticketDecoder)
Description
Decodes the SSO ticket.
Attributes
Plugin-Link
Mandatory
Assignable plugins
Accepted SSO Tickets Repository (acceptedSsoTicketRepository)
Description

Configures the repository used to store accepted SSO tickets and reject previously accepted ones.

The in-memory repository cannot be used if multiple instances of IAM are deployed in parallel (failover, horizontal scaling). Furthermore, the in-memory repository does not preserve previously accepted SSO tickets across IAM restarts.

Attributes
Plugin-Link
Mandatory
Assignable plugins
Username Ticket Key (usernameTicketKey)
Description
The ticket key where the username is stored. The value stored under this key is used to identify the user.
Attributes
String
Optional
Default value
username
Ticket Tag Extractors (ticketTagExtractors)
Description
List of ticket tag extractors that extract flow tags from the ticket that the user receives, when they complete this step successfully. The tags of all configured extractors are granted in addition to the tags configured under 'Tags On Success'.
Attributes
Plugin-List
Optional
Assignable plugins
Ticket Role Extractors (ticketRoleExtractors)
Description
List of ticket role extractors that extract roles from the ticket, if this step is completed successfully. These roles are stored in the user session and can be accessed with the SSO Ticket Roles Provider.
Attributes
Plugin-List
Optional
Assignable plugins
Ticket Context Data Extractors (ticketContextDataExtractors)
Description
List of ticket context data extractors that extract context data from the ticket, if this step is completed successfully. These data are stored in the user session and can be accessed with the SSO Ticket Context Data Provider.
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: SsoTicketAuthenticationStep
id: SsoTicketAuthenticationStep-xxxxxx
displayName: 
comment: 
properties:
  acceptedSsoTicketRepository:
  authenticationMethodId: SSO_TICKET
  customFailureResponseAttributes:
  customResponseAttributes:
  ignoreTicketDataOfTicketsForAuthenticatedUser: false
  onFailureGotos:
  preCondition:
  requiresActivation: false
  skipCondition:
  stepId:
  tagsOnSuccess:
  ticketContextDataExtractors:
  ticketDecoder:
  ticketExtractors:
  ticketRoleExtractors:
  ticketTagExtractors:
  usernameTicketKey: username