Authentication Flow
steps) processors) The configured processors are extended with the following processors (if not already present):
- User Enumeration Protection Processor (only if "Prevent User Enumeration" enabled)
- Temporary Locking Processor (only if "Enable Temporary Locking" enabled)
preventUserEnumeration) If enabled, user enumeration is prevented by not revealing what went wrong in a user identifying step ("Stealth Mode"). In particular, all failures because of wrong password or not existing, locked or invalid user are answered with the same generic error code AUTHENTICATION_FAILED. Furthermore, the sessions of the user will be terminated on IAM and on the Airlock Gateway (WAF).
Note that this feature is not compatible with Temporary Locking. It is recommended to configure a "Fixed Response Duration" for failed responses to prevent user enumeration timing attacks.
Important note: This feature only protects against user enumeration if the identifying step identifies the user and at the same time checks a credential, e.g. in case of "Password Authentication" or "Device Token Authentication". If the "User Identifying Step" is used, this feature does not protect against user enumeration.
If enabled, a "User Enumeration Protection Processor" is automatically added to the list of flow processors.
temporaryLockingActive) Enables Temporary Locking for this flow.
Note: This is only effective, if temporary locking is also enabled in the "Target Applications and Authentication" plugin.
If enabled, a "Temporary Locking Processor" is automatically added to the list of flow processors.
Note: Disabling and re-enabling this feature does not reset temporary locks.
addRemainingAttemptsInfo) If enabled, for any step result that caused an increase in the number of failed attempts, the remaining number of attempts for that factor is returned with the step result.
This feature is not combinable with username enumeration protection.
usernameTransformers) The transformation of a username takes place in the first step before the user is loaded. Note that username transformers have no effect on the propagated username value. Transformers can be chained, i.e. a first transformer could normalize the original name, where the next transformer looks up the normalized name in a database for potential transformation matches.
In contrary to the above description of chaining, a transformer can also signal that it already found the final user ID and the chain must stop after it.
For further details please refer to the documentation of the username transformer plugins.
additionalAttributes) Whitelist of additional attributes (e.g. headers or REST attributes) for the check password authentication REST call (/<loginapp-uri>/rest/public/authentication/password/check/).
Attributes with matching names and valid values are made available to the flow.
persistencyless) If enabled, this flow does not consider persistency, i.e. users don't have to exist locally in order to be authenticated. This is typically used with SSO tickets or external authentication using OAuth or SAML.
Persistency-less flows are very limited in their capabilities, in particular:
- Password checks and second factor authentication are not possible.
- The user state (locked, invalid etc.) cannot be verified.
- Identity propagation is limited to the information received from external systems.
Note that configuration validation support is limited. It is essential to test such a flow extensively to ensure it behaves correctly in all situations.
It is recommended to use the "Default Persistency-less Authentication Processors" when using a persistency-less flow.
type: AuthenticationFlow
id: AuthenticationFlow-xxxxxx
displayName:
comment:
properties:
addRemainingAttemptsInfo: false
additionalAttributes:
persistencyless: false
preventUserEnumeration: false
processors:
steps:
temporaryLockingActive: true
usernameTransformers: