Skip to content

Fortified IDDocs

Common configuration

Authenticator commons

All authenticators are configured in the same way and share some common configuration properties.

NameDescriptionDefault valueMandatory
idUnique identifier of authenticator N/Atrue
typeAuthenticator type (class name) or aliasN/Atrue
configAuthenticator configuration object (optional){}false
NameDescriptionDefault valueMandatory
context_pathThe HTTP context path that the authenticator will be bound to. Use this property when configuring standalone authenticators. (mandatory unless base_path is specified)N/Atrue
base_pathPrefix of the context path that the authenticator will be bound to. This value is combined with the authenticator id to form a complete context path. Use this property when configuring chain and selectors. (mandatory unless context_path is specified)N/Atrue
success_locationTarget location to where the user agent will be redirected when authentication has succeeded. Use this property when configuring standalone or top level chain authenticators. N/Afalse
failure_locationThe target location to where the user agent will be redirected when authentication fails. Supports expression expansion. If running in a chain, the first detected value on the way back to the first authenticator will be used. If not specified a built-in error page will be displayed.N/Afalse
cancel_locationTarget location to where the user agent will be redirected when authentication is cancelled. If running in a chain, the first detected value on the way back to the first authenticator will be used. This enables the use of context specific locations. If not specified the authentication will be restarted and the first visible authenticator will be displayed.N/Afalse
webroot_dirPath to directory serving as authenticator web root containing view resources. Defaults to a directory supplied by the authenticator type. Set it explicitly to replace the built-in user interface, see Custom frontend.N/Afalse
view_pathEntry point served for a view request, relative to the authenticator web root.index.htmlfalse
overlay_dirPath to directory serving as authenticator overlay containing custom view resources. Resources in the overlay have precedence over resources in the web root, which means that if a resource exists in both, the one from the overlay will be served.${system.customer_home}/overlayfalse
overlay_dirsList of overlay_dir:s. Entries are processed in the defined order.N/Afalse
enable_precompressionServe precompressed .br or .gz variants of web root resources when the user agent accepts them.falsefalse
enable_precompression_overlayServe precompressed variants of overlay resources when the user agent accepts them.falsefalse
header_whitelistList of HTTP headers to include in authentication context. This list is combined with the default list to form the complete header whitelist. Header names are case insensitive.""false
exportsList of properties exported when authenticator is complete. See below for details.[]false

Example:

{
"failure_location": "/authn/failure.html?trace_id=${session.trace_id}"
}

This is useful when redirecting to a custom error page such as InfoEndpoint and you want to include the current trace ID in the URL.

Advanced configuration properties are optional.

Name Description Default
expiry Authentication expiry. A completed authentication is valid for this duration. Defaults to 30min. PT30M
http_session_cookie_name Name of session cookie to use for a specific authenticator "__session"
http_session_timeout_ms Custom HTTP session timeout in ms. When sharing context with other authenticators the value used is the value set by the first point of entry, session creation. 1800000
http_session_cookie_secure Flag controlling if HTTP session cookie requires SSL ("Secure"). For more information, see below. "true"
http_session_cookie_same_site HTTP session cookie SameSite-policy controlling how third-party cookies are handled. Legal values are: "NONE" (requires SSL and Secure), "LAX" and "STRICT". For more information, see below. "NONE"
http_request_body_limit Max size of the request body allowed (Default: 2MB) 2097152
http_form_attr_limit Max size of a form. (Default: 0,5MB) 524288
header_whitelist_default Default list of HTTP headers to include in authentication context. Header names are case insensitive. "Forwarded,X-Forwarded-For,X-Forwarded-Host,X-Forwarded-Proto,X-SSL-Client-Cert,X-SSL-Client-Chain,X-SSL-Client-Subject,X-SSL-Client-Verify,X-SSL-Protocol"
standalone Flag forcing authenticator to operate in standalone mode or not. A standalone authenticator is not part of a chain. By default this value is calculated based on current configuration.
require_chain Flag specifying if an authenticator must be executed inside a chain. Defaults to true for all non-chain authenticators. true

When configuring authentication flows crossing site boundaries (for example by using SAML) advanced HTTP cookie configuration may be required since modern browsers doesn't allow sending cookies to other sites/domains and if an incoming ("returning") request doesn't contain a session cookie, the flow will fail.

For a cookie to be sent from one site to another the following is required:

  • The connection is secure (HTTPS)
  • Cookie is marked as "Secure" (only sent when connection is secure)
  • Cookie "SameSite" policy is set to "None" (cookies to other sites are allowed)

If authenticators are behind a proxy/firewall that manages/terminates SSL (i.e the connection between proxy/firewall and authenticators are not secure) the connection is secure from the browsers perspective.

{
"name": "AuthN",
"config": {
"http_session_cookie_secure": true,
"http_session_cookie_same_site": "NONE",
"authenticators": []
}

When an authenticator is completed it will perform an export of configured properties. Exported properties are available for all following authenticators and pipes.

Property values supports authenticator expansion (see below).

NameDescriptionDefaultExpansion
nameName of propertyN/Afalse
valueValue of property. Can be a static value, and expansion expression or a combination of both.N/Atrue

Expansion is a configuration mechanism that replaces expressions ${scope.name} with values. Depending on where in the system lifecycle the expression is expanded, different scopes are available.

During authentication the following scopes exist:

The following scopes are available:

NameDescriptionCase-insensitive
requestThe current HTTP request including headers and paramsfalse
sessionThe current sessionfalse
stateThe current authenticator statefalse
exportsExported authenticator statefalse
inputauthenticator inputfalse
subjectThe current subject value, not an actual scopefalse
utilUtilitiesfalse

Generic HTTP request properties.

Name Description Syntax
headers Map/dictionary of request headers. Keys are case-insensitive.

${request.headers.name}

${request.headers['header-name']}

params Map/dictionary of request parameters.

${request.params.name}

${request.params['param-name']}

method Request method (GET,PUT,POST, etc) ${request.method}
uri Requested URI ${request.uri}
path Requested path ${request.path}
remote_address Client IP-address. ${request.remote_address}

Properties stored in session.

Name Description Example
id Session id ${session.id}
trace_id Trace identifier ${session.trace_id}
* Named value stored in session ${session.name}

Authenticator specific properties.

See authenticator specific documentation for available properties.

Name Description Example
* Named value store in authenticator state. ${state.name}

Properties exported by authenticator (code or config) or pipe available to all following authenticator(s) and pipes.

See authenticator specific documentation for properties exported by default.

Name Description Example
* Named value exported by authenticator(s). ${exports.name}

Authenticator input properties. Input is data provided by the authenticating user (like username or otp) or the result of a user action (like the id of a selected selector option).

See authenticator specific documentation for available input properties.

Name Description Example
* Named authenticator input value. ${input.name}
Name Description Example
uuid Random UUID. A new UUID is generated for each expansion. ${util.uuid}
now Timestamp in ISO 8601 format (2023-08-13T16:07:54+02:00) ${util.now}