Authentication nodes configuration reference
This page covers the configuration of the authentication nodes that are built into AM.
A number of additional authentication nodes are available from the ForgeRock Marketplace website. |
Basic authentication nodes
Use the following nodes for basic authentication tasks, such as collecting usernames and passwords:
Data Store Decision node
The Data Store Decision authentication node verifies that the username and password values exist in the data store configured in the realm.
For example, the username and password could be obtained by a combination of the Username Collector node and Password Collector node, or the Zero Page Login Collector node.
Tree evaluation continues along the True
path if the credentials are located in the configured data store.
Otherwise, the tree evaluation continues along the False
path.
Unlike the LDAP Decision node, which supports LDAP Behera Password Policies, the data store decision node does not have separate outcomes for accounts that are locked or their password has expired. |
Kerberos node
The Kerberos authentication node enables desktop single sign-on such that a user who has already authenticated with a Kerberos Key Distribution Center can authenticate to AM without having to provide the login information again.
To achieve this, the user presents a Kerberos token to AM through the Simple and Protected GSS-API Negotiation Mechanism (SPNEGO) protocol.
End users may need to set up Integrated Windows Authentication in Microsoft Edge to benefit from single sign-on when logged on to a Windows desktop.
Tree evaluation continues along the True
path if Windows Desktop SSO is successful.
Otherwise, the tree evaluation continues along the False
path.
Properties
Property | Usage | ||
---|---|---|---|
Service Principal |
Specifies the Kerberos principal for authentication in the format In multi-instance AM deployments, configure AM-DOMAIN as the FQDN or IP address of the load balancer in front of the AM instances. For example, For more information, see the KB article How do I set up the WDSSO authentication module in AM in a load-balanced environment?. |
||
Key Tab File Path |
Specifies the full, absolute path of the keytab file for the specified Service Principal.
|
||
Kerberos Realm |
Specifies the name of the Kerberos (Active Directory) realm used for authentication. Must be specified in all caps. |
||
Kerberos Server Name |
Specifies the fully qualified domain name, or IP address of the Kerberos (Active Directory) server. |
||
Trusted Kerberos realms |
Specifies a list of trusted Kerberos realms for user Kerberos tickets. If realms are configured, then Kerberos tickets are only accepted if the realm part of the user principal name of the user’s Kerberos ticket matches a realm from the list. Each trusted Kerberos realm must be specified in all caps. |
||
Return Principal with Domain Name |
When enabled, AM returns the fully qualified name of the authenticated user rather than just the username. |
||
Lookup User In Realm |
Validates the user against the configured data stores.
If the user from the Kerberos token is not found, tree evaluation continues along the This search uses the |
||
Is Initiator |
When enabled ( When disabled ( |
LDAP Decision node
The LDAP Decision authentication node verifies that the provided username and password values exist in a specified LDAP user data store, and whether they are expired or locked out.
For example, the username and password could be obtained by a combination of the Username Collector node and Password Collector node, or by using the Zero Page Login Collector node.
Tree evaluation continues along the True
outcome path
if the credentials are located in the specified LDAP user data store.
If the profile associated with the username and password is locked, or the password has expired,
tree evaluation continues along the respective Locked
or Expired
outcome paths.
If the user needs to change their password on first login, but cancels the password change form,
tree evaluation continues along the Cancelled
outcome path.
If the credentials are not found, the tree evaluation continues along the False
outcome path.
The LDAP Decision node requires specific user attributes in the LDAP user data store. These required attributes are present by default in ForgeRock Directory Services. If you are using an alternative identity store, you might need to modify your LDAP schema to use this node. |
Properties
Property | Usage |
---|---|
Primary LDAP Server |
Specify one or more primary directory servers.
Specify each directory server in the following format: For example, |
Secondary LDAP Server |
Specify one or more secondary directory servers.
Specify each directory server in the following format: Secondary servers are used when none of the primary servers are available. For example, |
DN to Start User Search |
Specify the DN from which to start the user search.
More specific DNs, such as If multiple entries exist in the store with identical attribute values, ensure this property is specific enough to return only one entry. |
Bind User DN, Bind User Password |
Specifies the credentials used to bind to the LDAP user data store. |
Attribute Used to Retrieve User Profile |
Specifies the attribute used to retrieve the profile of a user from the directory server. The user search will have already happened, as specified by the Attributes Used to Search for a User to be Authenticated and User Search Filter properties. |
Attributes Used to Search for a User to be Authenticated |
Specifies the attributes used to match an entry in the directory server to the credentials provided by the user. The default value of Multiple attribute values allow the user to authenticate with any one of the values.
For example, if you have both Note that if you have specified multiple attribute values,
you must also add those attributes to the |
User Search Filter |
Specifies an additional filter to append to user searches. For example, searching for |
Search Scope |
Specifies the extent of searching for users in the directory server. Scope Default: |
LDAP Connection Mode |
Specifies whether to use SSL or StartTLS to connect to the LDAP user data store. AM must be able to trust the certificates used. Possible values: Default: LDAP |
Return User DN to DataStore |
When enabled, the node returns the DN rather than the User ID.
From the DN value, AM uses the RDN to search for the user profile.
For example, if a returned DN value is Default: Enabled |
User Creation Attributes |
This list lets you map (external) attribute names from the LDAP directory server to (internal) attribute names used by AM. |
Minimum Password Length |
Specifies the minimum acceptable password length. Default: |
LDAP Behera Password Policy Support |
When enabled, support interoperability with servers that implement the Internet-Draft, Password Policy for LDAP Directories. Default: Enabled |
Trust All Server Certificates |
When enabled, blindly trust server certificates, including self-signed test certificates. Default: Disabled |
LDAP Connection Heartbeat Interval |
Specifies how often AM should send a heartbeat request to the directory server to ensure that the connection does not remain idle. Some network administrators configure firewalls and load balancers to drop connections that are idle for too long.
You can turn this off by setting the value to Note that setting this property to Default: |
LDAP Connection Heartbeat Time Unit |
Specifies the time unit corresponding to Default: Seconds |
LDAP Operations Timeout |
Defines the timeout, in seconds, that AM should wait for a response from the directory server. Default: |
Password Collector node
The Password Collector authentication node prompts the user to enter their password. The captured password is transient, persisting only until the authentication flow reaches the next node requiring user interaction.
Tree evaluation continues along the single outcome path after capturing the password.
Username Collector node
The Username Collector authentication node prompts the user to enter their username.
Tree evaluation continues along the single outcome path after capturing the username.
Zero Page Login Collector node
The Zero Page Login Collector authentication node checks whether selected headers are provided in the incoming authentication request, and if so, uses their value as the provided username and password.
Tree evaluation continues along the Has Credentials
outcome path
if the specified headers are available in the request,
or the No Credentials
path if the specified headers are not present.
A common use for the Zero Page Login Collector authentication node
is to connect the Has Credentials
outcome connector to the input of a Data Store Decision node,
and the No Credentials
outcome connector to the input of a Username Collector node
followed by a Password Collector node,
and then into the same Data Store Decision node as earlier.
For an example of this layout, see the default Example
authentication tree provided in AM.
The password collected by the Zero Page Login Collector node is transient, persisting only until the authentication flow reaches the next node requiring user interaction.
Properties
Property | Usage | ||
---|---|---|---|
Username Header name |
Enter the name of the header that contains the username value. Default: |
||
Password Header name |
Enter the name of the header that contains the password value. Default: |
||
Allow without referer |
If enabled, the node accepts incoming requests that do not contain a If disabled, a Default: |
||
Referer whitelist |
Specify a list of URLs allowed in the
|
Multi-factor authentication nodes
Use the following nodes to configure trees with multi-factor authentication capabilities, such as web authentication and push authentication:
Get Authenticator App node
The Get Authenticator App node presents the user with links to obtain your authenticator app from the Apple App Store or the Google Play store.
Tree evaluation continues along the single outcome path when the user clicks the Continue button.
Properties
Property | Usage |
---|---|
Get App Authenticator Message |
Optional.
Localized title for the node.
The key is the language (such as |
Continue Label |
Optional.
Localized text to use on the Continue button.
The key is the language (such as |
Apple App Store URL |
Specifies the URL to download your authenticator app from the Apple App Store. The default value points to the ForgeRock Authenticator app for iOS. |
Google Play URL |
Specifies the URL to download your authenticator app from the Google Play Store. The default value points to the ForgeRock Authenticator app for Android. |
HOTP Generator node
The HOTP Generator authentication node creates a string of random digits, of the length specified. The default length is 8 digits.
Passwords are stored in the oneTimePassword
transient state property of the authentication tree.
MFA Registration Options node
The MFA Registration Options node lets the user register a multi-factor authentication device or skip the registration process.
The node requires the username of the identity to update; for example, by using a Username Collector node and also the type of MFA device; for example, by placing a Push Sender node earlier in the authentication journey.
Properties
Property | Usage |
---|---|
Remove 'skip' option |
Localized title for the node. The key is the language (such as |
Display Get Authenticator App |
Localized text to use on the Continue button. The key is the language (such as |
Message |
Localized text to use as the title of the screen. The key is the language (such as |
Register Device |
Localized text to use on the Register Device button. The key is the language (such as |
Get Authenticator App |
Localized text to use on the Get Authenticator App button. The key is the language (such as |
Skip this Step |
Localized text to use on the Skip this Step button. The button, and the outcome, only appear if the Remove 'skip' option is not enabled. The key is the language (such as |
Opt-out |
Localized text to use on the Opt-Out button. The button, and the outcome, only appear if the Remove 'skip' option is not enabled. Note that the node itself does not affect the users' profile. Connect the Opt-out outcome to an Opt-out Multi-Factor Authentication node to actually persist the ability to skip MFA to the users' profile. The key is the language (such as |
Tree evaluation continues along whichever outcome the user selects when presented with the options.
OATH Token Verifier node
The OATH Token Verifier node requests and verifies a one-time password (OTP) generated by a device such as a mobile phone. The default configuration is time-based OTP (TOTP), but the node also supports HMAC (HOTP).
The node requires that the user credentials are authenticated, and that the user has previously registered a device using the OATH Registration node. These two nodes work together to provide all the capabilities of a secure OATH authentication journey.
They can also be used in combination with other MFA nodes to extend these capabilities, for example:
You can use the OATH nodes in conjunction with the ForgeRock Authenticator app to register your phone, receive notifications, or generate one-time passwords. |
For a visual overview of how the OATH nodes can be used within an authentication tree layout, see the Example.
Properties
Property | Usage |
---|---|
OATH Algorithm |
Specify the algorithm your device uses to generate the OTP:
The default value is TOTP. If this is changed to HOTP, you need to set the same value in the OATH Registration node. |
HOTP Window Size |
This property sets the window that the OTP device and the server counter can be out of sync. For example, if the window size is 100 and the server’s last successful login was at counter value 2, the server will accept an OTP that is generated between counter 3 and 102. |
TOTP Time Step Interval |
The length of time that an OTP is valid, in seconds. For example, if the time step interval is 30 seconds, a new OTP will be generated every 30 seconds, and it will be valid for 30 seconds only. The default value is 30. |
TOTP Time Steps |
This is the number of time step intervals that the OTP is permitted to be out of sync. This applies to codes that are generated before or after the current code. For example, with a time step of 1, the server will permit either the previous, the current, or the next code. The default value is 2. |
TOTP Hash Algorithm |
The HMAC hash algorithm to be used to generate the OTP codes. ForgeRock Authenticator (OATH) supports SHA1, SHA256, and SHA512. |
TOTP Maximum Allowed Clock Drift |
Number of time steps a client is allowed to be out of sync with the server before a manual resynchronization is required. For example, with 3 allowed drifts and a time step interval of 30 seconds, the server will allow codes from up to 90 seconds from the current time to be treated as the current time step. The drift for a user’s device is calculated each time they enter a new code. If the drift exceeds this value, the user’s authentication code will be rejected. |
Allow recovery codes |
Specify whether to allow users to use one of the recovery codes to proceed with the login. |
Tree evaluation continues along one of the following outcome paths:
-
Not registered
: If there is no registered device for the user. -
Failure
: If the user is not authenticated, or the collected token code cannot be verified. -
Success
: If there is a registered device and the token code is verified.
OATH Registration node
The OATH Registration node lets the user register a device for OATH-based multi-factor authentication (MFA). Based on the node properties, the user device displays a QR code that includes all the details required for registration. If registration is successful, the node stores the device data, recovery codes (if enabled), and sets the skippable attribute to prevent repeat registration at next login.
The node requires the credentials of the user; for example, by using a sequence of the following nodes earlier in the authentication journey:
Connect the OATH Registration node’s Success
outcome path to the OATH Token Verifier node to continue to OTP verification.
You can use the OATH nodes in conjunction with the ForgeRock Authenticator app to register your phone, receive notifications, or generate one-time passwords. |
View the OATH Token Verifier node example to see how these nodes can be used in combination with other MFA nodes to create a complete OATH authentication journey.
Properties
Property | Usage |
---|---|
Issuer |
Specify an identifier to appear on the user’s device, such as a company name, a website, or an AM realm. The value is displayed by the authenticator app. |
Account Name |
Define the profile attribute to display as the username in the authenticator app. If not specified, or if the specified profile attribute is empty, their username is used. |
Background Color |
The background color, in hex notation, to display behind the issuer’s logo within the authenticator app. |
Logo Image URL |
The location of an image to download and display as the issuer’s logo within the authenticator app. |
Generate Recovery Codes |
If enabled, recovery codes are generated and stored in the success outcome’s transient state. Use the Recovery Code Display node to display the codes to the user for safekeeping. |
One Time Password Length |
The length of the generated OTP in digits. This value must be at least 6, and compatible with the hardware/software OTP generators you expect end users to use. For example, Google and ForgeRock authenticators support values of 6 and 8 respectively. |
Minimum Secret Key Length |
Number of hexadecimal characters allowed for the Secret Key. |
OATH Algorithm |
Specify the algorithm your device uses to generate the OTP:
The default value is TOTP. If this is changed to HOTP, you need to set the same value in the OATH Token Verifier node. |
TOTP Time Step Interval |
The length of time that an OTP is valid, in seconds. For example, if the time step interval is 30 seconds, a new OTP will be generated every 30 seconds, and it will be valid for 30 seconds only. The default value is 30. |
TOTP Hash Algorithm |
The HMAC hash algorithm to be used to generate the OTP codes. AM supports SHA1, SHA256, and SHA512. |
HOTP Checksum Digit |
This adds a digit to the end of the OTP generated to be used as a checksum to verify the OTP was generated correctly. This is in addition to the actual password length. You should only set this if your device supports it. |
HOTP Truncation Offset |
This is an option used by the HOTP algorithm that not all devices support. This should be left as the default value of -1, unless you know your device uses an offset. |
QR code message |
The message with instructions to scan the QR code to register the device. Click Add. Enter the message locale in the |
If registration is succesful and the device details are stored, tree evaluation continues along the Success
outcome path.
If AM encounters an issue during the registration process or the user fails to complete registration, evaluation proceeds along the Failure
path.
Opt-out Multi-Factor Authentication node
The Opt-out Multi-Factor Authentication node sets the Skippable attribute in the user’s profile, which lets them skip MFA.
The node requires the username of the identity to update; for example, by using a Username Collector node and also the type of MFA device to set as "skippable." For example, by placing a Push Sender node node earlier in the authentication journey.
Tree evaluation continues along the single outcome path after setting the MFA device as "skippable" in the users' profile.
OTP Collector Decision node
The OTP Collector Decision authentication node requests and verifies one-time passwords.
Tree evaluation continues along the True
outcome path
if the entered one-time password is valid for the authentication in progress.
Otherwise, the tree evaluation continues along the False
outcome path.
OTP email sender node
The OTP email sender authentication node sends an email containing a generated one-time password to the user.
Send mail requests will timeout after 10 seconds.
You can change the timeout in the following advanced server properties:
How Do I Configure Advanced Server Properties?
If the property you want to add or edit is already configured, click on the pencil () button to edit it. When you are finished, click on the tick () button. Save your changes. For more information, see Advanced Properties. |
Properties
Property | Usage |
---|---|
Mail Server Host Name |
Specifies the hostname of the SMTP email server. |
Mail Server Host Port |
Specifies the outgoing mail server port. Common ports are 25, 465 (when connecting over SSL), or 587 (for StartTLS). |
Mail Server Authentication Username |
Specifies the username AM uses to connect to the mail server. |
Mail Server Authentication Password |
Specifies the password AM uses to connect to the mail server. |
Email From Address |
Specifies the email address from which the one-time password will appear to have been sent. |
Email Attribute Name |
Specifies the user’s profile attribute containing the email address to which to email the OTP. Default: |
The subject of the email |
Click Add to add a new email subject. Enter the locale (for example, |
The content of the email |
Click Add to add the content of the email. Enter the locale (for example, |
Mail Server Secure Connection |
Specifies how to connect to the mail server. If a secure method is specified, AM must trust the server certificate of the mail server. The possible values for this property are:
Default: |
Gateway Implementation Class |
Specifies the class the node uses to send SMS and email messages.
A custom class must implement the Default: |
OTP SMS Sender node
The OTP SMS Sender authentication node uses an email-to-SMS gateway provider to send an SMS message containing a generated one-time password to the user.
The node sends an email to an address formed by joining the following values together:
-
The user’s telephone number, obtained by querying a specified profile attribute, for example
telephoneNumber
. -
The
@
character. -
The email-to-SMS gateway domain, obtained by querying the profile attribute specified by the Mobile Carrier Attribute Name property.
For example, if configured to use the TextMagic email-to-SMS service,
the node might send an email through the specified SMTP server to the address: 18005550187@textmagic.com
.
Properties
Property | Usage |
---|---|
Mail Server Host Name |
Specifies the hostname of the SMTP email server. |
Mail Server Host Port |
Specifies the outgoing mail server port. Common ports are 25, 465 (when connecting over SSL), or 587 (for StartTLS). |
Mail Server Authentication Username |
Specifies the username AM uses to connect to the mail server. |
Mail Server Authentication Password |
Specifies the password AM uses to connect to the mail server. |
Email From Address |
Specifies the email address from which the one-time password will appear to have been sent. |
Mobile Phone Number Attribute Name |
Specifies the user’s profile attribute containing the mobile phone number to which to send the SMS containing the OTP. Default: |
Mobile Carrier Attribute Name |
Specifies the user’s profile attribute containing the mobile carrier domain used as the email to SMS gateway. |
The subject of the message |
Click Add to add a new message subject. Enter the locale (for example, |
The content of the message |
Click Add to add the content of the message. Enter the locale (for example, |
Mail Server Secure Connection |
Specifies how to connect to the mail server. If a secure method is specified, AM must trust the server certificate of the mail server. The possible values for this property are:
Default: |
Gateway Implementation Class |
Specifies the class the node uses to send SMS and email messages.
A custom class must implement the Default: |
Push Registration node
The Push Registration authentication node provides a way to register a device, such as a mobile phone, for multi-factor authentication using push notifications. For more information, see MFA: Push authentication.
If the user successfully registers their authenticator, then tree evaluation continues along the Success
outcome path.
If the node does not receive a response from the users' device within the time specified in the node configuration,
evaluation continues along the Time Out
outcome path.
If AM encounters an issue when attempting to register using a device,
tree evaluation continues along the Failure
outcome path.
The node requires the username of the identity to update; for example, by using a Username Collector node.
You must also configure the Push Notification Service.
For information on provisioning the credentials required by the Push Notification Service, see How To Configure Service Credentials (Push Auth, Docker) in Backstage in the ForgeRock Knowledge Base.
For detailed information about the available properties, see Push Notification Service.
Properties
Property | Usage | ||
---|---|---|---|
Issuer |
Specify an identifier so that the user knows which service their account relates to. The value is displayed by the authenticator app: For example, |
||
Account Name |
Specifies the profile attribute to display as the username in the authenticator app. If not specified, or if the specified profile attribute is empty, their username is used. |
||
Registration Response Timeout |
Specify the number of seconds to wait for a response from the authenticator. If the specified time is reached, tree evaluation continues along the |
||
Background Color |
Specifies the background color, in hex notation, to display behind the issuer’s logo within the ForgeRock Authenticator app. |
||
Logo Image URL |
Specifies the location of an image to download and display as the issuer’s logo within the ForgeRock Authenticator app. |
||
Generate Recovery Codes |
Specify whether push-specific recovery codes should be generated. If enabled, recovery codes are generated and stored in transient state if registration was successful. Use the Recovery Code Display node to display the codes to the user for safe keeping.
|
||
QR code message |
The message with instructions to scan the QR code to register the device. Click Add. Enter the message locale in the |
Example
The example tree above shows a possible implementation of a tree for handling push devices.
After verifying the users credentials against the configured data store, tree evaluation continues to the Push Sender node.
If the user does not yet have a registered device, the MFA Registration Options node displays the following options:
- Register Device
-
The journey continues to the Push Registration node, which displays the QR code that should be scanned with a suitable authenticator app.
- Get the App
-
The journey continues to the Get Authenticator App node, which displays the links needed to obtain a suitable app; for example, the ForgeRock Authenticator.
- Skip this step
-
Displayed only if the node configuration lets the user skip. In this example tree, skipping is linked to the Success node.
- Opt-out
-
Displayed only if the node configuration allows the user to skip or opt out. The journey continues to the Opt-out Multi-Factor Authentication node, which updates the users' profile to skip MFA with push in the future. In this example, after updating the profile the journey continues to the Success node.
Once the registration is complete the path returns to the Push Sender node, which starts the actual push notification stage of the journey.
A polling loop using the Polling Wait node in combination with the Push Result Verifier node continuously checks whether the user has successfully responded to the push notification.
An option displayed on the Polling Wait node lets the user exit that loop, and instead provide one of their push-specific recovery codes, letting them log in if they have lost their device, for example.
Note that in order for a user to manage their registered push devices, they must log in using either the device, or a recovery code. For more information, see Manage devices for MFA.
Push Result Verifier node
The Push Result Verifier node works together with the Push Sender node to validate the user’s response to a previously sent push notification message.
Tree evaluation continues along the Success
outcome path
if the push notification was positively responded to by the user.
For example, using the ForgeRock Authenticator app,
the user slid the switch with a checkmark on horizontally to the right.
Tree evaluation continues along the Failure
outcome path
if the push notification was negatively responded to by the user.
For example, using the ForgeRock Authenticator app,
the user tapped the cancel icon in the top-right of the screen.
If the push notification was not responded to within the Message Timeout value specified in the Push Sender node,
then tree evaluation continues along the Expired
outcome path.
If a response to the push message has not yet been received,
then tree evaluation continues along the Waiting
outcome path.
If the push message contained any additional information, for example if it was a registration request,
the values are stored in the |
Push Sender node
The Push Sender authentication node sends push notification messages to a device such as a mobile phone, enabling multi-factor authentication.
The Push Sender authentication node requires that the Push Notification Service has also been configured. For information on the properties used by the service, see Push Notification Service. For information on provisioning the credentials used by the service, see How To Configure Service Credentials (Push Auth, Docker) in Backstage in the ForgeRock Knowledge Base.
Tree evaluation continues along the Sent
outcome path
if the push notification was successfully sent to the handling service.
If the user does not have a registered device, tree evaluation continues along the Not Registered
outcome path.
To determine whether the user has a registered device, the tree must have already acquired a username, for example by
using a Username Collector node or Platform Username node.
If the user chooses to skip push authentication, tree evaluation continues along the Skipped
outcome path.
You can configure whether the user is able to skip the node
by setting the Two Factor Authentication Mandatory property.
See
Letting Users Opt Out of One-Time Password Authentication (OATH).
Properties
Property | Usage | ||
---|---|---|---|
Message Timeout |
Specifies the number of milliseconds the push notification message will remain valid. The Push Result Verifier node rejects responses to push messages that have timed out. |
||
User Message |
Specifies the optional message to send to the user. You can provide the message in multiple languages by specifying the locale in the Messages provided in the node override the defaults provided by AM. For information about customizing and translating the default messages, see Internationalization. The following variables can be used in the
Example: |
||
Remove 'skip' option |
Enable this option in the node to make the push authentication mandatory.
When set to Disabled the user can skip the push authentication requested by the node,
and tree evaluation continues along the Default: Disabled
|
Example
The example tree above shows one possible implementation of multi-factor push authentication.
If the user has a registered device:
-
A push notification is sent to their registered device.
-
The Polling Wait node pauses the authentication tree for 8 seconds, during which time the user can respond to the push notification on their device, for example by using the ForgeRock Authenticator application.
-
If the user responds positively, they are authenticated successfully and logged in.
-
If the user responds negatively, they are not authenticated successfully and do not receive a session.
-
If the push notification expires, the tree will send a new push notification.
A Retry Limit Decision node could be used here to constrain the number of times a new code is sent. -
If the user has not yet responded, the tree loops back a step and the Polling Wait node pauses the authentication tree for another 8 seconds.
If the user exits the Polling Wait node, they can enter a recovery code in order to authenticate.
In this situation, configure the Exit Message property in the Polling Wait node with a message such as:
Lost phone? Use a Recovery Code
, which appears as follows: -
A Retry Limit Decision node allows three attempts at entering a recovery code before failing the authentication.
If the user does not have a registered device:
-
Present the user with information about registering their device.
You can use the MFA Registration Options node, which has several built-in options, or a Page node with, for example, a Choice Collector node.
-
The user registers the device with the Push Registration node. After registration, the tree displays the recovery codes to the user for safekeeping.
If the configuration allows it, and the user chooses to skip multi-factor authentication:
-
An Inner Tree Evaluator node may provide an alternative method of authentication. Otherwise, you may decide to allow the user to log in, as shown in the example.
Recovery Code Collector Decision node
The Recovery Code Collector Decision authentication node allows users to authenticate using a recovery code provided when registering a device for multi-factor authentication.
Use this node when a tree is configured to use push notifications or one-time passwords but the user has lost the registered device, and must therefore use an alternative method for authentication. For more information on viewing the recovery codes when registering a device, see Registering the ForgeRock Authenticator for Multi-Factor Authentication.
Tree evaluation continues along the True
outcome path if the provided recovery code matches one belonging to the user.
To determine whether the provided code belongs to the user, the tree must have already acquired the username,
for example by using a
Username Collector node.
If the recovery code does not match, or a username has not been acquired,
tree evaluation continues along the False
outcome path.
Recovery Code Display node
The Recovery Code Display node is used in conjunction with the WebAuthn Registration node or Push Registration node. It retrieves generated recovery codes from the transient state and presents them to the user, for safe-keeping. The codes can be used to authenticate if a registered device is lost or stolen.
Generated recovery codes are inserted into transient state
when tree evaluation continues along the Success
outcome path of the MFA nodes,
when configured to generate recovery codes.
Connect the Recovery Code Display node to the Success
outcome path to display the codes.
If no recovery codes are available in transient state, tree evaluation continues along the only outcome path, and nothing is displayed to the user.
Generated recovery codes cannot be retrieved from the user’s profile - they are one-way encrypted. The Recovery Code Display node is the one and only opportunity to view the recovery codes, and keep them safe. |
WebAuthn Authentication node
The WebAuthn Authentication node allows users of supported clients to use a registered FIDO device during authentication.
To determine whether the user has a registered device, the tree must have already acquired a username, for example by using a Username Collector node.
If the user’s client does not support web authentication,
tree evaluation will continue along the Unsupported
outcome path.
For example, clients connected over the HTTP protocol rather than HTTPS do not support WebAuthn.
(HTTPS may not be required when testing locally, on http://localhost
, for example.
For more information, see
Is origin potentially trustworthy?.)
If the user does not have a registered device, tree evaluation continues along the No Device Registered
outcome path.
If AM encounters an issue when attempting to authenticate using the device,
tree evaluation continues along the Failure
outcome path.
For example, AM could not verify that the response from the authenticator
was appropriate for the specific instance of the authentication ceremony.
If the user’s client encounters an issue when attempting to authenticate using the device,
for example, if the timeout was reached, then tree evaluation continues along the Client Error
outcome path.
This outcome is used whenever the client throws a DOMException
, as required by the
Web Authentication: An API for accessing Public Key Credentials Level 1 specification.
If a client error occurs,
the error type and description are added to a property named |
If the Allow recovery code property is enabled,
AM provides the user the option to enter a recovery code rather than authenticate using a device.
Tree evaluation continues along the Recovery Code
outcome path if the users chooses to enter a recovery code.
To accept and verify the recovery code, ensure the outcome path leads to a Recovery Code Collector Decision node.
If the user successfully authenticates with a device of the type
determined by the User verification requirement property, tree evaluation continues along the Success
outcome path.
Properties
Property | Usage |
---|---|
Relying party identifier |
Specifies the domain used as the
relying party identifier during web authentication.
If not specified, AM uses the domain name of the instance, for example Specify an alternative domain if your AM instances are behind a load balancer, for example. |
Origin domains |
Specifies a list of fully qualified URLs to accept as the origin of incoming requests. If left empty, AM accepts any incoming domain. |
User verification requirement |
Specifies the required level of user verification. The available options are:
|
Allow recovery codes |
Specify whether to allow the user to enter one of their recovery codes instead of performing an authentication gesture. Enabling this options adds a |
Timeout |
Specify the number of seconds to wait for a response from an authenticator. If the specified time is reached, tree evaluation continues along the |
Username from device |
Specifies whether AM requests that the device provides the username. When enabled, if the device is unable to store or provide usernames, the node will fail and results in the Failure outcome. For information on using this property for usernameless authentication with ForgeRock Go, see Configuring Usernameless Authentication with ForgeRock Go. |
Return challenge as JavaScript |
Specifies that the node returns its challenge as a fully encapsulated client-side JavaScript that interacts directly with the WebAuthn API, and auto-submits the response back. If disabled, the node returns the challenge and associated data in a metadata callback. A custom UI, for example an application using the ForgeRock SDKs, uses the information from the callback to interact with the WebAuthn API on AM’s behalf. |
Example
The example tree above shows one possible implementation of a tree for authenticating with WebAuthn devices.
After verifying the users credentials against the configured data store, tree evaluation continues to the WebAuthn Authentication node.
If the user’s client does not support WebAuthn, the tree fails and the user does not get a session.
A more user-friendly approach would be to set a success URL
to redirect the user to a page explaining the benefits of multi-factor authentication,
and then proceeding to the Success
node.
If there are no registered WebAuthn devices present in the user’s profile, the failure URL is set, pointing to a tree that allows the user to register a device. This stage could also be an Inner Tree Evaluator, with a registration tree inside.
If the user’s client does support WebAuthn, and the connection is secured with TLS, the user will be asked to complete an authorization gesture, for example scanning a fingerprint, or entering a PIN number:
The user’s browser may present a consent pop-up to allow access to the authenticators available on the client. When consent has been granted, the browser activates the relevant authenticators, ready for authentication.
The relying party details configured in the node are often included in the consent message to help the user verify the entity that is requesting access. |
The authenticators the client activates for authentication depends in the value of the properties in the node.
For example, if the User verification requirement
property is set to REQUIRED
,
the client SHOULD only activate authenticators which verify the identity of the user.
For extra protection, AM WILL verify that the response from an authenticator
matches the criteria configured for the node, and will reject -
by using the Failure
outcome - an authentication attempt by an inappropriate authenticator type.
When the user completes an authorization gesture,
for example scanning a fingerprint, or entering a PIN number,
tree evaluation continues along the Success
outcome path.
In this example,
their authentication level is increased by ten to signify the stronger authentication that has occurred,
and the user is taken to their profile page.
If the user clicks the Use Recovery Code
button, tree evaluation continues
to the Recovery Code Collector Decision node, ready to accept the recovery code.
If verified, the user is taken to their profile page.
Any problems encountered during the authentication (thorugh the Failure
outcome),
including a timeout (through the Client Error
outcome), results in the overall failure of the authentication tree.
WebAuthn Device Storage node
The WebAuthn Device Storage node writes information about FIDO2 devices to a user’s profile, so that they can subsequently authenticate using the device.
Use this node to store the device data that the WebAuthn Registration node places into the tree’s transient state when its Store device data in transient state property is enabled.
If AM encounters an issue when attempting to save the device data to the user’s profile;
for example, the user has not been identified earlier in the tree,
then tree evaluation continues along the Failure
outcome path.
If the node successfully stores the device data to the user’s profile,
tree evaluation continues along the Success
outcome path.
Properties
Property | Usage | ||
---|---|---|---|
Generate recovery codes |
Specify whether WebAuthn device recovery codes should be generated. If enabled, recovery codes are generated and stored in the tree’s transient state, and stored alongside the device profile. Use the Recovery Code Display node to display the codes to the user for safe keeping.
|
WebAuthn Registration node
The WebAuthn Registration authentication node allows users of supported clients to register FIDO2 devices for use during authentication.
AM interacts with FIDO2/WebAuthn capable browsers, for example Chrome
, Firefox
and Microsoft Edge
.
These browsers interact with CTAP2 authenticators, including U2F and FIDO2 Security Keys,
and platforms such as Windows Hello
or MacOS TouchId
.
If the user’s client does not support WebAuthn, tree evaluation will continue along the Unsupported
outcome path.
For example, clients connected over the HTTP protocol rather than HTTPS do not support WebAuthn.
If AM encounters an issue when attempting to register using a device,
tree evaluation continues along the Failure
outcome path.
For example, AM could not verify
that the response from the authenticator was appropriate for the specific instance of the authentication ceremony.
If the user’s client encounters an issue when attempting to register using a device,
for example, if the timeout was reached, then tree evaluation continues along the Client Error
outcome path.
This outcome is used whenever the client throws a DOMException
, as required by the
Web Authentication: An API for accessing Public Key Credentials Level 1 specification.
If a client error occurs, the error type and description
are added to a property named |
If the user successfully registers an authenticator of the correct type as determined by the node’s properties,
tree evaluation continues along the Success
outcome path.
Properties
Property | Usage | ||
---|---|---|---|
Relying party |
Specify the name of the relying party entity that is registering and authenticating users by using WebAuthn. For example, |
||
Relying party identifier |
Specifies the domain used as the relying party identifier
during WebAuthn.
If not specified, AM uses the domain name of the instance, for example Specify an alternative domain if your AM instances are behind a load balancer, for example. |
||
Origin domains |
Specifies a list of fully qualified URLs to accept as the origin of incoming requests. If left empty, AM accepts any incoming domain. |
||
User verification requirement |
Specifies the required level of user verification. The available options are:
|
||
Preferred mode of attestation |
Specifies whether AM requires that the authenticator provides attestation statements. The available options are:
AM supports the following attestation formats:
|
||
Accepted signing algorithms |
Specify the algorithms that authenticators can use to sign their assertions. |
||
Authentication attachment |
Specifies whether AM requires that the authenticator is a particular attachment type. There are two types of authenticator attachment:
The available options are:
|
||
Trust Store alias |
Specifies the name of a secret store configured in the realm that contains CA-issued certificate chains, which can be used to verify attestation data provided by a device. The value is also appended to the string For more information, see Configuring WebAuthn Trust Anchors. |
||
Enforce revocation check |
Specifies whether to enforce certificate revocation checks. When enabled, then any attestation certificate’s trust chain MUST have a CRL or OCSP entry that can be verified by AM during processing. When disabled, certificates are not checked for revocation. You must ensure expired or revoked certificates are manually removed. |
||
Timeout |
Specify the number of seconds to wait for a response from an authenticator. If the specified time is reached, tree evaluation continues along the |
||
Limit registrations |
Specify whether the same authenticator can be registered multiple times. If enabled, the client should not activate an authenticator that is already registered for registration. |
||
Generate recovery codes |
Specify whether WebAuthn-specific recovery codes should be generated. If enabled, recovery codes are generated and stored in transient state if registration was successful. Use the Recovery Code Display node to display the codes to the user for safe-keeping. If you have enabled the Store device data in transient state and there are not saving the device data to the user’s profile immediately, do not enable this property. Enable the Generate recovery codes property in the WebAuthn Device Storage node instead.
|
||
Store data in transient state |
Specify whether the information provided by the device to the node
will be stored in the tree’s transient state for later analysis by subsequent nodes, using the key In addition to the information provided by the device, the type of attestation achieved;
for example,
|
||
Store device data in transient state |
Specify whether the information about the device required for WebAuthn is stored in the tree’s transient state rather than saved immediately to the user’s profile. Enable this option if you intend to make decisions in scripts, and have enabled the Store data in transient state property, and therefore do not want to register the device to the user until the outcome of the analysis is complete.
Use the WebAuthn Device Storage node to write the device data to the user’s profile when this option is enabled. When disabled, device data is written automatically to the user’s profile when registration is successful. |
||
Username to device |
Specifies whether AM requests that the device stores the user’s username. When enabled, if the device is unable to store or provide usernames, the node will fail and results in the Failure outcome. For information on using this property for usernameless authentication with ForgeRock Go, see Configuring Usernameless Authentication with ForgeRock Go. |
||
Shared state attribute for display name |
Specifies a variable in tree’s shared state that contains a display name for the user; for example, their full name, or email address. The value is written to devices alongside the username when the Username to device property is enabled, and helps the user select between the accounts they may have on their devices. If not specified, or the variable is not found in shared state, the user name is used. For information on using this property for usernameless authentication with ForgeRock Go, see Configuring Usernameless Authentication with ForgeRock Go. |
||
Return challenge as JavaScript |
Specifies that the node returns its challenge as a fully encapsulated client-side JavaScript that interacts directly with the WebAuthn API, and auto-submits the response back. If disabled, the node returns the challenge and associated data in a metadata callback. A custom UI; for example, an application using the ForgeRock SDKs, uses the information from the callback to interact with the WebAuthn API on AM’s behalf. |
Example
The example tree above shows a possible implementation of a tree for registering WebAuthn devices.
After verifying the users credentials against the configured data store, tree evaluation continues to the WebAuthn Registration node.
If the user’s client does not support WebAuthn, the failure URL is altered, for example to redirect the user to a page explaining which clients and operating systems support WebAuthn.
If the user’s client does support WebAuthn, and the connection is secured with TLS, the user will be asked to register an authenticator:
The user’s browser may present a consent pop-up to allow access to the authenticators available on the client. When consent has been granted the browser activates the relevant authenticators, ready for registration.
The relying party details configured in the node are often included in the consent message to help the user verify the entity that is requesting access. |
The authenticators the client activates for registration depends in the value of the properties in the node.
For example, if the User verification requirement
property is set to REQUIRED
,
the client would not activate a USB hardware security key for registration.
When the user completes an authorization gesture,
for example scanning a fingerprint, or entering a PIN number,
tree evaluation continues along the Success
outcome path, and in this example will be taken to their profile page.
The registered authenticator appears on the user’s dashboard page, with the label New Security Key. To rename the authenticator, click its vertical ellipsis context icon, , and click Rename.
Any problems encountered during the registration, including a timeout,
results in tree evaluation continuing to the Failure
outcome.
Risk management authentication nodes
Use the following nodes to examine the perceived risk associated to the authentication and act on it:
Account Active Decision node
Checks if the account the user has entered is activated. This node relies on the tree’s shared state to determine which account to check. Use this node to validate whether an account is currently activated, such as in login flows where an account may already be created, but not enabled until a later date.
For more information, see Account lockout for trees.
Account Lockout node
The Account Lockout node can lock or unlock the authenticating user’s account profile.
For more information, see Account lockout for trees.
Properties
Property | Usage |
---|---|
Lock Action |
Choose whether to The Data Store Decision authentication node checks if the account profile is in the LOCK state. For more information, see Data Store Decision node. |
Example
The following example uses the Account Lockout node with the Retry Limit Decision node to lock an account after a number of invalid attempts:
Auth Level Decision node
The Auth Level Decision authentication node compares the current authentication level value against a configured value.
Modify Auth Level node
The Modify Auth Level authentication node lets you increase or decrease the current authentication level value.
Tree evaluation continues along the single outcome path after modifying the authentication level.
CAPTCHA node
The CAPTCHA node implements Google’s reCAPTCHA v2 and reCAPTCHA v3 widgets and hCaptcha’s v1 widget, to add CAPTCHA support to authentication trees.
This node verifies the response token received from Google or hCaptcha and creates a CAPTCHA callback for the UI to interact with. The node has two outcomes—success and failure.
By default, the node is configured for Google’s reCAPTCHA v2.
Properties
Property | Usage |
---|---|
CAPTCHA Site Key (required) |
The CAPTCHA site key, provided by Google or hCaptcha when you sign up for access to the API. |
CAPTCHA Secret Key (required) |
The CAPTCHA secret key, provided by Google or hCaptcha when you sign up for access to the API. |
CAPTCHA Verification URL (required) |
The URL used to verify the CAPTCHA submission. Possible values are: |
CAPTCHA API URL (required) |
The URL of the JavaScript that loads the CAPTCHA widget. Possible values are:
|
Class of CAPTCHA HTML Element |
The class of the HTML element required by the CAPTCHA widget. Possible values are:
|
ReCaptcha V3 node |
If you’re using Google reCaptcha, specifies whether it’s v2 or v3. Turn on for v3. |
Score Threshold |
If you’re using Google reCAPTCHA v3, or hCaptcha, enter a Score Threshold. reCAPTCHA v3 and hCaptcha return a score for each user request, based on observed interaction with your site. Both facilities "learn" by observing real site traffic, so scores in a staging environment or in a production deployment that has just been implemented might not be very accurate. A score of 1.0 is likely a good user interaction, while 0.0 is likely to be a bot. The threshold you set here determines whether to allow or deny access, based on the score returned by Google or hCaptcha. You can generally start with a threshold of 0.5. For more information about score thresholds, see the Google documentation. |
Example
Test the CAPTCHA node
ForgeRock provides a Postman collection to configure AM to test the CAPTCHA node. The Postman collection contains the queries to demonstrate the CAPTCHA node with reCAPTCHA V2, V3 and with hCaptcha. Before you start, set up a reCAPTCHA V2 and V3 site, and an hCaptcha site, and copy their site and secret keys.
-
Download and install Postman.
-
Download the ForgeRock CAPTCHA Collection.
-
Import the collection into Postman:
-
Select File > Import … > Upload Files.
-
Select the CAPTCHA collection, and click Open, then click Import.
-
-
Change the collection variables to suit your environment:
-
On the Collections tab, select the ForgeRock CAPTCHA Collection.
-
Click on the Variables tab, and set the value of at least the following variables:
-
URL_base
-
admin_password
-
demo_username
-
demo_password
-
-
Click Update to save your changes.
You are ready to run the collection.
-
-
When the authentication trees have been created visit the following URLs in your browser to demonstrate the login flow for each CAPTCHA type:
-
URL_base/XUI/?realm=sub_realm&service=recaptchav3
-
URL_base/XUI/?realm=sub_realm&service=recaptchav2
-
URL_base/XUI/?realm=sub_realm&service=hcaptcha
-
Use the demo_username and demo_password to log in.
Behavioral authentication nodes
Use the following nodes to adjust the behavior of authentication trees:
Increment Login Count node
Increments the successful login count property of a managed object in IDM.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
Use this node in conjunction with the Login Count Decision node. If you plan to track the number of logins, include this node in your login authentication flow, but you can safely omit it if you are not planning to use that functionality.
Login Count Decision node
Triggers an action when a user’s successful login count property reaches a specified number.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
The action can either be triggered once,
by setting the interval
property to happen AT
the set amount of successful login attempts;
or set to occur EVERY
time the specified number of additional successful login attempts occur.
Use this node in conjunction with the Increment Login Count node. The Increment Login Count node needs to be present in your login authentication flow for the Login Count Decision node to have the data necessary to trigger a decision.
Properties
Property | Usage |
---|---|
Interval |
The type of interval the decision should trigger on.
Valid types are |
Amount |
The amount (count) of logins the interval should trigger on. |
Identity Attribute |
The attribute used to identify the object in IDM. |
Contextual authentication nodes
Use the following nodes to examine the authentication context and act on it:
Certificate Collector node
This node collects an X.509 digital certificate from the request coming from the authenticating user so that AM can use it as the user’s credentials.
The tree continues through the Collected
path if AM collects the digital certificate,
and through the Not Collected
path, otherwise.
To validate the certificate, add a Certificate Validation node to the tree.
Properties
Property | Usage |
---|---|
Certificate Collection Method |
Specifies how AM should collect the certificate from the request. Possible values are:
Default: |
HTTP Header Name for the Client Certificate |
Specifies the name of the HTTP header containing the certificate
when the Certificate Collection Method property is configured to Default: No value specified. |
Trusted Remote Hosts |
Specifies a list of IP addresses trusted to supply certificates on behalf of the authenticating client, such as load balancers doing SSL termination. If no value is specified, AM will reject certificates supplied by remote hosts.
If you specify the Default: No value specified. |
Certificate Validation node
This node validates a digital X.509 certificate collected by the Certificate Collector node.
The node has different outcomes, some of which are used depending on the configuration of the node:
-
True
: The node could validate the certificate. -
False
: The node could not validate the certificate. The node will use this path when it cannot validate the certificate, but the cause is not managed by any of the other outcomes. -
Not found
: The Match Certificate in LDAP property is enabled, but the certificate was not found in the LDAP store. -
Expired
: The Check Certificate Expiration property is enabled, and the certificate has expired. -
Path Validation Failed
: The Match Certificate to CRL property is enabled, and the certificate path is invalid. -
Revoked
: The OCSP Validation property is enabled, and the certificate has been revoked.
When the outcome is True
, append a Certificate User Extractor node
to extract the values of the certificate and return them to AM.
Properties
Property | Usage |
---|---|
Match Certificate in LDAP |
When enabled, AM matches the certificate collected with the one stored in an LDAP directory entry. This entry, and additional security-related properties, are defined later in the node. Default: Disabled |
Check Certificate Expiration |
When enabled, AM checks whether the certificate has expired. Default: Disabled |
Subject DN Attribute Used to Search LDAP for Certificates |
Specifies the attribute that AM will use to search the LDAP directory for the certificate. The search filter will also use the value of the Subject DN as it appears in the certificate. Default: |
Match Certificate to CRL |
When enabled, AM checks whether the certificate has been revoked according to a CRL in the LDAP directory. Related properties are defined later in the node. Default: Disabled. |
Issuer DN Attribute(s) Used to Search LDAP for CRLs |
Specifies which attribute and value in the certificate Issuer DN AM will use to find the CRL in the LDAP directory. If only one attribute is specified, the LDAP search filter used is For example, if the subject DN of the issuer certificate is Specify several CLRs for the same CA issuer in a comma-separated list (,) where the names are in the same order as they occur in the subject DN. In this case, the LDAP search filter used
is For example, if the subject DN of the issuer certificate is Default: |
HTTP Parameters for CRL Update |
Specifies parameters that AM will include in any HTTP CRL call to the CA that issued the certificate. If the client or CA contains the Issuing Distribution Point Extension, AM uses this information to retrieve the CRL from the distribution point. Add the parameters as key pairs of values in a comma-separated list (,).
For example, |
Cache CRLs in Memory |
(LDAP distribution points only) When enabled, AM caches CRLs. Default: Enabled |
Update CA CRLs from CRLDistributionPoint |
When enabled, AM updates the CRLs stored in the LDAP directory store
if the CA certificate includes either the Default: Enabled |
OCSP Validation |
When enabled, AM checks the revocation status of certificates using the Online Certificate Status Protocol (OCSP). The AM instance must have internet access, and you must configure OSCP for AM by going to Configure > Server Defaults > Security > Online Certificate Status Protocol Check. Default: Disabled |
LDAP Server Where Certificates are Stored |
Specifies the LDAP server that holds the certificates.
Enter each server in the AM servers can be associated with LDAP servers by writing multiple chains
with the format To configure a secure connection, enable the Use SSL/TLS for LDAP Access property. |
LDAP Search Start or Base DN |
Valid base DN for the LDAP search, such as |
LDAP Server Authentication User |
Specifies the DN of the service account that AM will use to authenticate
to the LDAP that holds the certificates.
For example, Default: |
LDAP Server Authentication Password |
Specifies the password of the user configured in the LDAP Server Authentication User property. |
Use SSL/TLS for LDAP Access |
Specifies whether AM should use SSL/TLS to access the LDAP. When enabled, AM must be able to trust the LDAP server certificate. Default: Disabled |
Example
The following is an example of how to use the certificate nodes. Note that all the failure outcomes of the Certificate Validation node are linked so that the user provides a username and password, but you could choose different authentication methods for each outcome.
Certificate User Extractor node
This node extracts a value from the certificate collected by the Certificate Collector node, and searches for it in the identity store. The goal is to match the certificate with a user in the identity store.
The tree continues through the Extracted
path
if AM was able to match the certificate to a user in the identity store,
and through the Not Extracted
path otherwise.
The extracted value is stored in the username
key in the shared state of the authentication tree.
Properties
Property | Usage |
---|---|
Certificate Field Used to Access User Profile |
Specifies the field in the certificate that AM will use to search for the user in the identity store. Possible values are:
If you select Select Default: |
Other Certificate Field Used to Access User Profile |
Specifies a custom certificate field to use as the base of the user search. |
SubjectAltNameExt Value Type to Access User Profile |
Specifies how to look up the user profile. Possible values are:
Default: |
Configuration Provider node
The Configuration Provider node creates a dynamic node configuration, based on the current node state. The node references a script that lets you build up a configuration map object with custom values, and provides this configuration map to the specified node type.
The node has all the outcomes of the specified node and an additional outcome, Configuration failure
. Use the
Configuration failure
outcome to specify what should happen in the tree if the node is unable to build the configuration
map, the configuration map is missing required values, or the configuration map is invalid.
Before you use the Configuration Provider node,
create a script, of type Config Provider
,
that provides the functionality for the node. The map that you build in the script must be named config
, and must be
populated with the required configuration.
To obtain the list of required attributes that your script must set for a specific node type, see the
API Explorer, and the endpoint
The following request returns the required attributes for the Message node: For example:
|
This example creates a configuration map that pulls in the user’s username
from the node state to display a custom
message, requesting the user to confirm that they are over 18:
config = {
"message": {"en-GB": "Hi " + nodeState.get("username") + ". Please confirm that you are over 18."},
"messageYes": {"en-GB": "Confirm"},
"messageNo": {"en-GB": "Deny"},
};
See the sample script for a reference to the bindings available to this script.
Example
Referencing the script shown in the previous example, the configuration of this node would look something like this:
Properties
Property | Usage |
---|---|
Script |
Select the Config Provider type script that you created for this node. |
node Type |
Select the type of node for which you are generating a configuration. The Configuration Provider node cannot provide configuration for all node types. The node type must have a fixed set of
outcomes that cannot be changed by the node’s configuration. (If the node’s |
Cookie Presence Decision node
The Cookie Presence Decision authentication node checks if a named cookie is present in the incoming authentication request.
Note that the node does not check the value of the named cookie, only that it exists.
Device Profile Collector
The Device Profile Collector authentication node gathers metadata about the device the user is authenticating with.
The node sends a DeviceProfileCallback
callback. For more information,
see Interactive Callbacks.
When used with the ForgeRock SDKs, the node can collect the following:
- Device Metadata
-
Information such as the platform, versions, device name, hardware information, and the brand of the device being used.
The captured data is in JSON format, and stored in the authentication tree’s shared state, in a variable named
forgeRock.device.profile
. - Device Location
-
Provides the last known latitude and longitude of the device’s location.
The captured data is in JSON format, and stored in the authentication tree’s shared state, in a variable named
forgeRock.device.location
.The collection of geographical information requires end user approval. This process is driven by a browser function. End users receive a message asking if sharing geographical location can be permitted. This function is not honored by the browser if the connection is not secure.
It is up to you what information you collect from users and devices. You should always use data responsibly and provide your users appropriate control over data they share with you. You are responsible for complying with any regulations or data protection laws. |
In addition to the collected metadata, an identifier
string in the JSON uniquely identifies the device.
Use this node with the Device Profile Save node when you want to create a trusted profile from the collected data. The trusted device profile can be used in subsequent authentication attempts; for example, with the Device Match and Device Profile Location Match node.
Properties
Property | Usage |
---|---|
Maximum Profile Size (KB) |
Specifies the maximum accepted size, in kilobytes, of a device profile. If the collected profile data exceeds this size, authentication fails. |
Collect Device Metadata |
Specifies whether device metadata is requested. |
Collect Device Location |
Specifies whether device location is requested. |
Message |
Specifies an optional message to display to the user while the node collects the requested data. You can provide the message in multiple languages by specifying the locale in the Messages provided in the node override the defaults provided by AM. For information about customizing and translating the default messages, see Internationalization. |
Device Match
The Device Match authentication node compares any collected device metadata with that stored in the user’s profile.
Use this node alongside the Device Profile Collector node to determine if the authenticating user is on a previously saved, trusted device.
You can choose between two methods of comparison:
-
Built-in Matching
The node handles the comparison and matching, and you can configure the acceptable variance, and specify a time frame that profiles are considered current.
-
Custom Matching
Create scripts to do the comparison of captured device data against trusted device profiles.
AM includes a template script that you can customize to your requirements. In the AM admin UI, go to Realms > Realm Name > Scripts, and click Device Match Template - Decision node Script.
ForgeRock also provides a more complete sample script, as well as instructions for its use, and a development toolkit. Find these resources on GitHub, at: https://github.com/ForgeRock/forgerock-device-match-script.
You must establish the identity of the user in the tree before attempting to match device profiles.
Tree evaluation continues along the True
path if the collected device profile matches a saved profile,
within the configured variance; otherwise, tree evaluation continues along the False
path.
If the user has no trusted device profiles, or the identity of the user has not been established,
tree evaluation continues along the Unknown Device
path.
Properties
Property | Usage | ||
---|---|---|---|
Acceptable Variance |
Specify the maximum amount of device attribute differences that is still acceptable for a match. |
||
Expiration |
Specify the maximum age, in the number of days since being saved, that existing profiles can be considered for comparison. Device profiles that were saved to the user’s profile before this time will not be compared to the collected metadata. |
||
Use Custom Matching Script |
Specifies whether to use a custom script to compare the collected metadata with saved device profiles. The script type has to be Decision node script for authentication trees.
|
||
Custom Matching Script |
Specifies the custom script to use if the Use Custom Matching Script property is enabled. Only scripts of type Decision node script for authentication trees appear in the list. |
Device Profile Save
The Device Profile Save authentication node persists collected device data to a user’s profile in the identity store.
Use this node alongside the Device Profile Collector node when you want to reuse the collected data in future authentications; for example, with the Device Match and Device Profile Location Match node.
You must establish the identity of the user in the tree before attempting to save to their profile.
A user profile can contain multiple device profiles. Use the Maximum Saved Profiles property to configure the maximum number of device profiles to persist per user. Saving a device profile with the same identifier as an existing entry overwrites the original record, and does not increment the device profile count.
The user UI component of the platform UI displays saved device profiles to end users. Note that the Access Management UI does not display saved device profiles to end users.
You can manage device profiles with REST, by using the /json/users/user/devices/profile
endpoint.
Use the AM API Explorer for detailed information about the parameters
supported by the /devices/profile
endpoint, and to test it against your deployed AM instance.
In the AM admin UI, select the Help icon, and then go to API Explorer > /users > /{user} > /devices > /profile.
Properties
Property | Usage |
---|---|
Device Name Variable |
Specifies the name of a variable in the authentication tree’s shared state that contains an alias label for the device profile. |
Maximum Saved Profiles |
Specify the maximum number of device profiles to save in a user’s profile. When the maximum is reached, saving a new device profile replaces the oldest record. |
Save Device Metadata |
Specifies whether device metadata is saved to the user’s profile. |
Save Device Location |
Specifies whether device location metadata is saved to the user’s profile. |
Device Profile Location Match
The Device Profile Location Match authentication node compares any collected device location metadata with that stored in the user’s profile.
Use this node alongside the Device Profile Collector node to determine if the authenticating user’s device is located within range of somewhere they have authenticated from, and saved, previously.
You must establish the identity of the user in the tree before attempting to match locations.
Tree evaluation continues along the True
path if the collected location
is within the specified range of saved location data; otherwise, tree evaluation continues along the False
path.
If the user has no saved device profiles, or the identity of the user has not been established,
tree evaluation continues along the Unknown Device
path.
Device Geofencing
The Device Geofencing authentication node compares any collected device location metadata with the trusted locations configured in the authentication node.
Use this node alongside the Device Profile Collector node to determine if the authenticating user’s device is located within range of configured, trusted locations.
Tree evaluation continues along the Inside
path if the collected location
is within the specified range of a configured trusted location;
otherwise, tree evaluation continues along the Outside
path.
Properties
Property | Usage |
---|---|
Trusted Locations |
Specify the latitude and longitude of at least one trusted location.
Separate the values with a comma; for example, |
Geofence Radius (km) |
Specifies the maximum distance, in kilometers, that a device can be from a configured trusted location. The distance is calculated point-to-point. |
Device Tampering Verification
The Device Tampering Verification authentication node specifies a threshold for deciding if the device has been tampered with; for example, if it has been rooted or jailbroken.
A score between zero and one is returned by the device,
based on the likelihood that is has been tampered with or may pose a security risk.
For example, an emulator scores the maximum of 1
.
Use this node alongside the Device Profile Collector node to retrieve the tampering score from the device.
Tree evaluation continues along the Not Tampered
path
if the device scores less than or equal to the configured threshold,
otherwise tree evaluation continues along the Tampered
path.
Properties
Property | Usage | ||
---|---|---|---|
Score Threshold |
Specifies the score threshold for determining if a device has been tampered with.
Enter a decimal fraction, between The higher the score returned from the device, the more likely the device is jailbroken, rooted, or is a potential security risk.
|
Persistent Cookie Decision node
The Persistent Cookie Decision authentication node
checks for the existence of the persistent cookie specified in the Persistent cookie name property,
the default being session-jwt
.
If the cookie is present, the node verifies the signature of the JWT stored in the cookie by using the signing key specified in the HMAC signing key property.
If the signature is valid, the node will decrypt the payload of the JWT by using the key pair specified in the Persistent Cookie Encryption Certificate Alias property. This property can be found at the global level by navigating to Configure > Authentication > Core Attributes > Security, or at the realm level by navigating to Realms > Realm Name > Authentication > Settings > Security.
Within the decrypted JSON payload is information such as the UID of the identity, and the client IP address. Enable the Enforce client IP property to verify that the current IP address and the client IP address in the cookie are identical.
The Persistent Cookie Decision authentication node recreates the received persistent cookie, updating the value for the idle time property. Therefore, cookie creation properties as used by the Set Persistent Cookie node are also available in the Persistent Cookie Decision authentication node. |
Tree evaluation continues along the True
outcome path
if the persistent cookie is present and all the verification checks above are satisfied.
Otherwise, tree evaluation continues along the False
outcome path.
Properties
Property | Usage | ||
---|---|---|---|
Idle Timeout |
Specifies the maximum amount of idle time allowed before the persistent cookie is invalidated, in hours. If no requests are received and the time is exceeded, the cookie is no longer valid. |
||
Enforce Client IP |
When enabled, ensures that the persistent cookie is only used from the same client IP to which the cookie was issued. |
||
Use secure cookie |
When enabled, adds the If the |
||
Use HTTP only cookie |
When enabled, adds the When the |
||
HMAC Signing Key |
Specifies a key to use for HMAC signing of the persistent cookie. Values must be base64-encoded and at least 256 bits (32 bytes) long.
To generate an HMAC signing key, run one of the following commands:
or
|
||
Persistent cookie name |
Specifies the name of the persistent cookie to check. |
Set Custom Cookie node
The Set Custom Cookie node lets you store an additional custom cookie in the client. The node uses the specified properties to create a cookie with a custom name and value, and optionally, sets attributes such as the cookie path, domain, expiry, and security flags.
Tree evaluation continues along the single outcome path. The Set Custom Cookie is created when AM next returns to the client.
The Set Custom Cookie node can be used in conjunction with the Configuration Provider node
to extend custom capabilities.
For instance, create a Config Provider
script to set custom static values or
access values from the shared or transient state.
Include all the Set Custom Cookie node attributes in the configuration provider script’s config
map. This example shows how to set the attributes of the custom cookie to
static values:
config = {
"name": "testname",
"value": "testvalue",
"maxAge": "60",
"domain": "am.exampledomain.com",
"path": "/",
"useSecureCookie": false,
"useHttpOnlyCookie": false,
"sameSite": "LAX"
};
Reference the script when you create a Configuration Provider node, and set the
node Type to Set Custom Cookie
. For example:
Example
This example uses a Set Custom Cookie node in a login tree.The custom cookie is set in the client browser after the user has successfully authenticated.
Properties
Property | Usage |
---|---|
Custom Cookie Name |
Sets the name of the custom cookie. The cookie name can contain any US-ASCII characters except for:
space, tab, control, or a separator character ( |
Custom Cookie Value |
Sets the value of the custom cookie. |
Max Age |
(Optional). Specifies the length of time the custom cookie remains valid, in seconds. If that time is exceeded, the cookie is no longer valid. Both the If omitted, the cookie will expire at the end of the current session. The precise implementation of this is determined by the specific browser. See RFC 6265 for details. |
Custom Cookie Domain |
(Optional). Sets the domain that the custom cookie will be sent to. |
Custom Cookie Path |
(Optional). Sets the path of the custom cookie. |
Use Secure Cookie |
When enabled, adds the If the |
Use HTTP Only Cookie |
When enabled, adds the When the |
Custom Cookie SameSite attribute |
Sets the The default value is For more information about cookies in AM, see SameSite cookie support in AM and IG. |
Set Persistent Cookie node
The Set Persistent Cookie authentication node
creates a persistent cookie named after the value specified in the Persistent cookie name property,
the default being session-jwt
.
The cookie contains a JWT, inside which there is a JSON payload with information such as the UID of the identity, and the client IP address.
The node encrypts the JWT using the key pair specified in the Persistent Cookie Encryption Certificate Alias property. This property can be found by navigating to Configure > Authentication > Core Attributes > Security.
The node signs the cookie with the signing key specified in the HMAC signing key property. Any node that will read the persistent cookie must be configured with the same HMAC signing key.
Properties
Property | Usage | ||
---|---|---|---|
Idle Timeout |
Specifies the maximum amount of idle time allowed before the persistent cookie is invalidated, in hours. If no requests are received and the time is exceeded, the cookie is no longer valid. |
||
Max life |
Specifies the length of time the persistent cookie remains valid, in hours. If that time is exceeded, the cookie is no longer valid. |
||
Use Secure Cookie |
When enabled, adds the If the |
||
Use HTTP Only Cookie |
When enabled, adds the When the |
||
HMAC Signing Key |
Specifies a key to use for HMAC signing of the persistent cookie. Values must be base64-encoded and at least 256 bits (32 bytes) long.
To generate an HMAC signing key, run one of the following commands:
or
|
||
Persistent Cookie Name |
Specifies the name used for the persistent cookie. |
Federation authentication nodes
Use the following nodes to configure trees with federation capabilities, such as OAuth 2.0, social authentication, and account provisioning:
OAuth 2.0 node
The OAuth 2.0 authentication node lets AM authenticate users of OAuth 2.0-compliant resource servers. References in this section are to RFC 6749, The OAuth 2.0 Authorization Framework.
This node, and its related services, are deprecated. For an alternative, see Social authentication. For information about the legacy/deprecated social authentication node and module implementations, see Social authentication in the ForgeRock Access Management 7 Authentication and Single Sign-On Guide. |
Tree evaluation continues along the Account Exists
path
if an account matching the attributes retrieved from the social identity provider is found in the user data store.
Otherwise, the tree evaluation continues along the No account exists
path.
Properties
Property | Usage | ||
---|---|---|---|
Client ID |
Specifies the |
||
Client Secret |
Specifies the |
||
Authentication Endpoint URL |
Specifies the URL to the social provider’s endpoint handling authentication as described in section 3.1 of The OAuth 2.0 Authorization Framework (RFC 6749). Example: |
||
Access Token Endpoint URL |
Specifies the URL to the endpoint handling access tokens as described in section 3.2 of The OAuth 2.0 Authorization Framework (RFC 6749). Example: |
||
User Profile Service URL |
Specifies the user profile URL that returns profile information. Example: |
||
OAuth Scope |
Specifies a list of user profile attributes that the client application requires, according to The OAuth 2.0 Authorization Framework (RFC 6749). Ensure you use the correct scope delimiter as required by the identity provider, for example commas or spaces. The list depends on the permissions that the resource owner, such as the end user, grants to the client application. |
||
Scope Delimiter |
Specifies the delimiter used to separate scope values. Some authorization servers use non-standard separators for scopes, for example commas. |
||
Redirect URL |
Specifies the URL the user is redirected to by the social identity provider after authenticating. For authentication trees in AM, set this property to the URL of the UI.
For example, |
||
Social Provider |
Specifies the name of the social provider for which this module is being set up. Example: |
||
Auth ID Key |
Specifies the attribute the social identity provider uses to identify an authenticated individual. Example: |
||
Use Basic Auth |
Specifies that the client uses HTTP Basic authentication when authenticating to the social provider. Default: |
||
Account Provider |
Specifies the name of the class that implements the account provider. Default: |
||
Account Mapper |
Specifies the name of the class that implements the method of locating local accounts based on the attributes returned from the social identity provider. Provided implementations are:
The Account Mapper classes can take two constructor parameters:
a comma-separated list of attributes and a prefix to apply to their values.
For example, to prefix all received property values with org.forgerock.openam.authentication.modules.common.mapping.JsonAttributeMapper|*|facebook- |
||
Attribute Mapper |
Specifies the list of fully qualified class names for implementations that map attributes from the OAuth 2.0 authorization server to AM profile attributes. Provided implementations are:
The Attribute Mapper classes can take two constructor parameters:
a comma-separated list of attributes and a prefix to apply to their values, to help differentiate between the providers.
For example, to prefix all incoming values with org.forgerock.openam.authentication.modules.common.mapping.JsonAttributeMapper|*|facebook- Be aware however using an asterisk applies the prefix to all values, including email addresses, postal addresses, and so on. |
||
Account Mapper Configuration |
Specifies the attribute configuration used to map the account of the user authenticated in the OAuth 2.0 provider
to the local data store in AM.
Valid values are in the form Examples:
|
||
Attribute Mapper Configuration |
Map of OAuth 2.0 provider user account attributes to local user profile attributes,
with values in the form Examples:
|
||
Save attributes in the session |
When enabled, saves the attributes in the Attribute Mapper Configuration field to the AM session. |
||
OAuth 2.0 Mix-Up Mitigation Enabled |
Controls whether the OAuth 2.0 authentication node carries out additional verification steps when it receives the authorization code from the authorization server. Specifies that the client must compare the issuer identifier of the authorization server
upon registration with the issuer value returned in the The Token Issuer property must be entered when the OAuth 2.0 Mix-Up Mitigation feature is enabled,
so that the validation can succeed.
The authorization code response will contain an issuer value (
For more information, see section 4 of OAuth 2.0 Mix-Up Mitigation Draft. |
||
Token Issuer |
Corresponds to the expected issuer identifier value in the Example: |
OpenID Connect node
The OpenID Connect authentication node lets AM authenticate users of OpenID Connect-compliant resource servers. As OpenID Connect is an additional layer on top of OAuth 2.0, many references in this section are to RFC 6749, The OAuth 2.0 Authorization Framework. OpenID Connect-specific references are to the OpenID Connect Core 1.0 incorporating errata set 1 specification.
This node, and its related services, are deprecated. For an alternative, see Social authentication. For information about the legacy/deprecated social authentication node and module implementations, see Social authentication in the ForgeRock Access Management 7 Authentication and Single Sign-On Guide. |
Tree evaluation continues along the Account Exists
path
if an account matching the attributes retrieved from the OpenID Connect identity provider
is found in the identity store.
Otherwise, the tree evaluation continues along the No account exists
path.
The OpenID Connect node implements the Authorization code grant.
Properties
Property | Usage | ||
---|---|---|---|
Client ID |
Specifies the |
||
Client Secret |
Specifies the |
||
Authentication Endpoint URL |
Specifies the URL to the social provider’s endpoint handling authentication as described in section 3.1 of The OAuth 2.0 Authorization Framework (RFC 6749). Example: |
||
Access Token Endpoint URL |
Specifies the URL to the endpoint handling access tokens as described in section 3.2 of The OAuth 2.0 Authorization Framework (RFC 6749). Example: |
||
User Profile Service URL |
Specifies the user profile URL that returns profile information. If not specified, attributes are mapped from the claims returned by the Example: |
||
OAuth Scope |
Specifies a list of user profile attributes that the client application requires, according to The OAuth 2.0 Authorization Framework (RFC 6749). Ensure you use the correct scope delimiter as required by the identity provider, for example commas or spaces. The list depends on the permissions that the resource owner, such as the end user, grants to the client application. |
||
Redirect URL |
Specifies the URL the user is redirected to by the social identity provider after authenticating. For authentication trees in AM, set this property to the URL of the UI.
For example |
||
Social Provider |
Specifies the name of the OpenID Connect provider for which this node is being set up. Example: |
||
Auth ID Key |
Specifies the attribute the social identity provider uses to identify an authenticated individual. Example: |
||
Use Basic Auth |
Specifies that the client uses HTTP Basic authentication when authenticating to the social provider. Default: |
||
Account Provider |
Specifies the name of the class that implements the account provider. Default: |
||
Account Mapper |
Specifies the name of the class that implements the method of locating local accounts based on the attributes returned from the social identity provider. The provided implementations is The Account Mapper classes can take two constructor parameters:
a comma-separated list of attributes and a prefix to apply to their values.
For example, to prefix all received property values with org.forgerock.openam.authentication.modules.oidc.JwtAttributeMapper|*|openid- |
||
Attribute Mapper |
Specifies the list of fully qualified class names for implementations that map attributes from the authorization server to AM profile attributes. The provided implementations is The Attribute Mapper classes can take two constructor parameters:
a comma-separated list of attributes and a prefix to apply to their values, to help differentiate between the providers.
For example, to prefix incoming org.forgerock.openam.authentication.modules.oidc.JwtAttributeMapper |
||
iplanet-am-user-alias-list |
openid- To prefix all incoming values use an asterisk ( |
||
Account Mapper Configuration |
Specifies the attribute configuration used to map the account of the user authenticated in the provider to the local identity store in AM. To add a mapping, specify the name of the provider attribute as the Key, and the local attribute to map to as the Value. For example, click the Add button, then specify |
||
Attribute Mapper Configuration |
Specifies how to map provider user attributes to local user profile attributes. To add a mapping, specify the name of the provider attribute as the Key, and the local attribute to map to as the Value. For example, click the Add button, then specify Examples: first_name=givenname last_name=sn name=cn email=mail id=facebook-id first_name=facebook-fname last_name=facebook-lname email=facebook-email |
||
Save attributes in the session |
When enabled, saves the attributes in the Attribute Mapper Configuration field to the AM session. |
||
OAuth 2.0 Mix-Up Mitigation Enabled |
Controls whether the authentication node carries out additional verification steps when it receives the authorization code from the authorization server. Specifies that the client must compare the issuer identifier of the authorization server
upon registration with the issuer value returned in the The Token Issuer property must be entered when the OAuth 2.0 Mix-Up Mitigation feature is enabled,
so that the validation can succeed.
The authorization code response will contain an issuer value (
For more information, see section 4 of OAuth 2.0 Mix-Up Mitigation Draft. |
||
Token Issuer |
Corresponds to the expected issuer identifier value in the Example: |
||
OpenID Connect Validation Type |
Specifies how to validate the ID token received from the OpenID Connect provider. AM ignores keys specified in JWT headers, such as `jku` and `jwe`; the following options are available to validate an incoming OpenID Connect ID token:
|
||
OpenID Connect Validation Value |
Provide the URL or secret key used to verify an incoming ID token, depending on the value selected in the OpenID Connect Validation Type property. |
Provision Dynamic Account node
The Provision Dynamic Account node provisions an account following successful authentication by a SAML2 authentication node or the Social Provider Handler node.
Accounts are provisioned using properties defined in the attribute mapper configuration of a social authentication or SAML2 authentication node earlier in the tree evaluation.
If a password has been acquired from the user, for example, by using the Platform Password node, it is used when provisioning the account. Otherwise, a 20 character random string is used.
In addition to retrieving the password from the node state, the Provision Dynamic Account node
gets the realm
value, and attributes
and userNames
from userInfo
in the shared state.
It sets the username
attribute in the node’s shared state.
Properties
Property | Usage |
---|---|
Account Provider |
Specifies the name of the class that implements the account provider. Default: |
Example
The following example uses the Provision Dynamic Account authentication node to allow users who have performed social authentication using Google to provide a password and provision an account, if they do not have a matching existing profile. They must enter a one-time password to verify they are the owner of the Google account.
Provision IDM Account node
The Provision IDM Account node redirects users to an IDM instance to provision an account.
This node, and its related services, are deprecated. For an alternative, see Social authentication. For information about the legacy/deprecated social authentication node and module implementations, see Social authentication in the ForgeRock Access Management 7 Authentication and Single Sign-On Guide. |
Ensure you have configured the details of the IDM instance in AM, by navigating to Configure > Global Services > IDM Provisioning.
Properties
Property | Usage |
---|---|
Account Provider |
Specifies the name of the class that implements the account provider. Default: |
Example
The following example uses the Provision IDM Account authentication node to allow users who have performed social authentication using Facebook to provision an account using IDM, if they do not have a matching existing profile.
SAML2 Authentication node
This node lets you integrate SAML v2.0 SSO into an AM authentication tree. Use it when deploying SAML v2.0 single sign-on in integrated mode (SP-initiated SSO only).
If a user account is found that matches the federated account, tree evaluation continues along the "Account Exists" outcome. Otherwise, a matching account could not be found, and tree evaluation continues along the "No Account Exists" outcome.
If the node continues along the "Account Exists" or along the "No Account Exists" outcomes
(in other words, if the node reaches the end of its processing without a failure),
it sets the successURL
parameter in the tree’s shared state
to the value of the RelayState
parameter in the request, if any.
If the request does not provide a value, the node uses the default RelayState
value configured in the SP.
You can dynamically provision an account on the SP if it does not exist, or you can link the remote account to a local account using the Write Federation Information node.
Before attempting to configure a SAML2 authentication node, ensure that:
-
You have configured a remote IdP and a hosted SP in a CoT in the same realm where the authentication node will be configured.
-
The SP is configured for integrated mode. See SSO and SLO in Integrated Mode.
Properties
Property | Usage |
---|---|
IdP Entity ID |
Specifies the name of the remote IdP. |
SP MetaAlias |
Specifies the local alias for the SP, in the format |
Allow IdP to Create NameID |
Specifies whether the IdP should create a new identifier for the authenticating user if none exists. For detailed information, see the section on the Default: |
Comparison Type |
Specifies a comparison method to evaluate authentication context classes or statements. The value specified in this property overrides the value set in the SP configuration under Realms > Realm Name > Applications > Federation > Entity Providers > Service Provider Name > Assertion Content > Authentication Context > Comparison Type. Valid comparison methods are For more information about the comparison methods, see the section on the Default: |
Authentication Context Class Reference |
(Optional) Specifies one or more URIs for authentication context classes to be included in the SAML request. Authentication Context Classes are unique identifiers for an authentication mechanism. The SAML v2.0 protocol supports a standard set of authentication context classes, defined in Authentication Context for the OASIS Security Assertion Markup Language (SAML) V2.0. In addition to the standard authentication context classes, you can specify customized authentication context classes. Any authentication context class that you specify in this field must be supported for the service provider. In the AM admin UI, go to Realms > Realm Name > Applications > Federation > Entity Providers > Service Provider Name > Assertion Content > Authentication Context. When specifying multiple authentication context classes, use the | character to separate the classes. For example:
|
Authentication Context Declaration Reference |
(Optional) Specifies one or more URIs that identify authentication context declarations. When specifying multiple URIs, use the | character to separate the URIs. For more information, see the section on the |
Request Binding |
Specifies the format the SP will use to send the authentication request to the IdP. Valid values are Default: |
Response Binding |
Specifies the format the IdP will use to send the response to the SP. Valid values are Default: |
Force IdP Authentication |
Specifies whether the IdP forces authentication or if it can reuse existing security contexts. Default: Disabled |
Passive Authentication |
Specifies whether the IdP uses passive authentication or not. Passive authentication requires the IDP to only use authentication methods that do not require user interaction. For example, authenticating using an X.509 certificate. Default: Disabled |
NameID Format |
Specifies the SAML name ID format that will be requested in the SAML authentication request. For example:
Default: |
For examples, see SSO and SLO in integrated mode.
Social Facebook node
The Social Facebook authentication node is a duplicate of the OAuth 2.0 node, preconfigured to work with Facebook.
Only the Client ID
and Client Secret
are required to be populated.
This node, and its related services, are deprecated. For an alternative, see Social authentication. For information about the legacy/deprecated social authentication node and module implementations, see Social authentication in the ForgeRock Access Management 7 Authentication and Single Sign-On Guide. |
Tree evaluation continues along the Account Exists
path
if an account matching the attributes retrieved from Facebook are found in the user data store.
Otherwise, the tree evaluation continues along the No account exists
path.
Properties
Property | Usage | ||
---|---|---|---|
Client ID |
Specifies the |
||
Client Secret |
Specifies the |
||
Authentication Endpoint URL |
Specifies the URL to the social provider’s endpoint handling authentication as described in section 3.1 of The OAuth 2.0 Authorization Framework (RFC 6749). |
||
Access Token Endpoint URL |
Specifies the URL to the endpoint handling access tokens as described in section 3.2 of The OAuth 2.0 Authorization Framework (RFC 6749). |
||
User Profile Service URL |
Specifies the user profile URL that returns profile information. |
||
OAuth Scope |
Specifies a comma-separated list of user profile attributes that the client application requires, according to The OAuth 2.0 Authorization Framework (RFC 6749). The list depends on the permissions that the resource owner, such as the end user, grants to the client application. |
||
Redirect URL |
Specifies the URL the user is redirected to by Facebook after authenticating, to continue the authentication tree flow. Set this property to the URL of the AM UI.
For example,
|
||
Social Provider |
Specifies the name of the social provider for which this node is being set up. Default: |
||
Auth ID Key |
Specifies the attribute the social identity provider uses to identify an authenticated individual. Default: |
||
Use Basic Auth |
Specifies that the client uses HTTP Basic authentication when authenticating to the social provider. Default: |
||
Account Provider |
Specifies the name of the class that implements the account provider. Default: |
||
Account Mapper |
Specifies the name of the class that implements the method of locating local accounts based on the attributes returned from Facebook. Default: |
||
Attribute Mapper |
Specifies the list of fully qualified class names for implementations that map attributes from Facebook to AM profile attributes. Default: |
||
Account Mapper Configuration |
Specifies the attribute configuration used to map the account of the user authenticated in the Social Facebook provider
to the local data store in AM.
Valid values are in the form Default:
|
||
Attribute Mapper Configuration |
Map of Facebook user account attributes to local user profile attributes,
with values in the form Default:
|
||
Save attributes in the session |
When enabled, saves the attributes in the Attribute Mapper Configuration field to the AM session. Default: |
||
OAuth 2.0 Mix-Up Mitigation Enabled |
Controls whether the authentication node carries out additional verification steps when it receives the authorization code from the authorization server. Specifies that the client must compare the issuer identifier of the authorization server
upon registration with the issuer value returned in the The Token Issuer property must be entered when the OAuth 2.0 Mix-Up Mitigation feature is enabled,
so that the validation can succeed.
The authorization code response will contain an issuer value (
For more information, see section 4 of OAuth 2.0 Mix-Up Mitigation Draft. |
||
Token Issuer |
Corresponds to the expected issuer identifier value in the Example: |
Example
The following example uses the Provision IDM Account authentication node to allow users who have performed social authentication using Facebook to provision an account using IDM, if they do not have a matching existing profile.
Social Google node
The Social Google authentication node is a duplicate of the OAuth 2.0 node, preconfigured to work with Google.
Only the Client ID
and Client Secret
are required to be populated.
This node, and its related services, are deprecated. For an alternative, see Social authentication. For information about the legacy/deprecated social authentication node and module implementations, see Social authentication in the ForgeRock Access Management 7 Authentication and Single Sign-On Guide. |
Tree evaluation continues along the Account Exists
path
if an account matching the attributes retrieved from Google are found in the user data store.
Otherwise, the tree evaluation continues along the No account exists
path.
Properties
Property | Usage | ||
---|---|---|---|
Client ID |
Specifies the |
||
Client Secret |
Specifies the |
||
Authentication Endpoint URL |
Specifies the URL to the social provider’s endpoint handling authentication as described in section 3.1 of The OAuth 2.0 Authorization Framework (RFC 6749). |
||
Access Token Endpoint URL |
Specifies the URL to the endpoint handling access tokens as described in section 3.2 of The OAuth 2.0 Authorization Framework (RFC 6749). |
||
User Profile Service URL |
Specifies the user profile URL that returns profile information. |
||
OAuth Scope |
Specifies a space-separated list of user profile attributes that the client application requires, according to The OAuth 2.0 Authorization Framework (RFC 6749). The list depends on the permissions that the resource owner, such as the end user, grants to the client application. Default: |
||
Redirect URL |
Specifies the URL the user is redirected to by Google after authenticating, to continue the authentication tree flow. Set this property to the URL of the AM UI.
For example,
|
||
Social Provider |
Specifies the name of the social provider for which this node is being set up. Default: |
||
Auth ID Key |
Specifies the attribute the social identity provider uses to identify an authenticated individual. Default: |
||
Use Basic Auth |
Specifies that the client uses HTTP Basic authentication when authenticating to Google. Default: |
||
Account Provider |
Specifies the name of the class that implements the account provider. Default: |
||
Account Mapper |
Specifies the name of the class that implements the method of locating local accounts based on the attributes returned from Google. Default: |
||
Attribute Mapper |
Specifies the list of fully qualified class names for implementations that map attributes from Google to AM profile attributes. Default:
|
||
Account Mapper Configuration |
Specifies the attribute configuration used to map the account of the user
authenticated in the Social Google provider to the local data store in AM.
Valid values are in the form Default:
|
||
Attribute Mapper Configuration |
Map of Google user account attributes to local user profile attributes,
with values in the form Default:
|
||
Save attributes in the session |
When enabled, saves the attributes in the Attribute Mapper Configuration field to the AM session. Default: |
||
OAuth 2.0 Mix-Up Mitigation Enabled |
Controls whether the authentication node carries out additional verification steps when it receives the authorization code from the authorization server. Specifies that the client must compare the issuer identifier of the authorization server
upon registration with the issuer value returned in the The Token Issuer property must be entered when the OAuth 2.0 Mix-Up Mitigation feature is enabled,
so that the validation can succeed.
The authorization code response will contain an issuer value (
For more information, see section 4 of OAuth 2.0 Mix-Up Mitigation Draft. |
||
Token Issuer |
Corresponds to the expected issuer identifier value in the Example: |
Example
The following example uses the Anonymous User Mapping authentication node to allow users who have performed social authentication using Google to access AM as an anonymous user if they do not have a matching existing profile.
Social Ignore Profile node
The Social Ignore Profile authentication node specifies if a local user profile should be ignored. If tree evaluation passes through this node, after successful social authentication, AM issues an SSO token regardless of whether a user profile exists in the data store. The presence of a user profile is not checked.
This node, and its related services, are deprecated. For an alternative, see Social authentication. For information about the legacy/deprecated social authentication node and module implementations, see Social authentication in the ForgeRock Access Management 7 Authentication and Single Sign-On Guide. |
Social Provider Handler node
This node is used alongside the Select Identity Provider node to enable use of the Social Identity Provider Service.
It takes the provider selection from the Select Identity Provider node and attempts to authenticate the user with that provider. It then collects relevant profile information from the provider and returns the user to the flow, and transforms that profile information into attributes AM can use.
Properties
Property | Usage |
---|---|
Transformation Script |
A script that transforms a normalized social profile to an identity or managed object. Select |
Username Attribute |
ForgeRock Identity Platform deployments only. |
Client Type |
Specify the client type you are using to authenticate to the provider. Use the default, Select |
Write Federation Information node
This node creates a persistent link between a remote IdP account and a local account in the SP, if none exists yet. If a transient link exists, it is persisted. Existing account links with different IdPs are not lost.
Use this node alongside the SAML2 Authentication node, and ensure that the NameID Format is persistent
.
Properties
This node has no configurable properties.
For examples, see SSO and SLO in Integrated Mode.
Identity management authentication nodes
Use the following nodes to perform identity management during an authentication tree flow, such as mapping anonymous users to a session.
Accept Terms and Conditions node
This node prompts the user to accept the currently active Terms and Conditions.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
You set up Terms and Conditions in the Platform UI. For more information, see Terms & Conditions in the platform documentation.
This node is used in a registration tree, or combined with the Terms and Conditions Decision node in a progressive profile or login tree.
Note that there is no failure path for this node. The user must accept the Terms and Conditions in order to proceed:
Example
In a progressive profile tree, the Accept Terms and Conditions node is used after the Terms and Conditions Decision node. If the user has not accepted the latest version of the Terms and Conditions, they are taken to a page notifying them that proceeding indicates accepting the current Terms and Conditions.
If the user clicks next, the acceptance response is stored in IDM.
Anonymous User Mapping node
The Anonymous User Mapping node lets users log in to your application or web site without providing credentials, by
assuming the identity of a specified existing user account. The default user for this purpose is named anonymous
.
Typically, you would provide such users with very limited access, for example, anonymous users may have access to public downloads on your site.
The anonymous user status is |
Properties
Property | Usage |
---|---|
Anonymous User Name |
Specifies the username of an account that represents anonymous users.
This user must already exist in the realm, and its user status must be |
Example
The following example uses the Anonymous User Mapping authentication node to allow users who have performed social authentication to access AM as an anonymous user, if they do not have a matching existing profile.
Anonymous Session Upgrade node
The Anonymous Session Upgrade node allows an anonymous session to be upgraded to a non-anonymous session by adding the Anonymous Session Upgrade node as the first node in any tree.
Example
After using the Anonymous User Mapping node to access AM as an anonymous user, the Anonymous Session Upgrade authentication node lets users upgrade their session to a non-anonymous one.
Attribute Collector node
The Attribute Collector node is used to collect the values of attributes for use elsewhere in a tree, such as collecting user information to populate a new account in a registration tree.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
To request a value,
the attribute must be present in the IDM schema of the Identity Object configured in the tree.
This node supports three types of attributes: string
, boolean
, and number
.
The node configuration allows the admin to specify if the attributes are required to continue, and if they should be subject to validation through IDM’s policy filter.
You can place the node anywhere in your authentication tree, or within a page node.
Properties
Property | Usage |
---|---|
Attributes to Collect |
A list of the attributes you wish to collect, based on the attributes found in the IDM schema for the identity object configured in the tree. |
All Attributes Required |
When enabled, all attributes collected in this node are required in order to continue. |
Validate Input |
When enabled, the content input in this node should be validated against IDM policy settings specified in the IDM schema. |
Identity Attribute |
The attribute used to identify the object in IDM. |
Attribute Present Decision node
Checks if an attribute is present on an object, regardless of whether the field is private. Use this to verify an attribute is present, without needing to know the value of the attribute itself.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
A good use case is during an update password flow, where you want to check if the account has a password (rather than no password and logging in through a social identity) before continuing.
This node is similar to the Attribute Value Decision node when that node is set to use the PRESENT
operator,
except it cannot return the value of the attribute, but can work with private attributes.
Attribute Value Decision node
Verifies that the user’s specified attribute satisfies a specific condition.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
Use this node to check whether an attribute’s expected value is equal to a collected attribute value, or to validate that a specified attribute has been collected (regardless of the value of that attribute).
For example, to validate that a user filled out the country attribute when registering,
set the comparison operation to PRESENT
, and the comparison attribute to country
.
If you instead need to ensure the country attribute is set to the United States,
set the comparison operation to EQUALS
, the comparison attribute to country
,
and the comparison value to United States
.
Use Attribute Present Decision node instead
when you need to check for the presence of a private attribute (such as, password
).
Properties
Property | Usage |
---|---|
Comparison Operation |
The operation to perform on the object attribute;
|
Comparison Attribute |
The object attribute to compare. |
Comparison Value |
This property is only relevant when using the |
Identity Attribute |
The attribute used to identify the object in IDM. |
Create Object node
The Create Object node is used to create a new object in IDM based on information collected during an auth tree flow, such as user registration.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
Any managed object attributes that are marked as required in IDM will need to be collected during the auth tree flow in order for the new object to be created.
Properties
Property | Usage | ||
---|---|---|---|
Identity Resource |
The type of IDM managed identity resource object that this node will create. It must match the identity resource type for the current tree.
|
Create Password node
The Create Password node allows users to create a password when provisioning an account.
This node, and its related services, are deprecated. For an alternative, see Social authentication. For information about the legacy/deprecated social authentication node and module implementations, see Social authentication in the ForgeRock Access Management 7 Authentication and Single Sign-On Guide. |
The social identity provider will not provide a user’s password. Use this node to provide a password to complete the user’s credentials before provisioning an account.
The tree must provision an account after asking the user for a password,
for example by using the Provision Dynamic Account
authentication node.
If an account is not provisioned the entered password will not be saved.
You must not place any nodes that request additional input from the user between the Create Password node and the provisioning node, otherwise the password will be lost. |
Properties
Property | Usage |
---|---|
minPasswordLength |
Specifies the minimum number of characters the password must contain. |
Example
The following example uses the Create Password authentication node to allow users who have performed social authentication using Google to provide a password and provision an account, if they do not have a matching existing profile. They must enter a one-time password to verify they are the owner of the Google account.
Consent Collector node
The Consent Collector node prompts the user to consent to share their profile data.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
A consent notice is listed for each IDM mapping that has consent enabled. If an IDM mapping is not created, or the mappings do not have privacy and consent enabled, no consent message will be shown to the user.
This node is primarily used in progressive profile or registration flows.
Properties
Property | Usage |
---|---|
All Mappings Required |
If enabled, all mappings listed by this node require consent in order to move forward. |
Privacy & Consent Message |
Localized message providing the privacy and consent notice.
The key is the language (such as |
Display Username node
This node is used to fetch a username based on a different identifying attribute (such as an email address), then display it on screen. To email the username to the user instead, use the Identify Existing User node combined with a Email Suspend node or Email Template node. The Display Username node requires IDM integration to function.
Properties
Property | Usage |
---|---|
User Name |
The attribute used to identify the username in an IDM object. |
Identity Attribute |
The attribute used to identify the object in IDM. Since this node is generally used for recovering a username, the identity attribute in this case should be some other attribute that is unique to a user object, such as the user’s email address. You will receive an exception if there is more than one result for this attribute, so make sure the value of whatever attribute you select is unique for each user. |
Identify Existing User node
This node verifies a user exists based on an identifying attribute, such as an email address, then makes the value of a specified attribute available in a tree’s shared state.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
For example, use this node in a "Forgot Username" flow to fetch a username to email to the user. If you want to display the username on screen, use the Display Username node instead.
Properties
Property | Usage |
---|---|
Identifier |
The attribute to collect from an IDM object. |
Identity Attribute |
The attribute used to identify the object in IDM. Since this node is generally used for recovering a username, the identity attribute in this case should be some other attribute that is unique to a user object, such as the user’s email address. |
Example
The following is an example of a forgotten password tree. The user enters information that the Identify Existing User will use to try to identify them. Next, AM uses the Email Suspend node to send an email to the user and suspend the authentication tree. Once authentication is resumed, the user is sent to a different tree to reset their password:
KBA Decision node
The KBA Decision node is used to check if the minimum number of KBA questions required by the system are defined for the user.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
The number of KBA questions is determined by the minimumAnswersToDefine
property
in selfservice.kba.json
in IDM.
This node is mainly used for Progressive Profile completion.
KBA Definition node
The KBA Definition node collects KBA questions and answers from the user and saves them to the user object.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
This is used when creating or updating a user with Knowledge-Based Authentication enabled. For more information, see Security Questions.
KBA Verification node
The KBA Verification node presents KBA questions to the user, collects answers to those questions, and verifies the input against the user’s stored answers.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
This is used during self-service actions such as Forgot Password or Forgot Username,
where additional authentication is needed.
The number of KBA questions is determined by the minimumAnswersToVerify
property
in selfservice.kba.json
in IDM.
Pass-Through Authentication node
The Pass-Through Authentication node authenticates an identity through a connector to a third-party service. This lets you migrate user profiles without forcing users to reset their passwords, or retain a third-party service indefinitely as the canonical store for authentication credentials.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
Before you use the node:
-
Configure the connector to the third-party service.
For details, see Connectors in the IDM documentation.
-
If you plan to collect credentials in the identity repository for users, synchronize accounts from the third-party service.
For details, see Synchronization in the IDM documentation.
Use this node after collecting the authentication credentials. For example, use the Platform Username node and Platform Password node to collect the username and password.
Pass the credentials to this node to authenticate the identity against the service.
Properties
Property | Usage |
---|---|
System Endpoint |
Required. Name of the connector to the third-party service that performs authentication. |
Object Type |
The OpenICF object type for the object being authenticated. Default: |
Identity Attribute |
The username attribute for authentication. Default: |
Password Attribute |
The password attribute for authentication. Default: |
Example
Before trying this example, synchronize accounts from the third-party service. The example shows a login journey that tries pass-through authentication when local authentication fails, and stores the user password when authentication with the third-party service succeeds.
In this example, the user enters their credentials with the Platform Username node and Platform Password node. The Data Store Decision node authenticates against the platform directory service. On failure, authentication passes through to the third-party service. If authentication with the third-party service is successful, the Identify Existing User node and Required Attributes Present node check for a valid user profile. The Patch Object node updates the user’s profile with the successful password:
Patch Object node
The Patch Object node is used to update attributes in an existing managed object in IDM.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
This is used in cases such as progressive profile completion, where you may wish to collect additional profile data from a user after they have logged in several times.
Properties
Property | Usage | ||
---|---|---|---|
Patch as Object |
Allows patching as the object being updated. Enable this property to patch a user object as part of the user’s current session, such as when updating their password. |
||
Ignored Fields |
Fields from the tree’s shared state that should be ignored as part of patch.
If this is empty, all shared-state fields in the tree’s |
||
Identity Resource |
The type of IDM managed identity resource object that this node will create. It must match the identity resource type for the current tree.
|
||
Identity Attribute |
The attribute used to identify the object to update in IDM. |
Platform Password node
This node prompts the user to enter their password and stores the input in a configurable state attribute.
Use this node instead of the Password Collector node when you have configured AM as part of a ForgeRock Identity Platform deployment.
This node uses the |
Properties
Property | Usage |
---|---|
Validate Password |
When enabled, this node checks the user’s input against IDM’s password policies, and returns any policy failures as errors. For example, if you submitted an invalid password on registration, the response from this node would include a list of failed policies:
|
Password Attribute |
The attribute used to store a password in the IDM object. |
Platform Username node
This node prompts the user to enter their username, and stores it in a configurable state attribute.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
Use this node instead of the Username Collector node when working with AM and IDM as an integrated platform.
Profile Completeness Decision node
The Profile Completeness Decision node is used in progressive profile flows.
It checks how much of a user’s profile has been filled out,
where the completeness of a profile is expressed as a percentage of user-viewable,
user-editable fields that are not null
.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
Query Filter Decision node
Checks if the contents of a user’s profile matches a specified query filter.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
Use this node to verify whether a particular field has been filled out, or that the contents of a field match a specific pattern. For instance, use this in progressive profile flows to check if marketing preferences are set on a user’s profile.
For more information on constructing effective query filters, see Construct Queries in the IDM documentation.
Required Attributes Present node
The Required Attributes Present node checks the specified identity resource in IDM (by default, managed/user
),
and determines if all attributes required to create the specified object exist within shared state of the tree.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
Properties
Property | Usage | ||
---|---|---|---|
Identity Resource |
The type of IDM managed identity resource object that this node will create. It must match the identity resource type for the current tree.
|
Select Identity Provider node
This node is used in combination with the Social Provider Handler node to enable use of the Social Identity Provider Service. It presents the user with a list of configured, enabled, social identity providers to use for authentication.
The node has two possible outputs: social authentication, and local authentication. Local authentication can be turned off by disabling Include local authentication.
This node returns the SelectIdPCallback when more than one social identity provider is enabled, or a single provider is enabled as well as the Local Authentication option, and therefore a choice from the user is required. If no choice from the user is required, authentication proceeds to the next node in the tree.
Properties
Property | Usage | ||
---|---|---|---|
Include local authentication |
Determines whether local authentication will be included as an available method for authenticating. |
||
Offer only existing providers |
ForgeRock Identity Platform deployments only. |
||
Password attribute |
ForgeRock Identity Platform deployments only. |
||
Identity Attribute |
ForgeRock Identity Platform deployments only. |
||
Filter Enabled Providers |
By default, the node displays all identity providers that are marked as Enabled in the Social Identity Provider Service as a selectable option. Specify the name of one of more providers to filter the list.
If this field is not empty, providers must be in the list, and also be enabled in the Social Identity Provider service, in order to be displayed. If left blank, all enabled providers are displayed. |
Terms and Conditions Decision node
The Terms and Conditions Decision node verifies the user has accepted the active set of Terms and Conditions.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
You set up Terms and Conditions in the Platform UI. For more information, see Terms & Conditions in the platform documentation.
Use this node when you want to verify the user has accepted your Terms and Conditions before proceeding (such as logging in, or in a progressive profile tree). This is often used with the Accept Terms and Conditions node.
Time Since Decision node
Checks if a specified amount of time has passed since the user was registered.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
For example, if you wanted to prompt users to review your terms and conditions after the account is a week old,
you could set the Elapsed Time
property to 10080
minutes.
After that time has elapsed, the next time the user logs in, they will be prompted to review your terms and conditions.
This node is mainly used for Progressive Profile completion.
Properties
Property | Usage |
---|---|
Elapsed Time |
The amount of time since the user was created, in minutes, that needs to elapse before this node is triggered. This property also supports specifying basic time units.
For example, when setting the property to |
Identity Attribute |
The attribute used to identify the object to update in IDM. |
Utility authentication nodes
Use the following nodes to perform various tasks during the authentication flow:
Agent Data Store Decision node
The Agent Data Store Decision authentication node verifies that a provided agent ID and password match a web agent or Java agent profile configured in AM.
Non-agent identities, such as users stored in configured identity repositories, cannot be verified by using the Agent Data Store Decision node. Instead, you should use the Data Store Decision node. |
The web or Java agent ID, and the password should be obtained by using the Zero Page Login Collector node.
Tree evaluation continues along the True
path if the credentials match those of a configured agent profile.
Otherwise, the tree evaluation continues along the False
path.
Choice Collector node
The Choice Collector authentication node lets you define two or more options to present to the user when authenticating.
Properties
Property | Usage | ||
---|---|---|---|
Choices |
Enter two or more choice strings to display to the user. To remove a choice, select its Delete icon (x). To delete all choices, select the Clear all button in the Choices field. |
||
Default Choice (required) |
Enter the value of the choice to be selected by default.
|
||
Prompt (required) |
Enter the prompt string to display to the user when presenting the choices. |
Email Suspend node
The Email Suspend node is used to generate and send an email to a user, such as an address verification email, based on an email template in IDM. The authentication tree will pause until the user clicks a link in the email to resume the tree flow.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
The link is generated by the Email Suspend node, and is passed along to IDM as part of the email object,
in a property called resumeURI
.
This node uses the email service configured in IDM to send email. If you do not need the auth tree to pause and wait for a response from email, use the Email Template node instead.
Properties
Property | Usage |
---|---|
Email Template Name |
The name of the IDM email template to be sent. Check IDM for the names of available email templates, or to create a new template. |
Email Attribute |
The IDM attribute storing the address to send the email to. |
Email Suspend Message |
The localized message to be returned once the tree is suspended. The default message is, "An email has been sent to your inbox." |
Object Lookup |
Determines whether the object should be looked up in IDM.
If true, IDM is queried for an existing object.
Otherwise, the object in the authentication tree’s shared state is used.
For example, if suspending a user registration flow before the user object is created in IDM,
this should be set to |
Identity Attribute |
The attribute used to identify the object in IDM. |
Example
The following is an example of a forgotten password tree. The user enters information that the Identify Existing User node will use to try to identify them. Next, AM uses the Email Suspend node to send an email to the user and suspend the authentication tree. Once authentication is resumed, the user is sent to a different tree to reset their password:
Email Template node
The Email Template node is used to generate and send an email to a user, such as a welcome email, based on an email template in IDM.
This functionality requires that you configure AM as part of a ForgeRock Identity Platform deployment. |
This node uses the email service configured in IDM to send email. If you need the auth tree to pause and wait for a response from email, use the Email Suspend node instead.
This node has two possible outcomes: "Email Sent" and "Email Not Sent", which can be used if you need different behavior depending on the outcome. According to OWASP authentication recommendations, the message to the user should be the same in both cases.
Properties
Property | Usage |
---|---|
Email Template Name |
The name of the IDM email template to be sent. Check IDM for the names of available email templates, or to create a new template. |
Email Attribute |
The IDM attribute storing the address to send the email to. |
Identity Attribute |
The attribute used to identify the object in IDM. |
Failure URL node
The Failure URL authentication node sets the URL to be redirected to when authentication fails.
Specifying a failure URL in a tree overrides any |
For more information on how AM determines the redirection URL, and to configure the Validation Service to trust redirection URLs, see Configure success and failure redirection URLs.
The URL is also saved in the tree’s |
Get Session Data node
The Get Session Data authentication node retrieves the value of a specified key from a user’s session data,
and stores it in the specified key in the tree’s nodeState
object.
The Get Session Data authentication node is only used during session upgrade—when the user has already successfully authenticated previously—and is now upgrading their session for additional access. For more information on upgrading a session, see Session upgrade.
The node will fail with an error if you attempt to get a property when the user does not have an existing session. Use a Scripted Decision node to determine if an existing session is present.
Example Check for Existing Session Script
if (typeof existingSession !== 'undefined')
{
outcome = "hasSession";
}
else
{
outcome = "noSession";
}
Properties
Property | Usage |
---|---|
Session Data Key |
Specify the name of a key in the user’s session data to use to retrieve the value. |
Shared State Key |
Specify the name of a key in the |
Example
The following table includes example keys that may be available in an existing session, and corresponding sample values:
Key | Sample value |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Inner Tree Evaluator node
The Inner Tree Evaluator authentication node allows the nesting and evaluation of authentication trees as children within a parent tree. There is no limit to the depth of nested trees.
Any information collected or set by the parent tree, such as a username or the authentication level, is available to child trees.
Shared node state data collected by child trees is available to the parent when evaluation of the child is complete, but data stored in transient and secure state is not. For instance, if a child tree collects and stores the user’s password in transient state, it cannot be retrieved by a node in the parent tree when evaluation continues.
For information about shared state data, refer to Access shared state data.
Tree evaluation continues along the True
path if the child tree reached the Success exit point.
Otherwise, the tree evaluation continues along the False
path.
Message node
The Message authentication node lets you present a custom, localized message to the user.
In addition to the message, you can provide a localized positive, and negative response that the user must select to proceed.
Properties
Property | Usage |
---|---|
Message |
Click Add. Enter the message locale in the Locales that you specify here must be real locales, otherwise AM returns an If the locale of the user’s browser does not match any locale configured in the node, the node uses the Default Authentication Locale (set, per realm, in Authentication > Settings > General). If there is no default authentication locale, the node uses the Default Locale (set in Deployment > Servers > Server Name >General > System). If the message property is left blank, the text To remove a message, select its Delete icon (). |
Positive answer |
Specify a positive answer that will cause tree evaluation to continue along the Click the Add button, and then enter the locale of the positive answer in the If the locale of the user’s browser cannot be determined during authentication, the first message in the list is used. If the message property is left blank, the text To remove a message, select its Delete icon (). |
Negative answer |
Specify a negative answer that will cause tree evaluation to continue along the Click the Add button, and then enter the locale of the negative answer in the If the locale of the user’s browser cannot be determined during authentication, the first message in the list is used. If the message property is left blank, the text To remove a message, select its Delete icon (). |
Meter node
The Meter authentication node increments a specified metric key each time tree evaluation passes through the node.
For information on the Meter
metric type, see Monitoring metric types.
The metric is exposed in all available interfaces, as described in Monitor AM instances.
Page node
The Page authentication node combines multiple nodes that request input into a single page for display to the user. Drag and drop nodes on to the page node to combine them.
The outcome paths are determined by the last node in the page node. Only the last node in the page can have more than one outcome path.
Only nodes that use callbacks to request input can be added to a Page node. Other nodes, such as the Data Store Decision node and Push Sender node must not be added to a page node.
Properties
Property | Usage |
---|---|
Header |
Optional. Localized title for the page node and the nodes contained within it. Use this when components of an authentication flow need a title, such as breaking a registration into labeled sections. |
Description |
Optional. A localized description for the page node and the nodes contained within it. Use this when additional descriptive text is needed in an authentication flow. |
Stage |
Optional. This is used in UI development, to help identify what node or series of nodes are being returned so they can be rendered in the UI appropriately. |
The Page node’s optional properties are passed in the response, but the UI needs to support these properties before they will be visible to the end user. |
Example
The following example uses a page node containing a username collector, a password collector, and a choice collector:
The user is presented with all of the requests for input on a single page:
Polling Wait node
The Polling Wait authentication node pauses progress of the authentication tree for a specified number of seconds, for example in order to wait for a response to a one-time password email or push notification.
Requests to the tree made during the wait period are sent a PollingWaitCallback
callback and an authentication ID.
For example, the following callback indicates a wait time of 10 seconds:
{
"authId": "eyJ0eXAiOiJK...u4WvZmiI",
"callbacks": [
{
"type": "PollingWaitCallback",
"output": [
{
"name": "waitTime",
"value": "10000"
},
{
"name": "message",
"value": "Waiting for response..."
}
]
}
]
}
The client must wait 10 seconds before returning the callback data, including the authId
.
For example:
$ curl \
--cookie "iPlanetDirectoryPro=AQIC5w…NTcy*" \" \
--request POST \
--header "Content-Type: application/json" \
--header "Accept-API-Version: resource=2.0, protocol=1.0" \
--data '{
"authId":"eyJ0eXAiOi…WLxJ-1d6ovYKHQ",
"template":"",
"stage":"AuthenticatorPush3",
"header":"Authenticator Push",
"callbacks":[
{
"type":"PollingWaitCallback",
"output":[
{
"name":"waitTime",
"value":"10000"
}
]
},
{
"type":"ConfirmationCallback",
"output":[
{
"name":"prompt",
"value":""
},
{
"name":"messageType",
"value":0
},
{
"name":"options",
"value":[
"Use Emergency Code"
]
},
{
"name":"optionType",
"value":-1
},
{
"name":"defaultOption",
"value":0
}
],
"input":[
{
"name":"IDToken2",
"value":100
}
]
}
]
}' \
"https://openam.example.com:8443/openam/json/realms/root/realms/alpha/authenticate\
?authIndexType=composite_advice\
&authIndexValue=%3CAdvices%3E%0A\
%3CAttributeValuePair%3E%0A%3CAttribute%20name%3D\
%22TransactionConditionAdvice%22%2F%3E%0A\
%3CValue%3E9dae2c80-fe7a-4a36-b57b-4fb1271b0687\
%3C%2FValue%3E%0A%3C%2FAttributeValuePair\
%3E%0A%3C%2FAdvices%3E"
For more information on authenticating using the REST API, see Authenticate over REST.
When using the UI for authentication, it automatically waits for the required amount of time and resubmits the page in order to continue tree evaluation. The message displayed whilst waiting is configurable by using the Waiting Message property.
Tree evaluation continues along the Done
outcome path when the next request is received
after the wait time has passed.
Enabling Spam detection adds a Spam
outcome path to the node.
Tree evaluation continues along the Spam
outcome path
if more than the specified number of requests are received during the wait time.
Enabling the user to exit without waiting adds an Exited
outcome path to the node.
Tree evaluation continues along the Exited
outcome path
if the user clicks the button that appears when the option is enabled.
The message displayed on the exit button is configurable by using the Exit Message property.
Properties
Property | Usage |
---|---|
Seconds To Wait |
Specify the number of seconds to pause the authentication tree. Default: |
Enable Spam Detection |
Specify whether to track the number of responses received during the wait time,
and continue tree evaluation along the Default: Disabled |
Spam Tolerance |
Specify the number of responses to allow during the wait time
before continuing tree evaluation along the Default: |
Waiting Message |
Specifies the optional message to display to the user. You can provide the message in multiple languages by specifying the locale in the Messages provided in the node override the defaults provided by AM. For information about customizing and translating the default messages, see Internationalization. |
Exitable |
Specify whether the user can exit the node during the wait period.
Enabling this option adds a button with a configurable message to the page.
Clicking the button causes tree evaluation to continue along the Default: Disabled |
Exit Message |
Specifies the optional message to display to the user on the button used to exit the node
before the wait period has elapsed.
For example, You can provide the message in multiple languages by specifying the locale in the Messages provided in the node override the defaults provided by AM. For information about customizing and translating the default messages, see Internationalization. |
Register Logout Webhook node
The Register Logout Webhook authentication node registers the specified webhook to trigger when a user’s session ends. The webhook triggers when a user explicitly logs out, or the maximum idle time or expiry time of the session is reached.
The webhook is only registered if tree evaluation passes through the Register Logout Webhook node. You can register multiple webhooks during the authentication process, but they must be unique.
For more information on webhooks, see Configuring Authentication Webhooks.
Remove Session Properties node
The Remove Session Properties authentication node enables the removal of properties from the session. The session properties may have been set by a Set Session Properties node elsewhere in the tree.
If a specified key is not found in the list of session properties that will be added to the session upon successful authentication, no error is thrown and tree evaluation continues along the single outcome path.
If a specified key is found,
the tree evaluation continues along the single outcome path after setting the value of the property to null
.
Retry Limit Decision node
The Retry Limit Decision authentication node allows the specified number of passes through to the Retry
outcome path,
before continuing tree evaluation along the Reject
outcome path.
Properties
Property | Usage |
---|---|
Retry limit |
Specify the number of times to allow a retry. Default: |
Save Retry Limit to User |
Specify whether the number of failed login attempts persists between successful authentications. Possible values are:
Default: Enabled. |
Scripted Decision node
The Scripted Decision authentication node allows execution of scripts during authentication. Tree evaluation continues along the path matching the result.
The script defines the possible outcome paths by setting one or more values of a string variable named outcome
.
For more information on creating scripts, see Manage scripts (UI).
Tree evaluation continues along the outcome path
that matches the value of the outcome
variable when script execution completes.
All of the inputs required by the script and the outputs produced by it
must be declared in the node’s configuration or the script may fail.
Even if the definition is null
, it still needs to be declared.
Use the wildcard *
to include any available inputs or outputs.
For information about the API available for use in the Scripted Decision node, see Scripted decision node API.
Properties
Property | Usage |
---|---|
Script |
Select the script to execute from the drop-down field. |
Outcomes |
Enter the possible strings that can be assigned to the |
Script Inputs |
A list of state inputs required by the script.
Defaults to |
Script Outputs |
A list of state outputs produced by the script.
Defaults to |
Set Session Properties node
The Set Session Properties authentication node allows the addition of key:value properties to the user’s session if authentication is successful.
You can access session properties using a variable in a webhook. For more information, see Configuring Authentication Webhooks. |
Tree evaluation continues along the single outcome path after setting the specified properties in the session.
State Metadata node
The State Metadata authentication node returns selected attributes from the shared state as metadata.
The node sends a MetaDataCallback
to retrieve shared state values which are added to the JSON response
from the /authenticate
endpoint. This example shows how a shared state attribute, mail
, is returned
in the JSON output:
"callbacks": [
{
"type": "MetadataCallback",
"output": [
{
"name": "data",
"value": {
"mail": "bjensen@example.com"
}
}
]
}
]
You can use the State Metadata node when you want to display custom information that includes user attributes, without having to alter the existing authentication journey.
For example, for OTP authentication with a choice of email or SMS, create a State Metadata node to return the user’s email address or phone number. These attributes can be used in conjunction with an OTP Collector Decision node and, optionally, a Scripted Decision node, to customize the data for display later in the journey.
Tree evaluation continues along the single outcome path after the callback.
Success URL node
The Success URL authentication node sets the URL to be redirected to when authentication succeeds.
Specifying a success URL in a tree overrides any |
For more information on how AM determines the redirection URL, and to configure the Validation Service to trust redirection URLs, see Configure success and failure redirection URLs.
The URL is also saved in the tree’s |
Timer Start node
The Timer Start authentication node starts a named timer metric, which can be stopped elsewhere in the tree by using the Timer Stop node.
Properties
Property | Usage |
---|---|
Start Time Property |
Specify a property name into which to store the current time. Specify the same value in any instances of the Timer Stop node that measure the time elapsed since tree evaluation passed through this node. |
Timer Stop node
The Timer Stop authentication node records the time elapsed
since tree evaluation passed through the specified Timer Start node in the specified metric name.
For information on the Timer
metric type, see Monitoring metric types.
Note that the time stored in the specified Start Time Property
property is not reset by the Timer Stop node,
so other Timer Stop nodes in the tree can also calculate
the time elapsed since tree evaluation passed through the same Timer Start node.
The metric is exposed in all available interfaces, as described in Monitor AM instances.
Thing authentication nodes
Use the following nodes to perform various tasks related to authenticating IoT things:
Authenticate Thing node
This node authenticates a thing. A thing represents an IoT device, service, or the IoT Gateway. Before you configure this node, ensure that the IoT Service is configured for the realm.
Support for this node is provided by the IoT SDK. |
The node supports two methods of authentication:
-
Proof of Possession JWT
The node collects a proof-of-possession JWT from the request and does the following:
-
Checks that the claims are valid.
-
Checks that an identity with the same ID as the name of the JWT subject exists.
-
Checks that the identity contains a confirmation key that matches the JWT’s
kid
. -
Validates the JWT’s signature, using the confirmation key stored in the identity.
-
-
Client Assertion
The node collects a JWT Bearer token from the request for authentication and validates the request according to the JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants.
If all checks are successful, the tree continues through the Success
path, and adds the username and the verified claims
to the authentication tree’s shared state.
If the identity does not exist, or AM cannot match the identity with the confirmation key,
the tree continues through the Requires Registration
outcome.
If any other check fails, the tree continues through the Failure
outcome.
Properties
Property | Usage |
---|---|
JWT Authentication Method |
Choose the required JWT authentication method. Options are as follows:
|
Issue Restricted Token |
If this setting is enabled, a Proof of Possession restriction is added to the session token issued on successful authentication. Any requests accompanied by the token must be signed with the key that was used to sign the authentication JWT. |
Additional Audience Values |
Specify any additional audience values that will be permitted when verifying JWTs. These audience values are in addition to the AM base, issuer and token endpoint URIs for the Client Assertion authentication method or the realm path for Proof of Possession. |
Examples
The following example shows how to authenticate a thing when the identity already exists in the identity store and when its profile contains a confirmation key:
The following example shows how to authenticate a thing when the identity does not exist, or when it needs to refresh its confirmation key:
Register Thing node
This node registers a thing. A thing represents an IoT device, service, or the IoT Gateway. Before you use this node, ensure that the IoT Service is configured for the realm.
Support for this node is provided by the IoT SDK. |
The node collects a JWT from the request, and validates the JWT according to the configured JWT registration method.
If the JWT is valid, the node uses the claims in the JWT to create an identity for the thing and register (or rotate)
a confirmation key for it. Then, the tree continues through the Success
outcome.
If the node cannot validate the JWT, the tree continues through the Failure
outcome.
For an example on how to use this node, see Authenticate Thing node.
Properties
Property | Usage |
---|---|
Choose the method that the node will use to validate the JWT:
Default: Proof of Possession & Certificate |
|
Verify Certificate Subject |
If the configured JWT registration method is Default: Enabled |
Create Identity |
Specifies whether AM will create an ID for the thing if one does not exist. Default: Disabled |
Rotate Confirmation Key |
Specifies whether multiple confirmation keys can be registered for a thing. Disable this setting to allow only one key per thing. Default: Disabled |
Default Attribute Values |
Lets you set default values for the thing’s attributes, where KEY is the name of the attribute in the data store, and VALUE is the default value of the attribute. |
Claim to Attribute Mapping |
If Create Identity is enabled, this property lets you map verified claims in the JWT to attributes in the thing identity. KEY is the claim name and VALUE is the name of the attribute in the data store. |
Overwrite Attributes |
Specifies whether the node will overwrite the value for an existing profile attribute when a claim with a different value is provided in the JWT. Default: Disabled |