---
title: Prepare for installation
description: Consider the following points before you install:
component: web-agents
version: 2023.11
page_id: web-agents:installation-guide:pre-installation
canonical_url: https://docs.pingidentity.com/web-agents/2026/installation-guide/pre-installation.html
llms_txt: https://docs.pingidentity.com/web-agents/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
superseded_by: https://docs.pingidentity.com/web-agents/2026/installation-guide/pre-installation.html
section_ids:
  before-install: Before you install
  pre-SSL-configuration: OpenSSL libraries
  downloading-agent: Download and unzip Web Agents
  preinstall-tasks: Pre-installation tasks
  configuring-agent-communication: Configure AM to sign authentication information
  proc-agents-secret-IDs-am65: "Configure AM secret IDs for the agents' OAuth 2.0 provider"
  create-agent-profiles: Create agent profiles
  create-agent-profile: Create an agent profile for a single agent instance
  create-agent-profile-mult-instances: Create an agent profile for multiple agent instances when post data preservation is enabled
  create-agent-group: Create an agent profile group
  agent-group-inherit: Inherit properties from an agent profile group
  authenticate_agents_to_the_identity_provider: Authenticate agents to the identity provider
  authenticate-agent-idc: Authenticate agents to PingOne Advanced Identity Cloud
  authenticate-agent-am: Authenticate agents to AM
---

# Prepare for installation

## Before you install

Consider the following points before you install:

* Install AM and Web Agents in different servers.

* Make sure AM is running, so that you can contact AM from the agent web server.

* Install the web server before you install the agent.

* Make sure OpenSSL or the Windows Secure Channel API (Schannel) is available before installing the agent. Unix-based agents support OpenSSL. Windows-based agents support OpenSSL and Schannel.

  Learn more about SSL requirements in [SSL requirements](https://docs.pingidentity.com/web-agents/release-notes/requirements.html#ssl_requirements) and required OpenSSL libraries in [OpenSSL libraries](#pre-SSL-configuration).

* Install only one Web Agents for each web server and configure as many agent instances as necessary.

* For environments with load balancers or reverse proxies, consider the communication between the agent and the AM servers, and between the agent and the client. Configure both AM and the environment **before** you install the agent.

  Learn more in [Configure load balancers and reverse proxies](../user-guide/load-balancers-proxies.html).

### OpenSSL libraries

Before installing, make sure the OpenSSL libraries are located or referenced as follows:

| Operating System  | OpenSSL Library                                                                         | Location or Variable                     |
| ----------------- | --------------------------------------------------------------------------------------- | ---------------------------------------- |
| Windows 32-bit    | * `libeay32.dll`

* `ssleay32.dll`

* `libcrypto-1_1.dll`(1)

* `libssl-1_1.dll`(1)     | `\windows\syswow64`                      |
| Windows 64-bit(2) | - `libeay64.dll`

- `ssleay64.dll`

- `libcrypto-1_1-x64.dll`(1)

- `libssl-1_1.dll`(1) | `\windows\system32`                      |
| Linux             | * `libcrypto.so`

* `libssl.so`                                                         | `$LD_LIBRARY_PATH` `$LD_LIBRARY_PATH_64` |
| AIX               | - `libcrypto.so`

- `libssl.so`                                                         | `$LIBPATH`                               |

(1) OpenSSL 1.1.0+ only\
(2) Windows 64-bit servers require both 32-bit and 64-bit OpenSSL libraries.

## Download and unzip Web Agents

Go to the [Ping Identity Download Center](https://backstage.pingidentity.com/downloads) and download an agent based on your architecture, and operating system requirements. Verify the checksum of the downloaded file against the checksum posted on the download page.

Unzip the file in the directory where you plan to store the agent configuration and log files. The following directories are extracted:

**Installation directories**

| Directory    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `bin/`       | The installation and configuration program `agentadmin`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `config/`    | Configuration templates used by the `agentadmin` command during installation.                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `instances/` | Configuration files, and audit and debug logs for individual instances of the agents. The directory is empty when first extracted.	Agent configuration files are created in /path/to/web_agents/agent_type/instances/agent_n/config/agent.conf. Make sure the path, including the parent path, does not exceed 260 characters.                                                                                                                                                                                                                 |
| `legal/`     | Licensing information including third-party licenses.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `lib/`       | Shared libraries used by the agent.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `log/`       | Log files written during installation. The directory is empty when first extracted.When the agent is running, the directory can contain the following files:- The `system_n.log` file, where the agent logs information related to agent tasks running in the background. Web Agents timestamps events in coordinated universal time (UTC).

- (IIS Web Agents only) The backup of the site and application configuration files created after running the `agentadmin -g` command.

- (IIS Web Agents only) Files related to the agent caches. |
| `pdp-cache/` | POST data preservation cache. The agent stores POST data preservation files temporarily. To change the directory, configure [POST Data Storage Directory](../properties-reference/org.forgerock.agents.config.postdata.preserve.dir.html).                                                                                                                                                                                                                                                                                                     |

## Pre-installation tasks

1. In AM, add an agent profile, as described in [Create an agent profile in AM using the console](#create-agent-profile):

   The example in this guide uses an agent profile in the top-level realm, with the following values:

   * Agent ID: `web-agent`

   * Agent URL: `http://www.example.com:80`

   * Server URL: `http://am.example.com:8080/am`

   * Password: `password`

2. In AM, add a policy set and policy as described in [Policies](https://docs.pingidentity.com/pingam/7.4/am-authorization/policies.html) in AM's *Authorization guide*.

   The example in this guide uses a policy set and policy in the top-level realm, with the following values:

   * Policy set:

     * Name: `PEP`

     * Resource Types: `URL`

   * Policy:

     * Name: `PEP-policy`

     * Resource Type: `URL`

     * Resource pattern: `*://*:*/*`

     * Resource value: `*://*:*/*`

     * Actions tab: Allow HTTP `GET` and `POST`

     * Subjects tab: All Authenticated Users.

   |   |                                                                                                                                                                                                                                                                                                                                                                                          |
   | - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   |   | When you use your own policy set instead of the default policy set, `iPlanetAMWebAgentService`, update the following properties in the agent profile:* [Policy Set](../properties-reference/org.forgerock.openam.agents.config.policy.evaluation.application.html)

   * [Policy Evaluation Realm](../properties-reference/org.forgerock.openam.agents.config.policy.evaluation.realm.html) |

3. Configure AM to protect the CDSSO cookie from hijacking. For more information, refer to [Restrict tokens for CDSSO session cookies](https://docs.pingidentity.com/pingam/7.4/security/enable-cdsso-cookie-hijacking-protection.html) in AM's *Security guide*.

4. Create a text file for the agent password, and protect it. For example, use commands similar to these, but use a strong password and store it in a secure place:

   * Unix

   * Windows

   ```
   $ cat > /secure-directory/pwd.txt
   password
   CTRL+D

   $ chmod 400 /secure-directory/pwd.txt
   ```

   ```
   'password' | Out-File -Encoding ascii pwd.txt
   ```

   In Windows Explorer, right-click the password file, for example `pwd.txt`, select Read-Only, and then click OK.

   |   |                                                                                                                                                                                                       |
   | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   |   | Although the agent accepts any password length and content, you are strongly encouraged to generate secure passwords. This can be achieved in various ways, for example, by using a password manager. |

5. If either of the following are true, set up the required environment variables :

   * AM is configured to perform client authentication

   * The agent web server is to configured to validate AM's server certificate

   For more information, refer to [Environment variables](../user-guide/configure-envvars.html).

## Configure AM to sign authentication information

AM communicates all authentication and authorization information to Web Agents, using OpenID Connect ID tokens. For security, configure AM and the agent to use signed tokens. For more information, refer to [RFC 7518: JSON Web Algorithms (JWA)](https://www.rfc-editor.org/rfc/rfc7518).

AM also uses an HMAC signing key to protect requested `ACR` claims values between sending the user to the authentication endpoint, and returning from successful authentication.

By default, AM uses a demo key and an autogenerated secret for these purposes. For production environments, perform one of the following procedures to create new key aliases and configure them in AM.

### Configure AM secret IDs for the agents' OAuth 2.0 provider

By default, AM 6.5 and later versions are configured to:

* Sign the session ID tokens with the secret mapped to the `am.global.services.oauth2.oidc.agent.idtoken.signing` secret ID. This secret ID defaults to the `rsajwtsigningkey` key alias provided in AM's JCEKS keystore.

* Sign the claims with the secret mapped to the `am.services.oauth2.jwt.authenticity.signing` secret ID. This secret ID defaults to the `hmacsigningtest` key alias available in AM's JCEKS keystore.

  1. Create the following aliases in one of the secret stores configured in AM, for example, the default JCEKS keystore:

     1. Create an RSA key pair.

     2. Create an HMAC secret.

  2. In the AM admin UI, go to Configure > Secret Stores > Keystore Secret Store Name > Mappings.

  3. Configure the following secret IDs:

     1. Configure the new RSA key alias in the `am.global.services.oauth2.oidc.agent.idtoken.signing` secret ID.

     2. Configure the new HMAC secret in the `am.services.oauth2.jwt.authenticity.signing` secret ID.

        Note that you may already have a secret configured for this secret ID, because it is also used for signing certain OpenID Connect ID tokens and remote consent requests. Learn more in [Secret label default mappings](https://docs.pingidentity.com/pingam/7.4/security/secret-mapping.html#secret-mapping.html#secret-label-mappings) in AM's *Security guide*.

     3. Save your changes.

     For more information about secret stores, refer to [Secret stores](https://docs.pingidentity.com/pingam/7.4/security/secret-stores.html) in AM's *Security guide*.

  No further configuration is required in the agents.

## Create agent profiles

Use Web Agents profiles to connect to and communicate with AM.

### Create an agent profile for a single agent instance

This section describes how to create an agent profile in the AM admin UI. Alternatively, create agent profiles by using the `/realm-config/agents/WebAgent/{id}` endpoint in the REST API. Learn more in [REST API explorer](https://docs.pingidentity.com/pingam/7.4/am-rest/about-api-explorer.html) in AM's *REST guide*.

1. In the AM admin UI, select Realms > Realm Name > Applications > Agents > Web, and add an agent using the following hints:

   * Agent ID

     The ID of the agent profile. This ID resembles a username in AM and is used during the agent installation. For example, `MyAgent`.

     |   |                                                                                                                                          |
     | - | ---------------------------------------------------------------------------------------------------------------------------------------- |
     |   | When AM is not available, the related error message contains the agent profile name. Consider this in your choice of agent profile name. |

   * Agent URL

     The URL where the agent resides. For more information, refer to [Example installation for this guide](preface.html#preface-examples).

     In [centralized configuration mode](../user-guide/glossary.html#def-central-configuration-mode), the Agent URL populates the agent profile for services, such as notifications.

   * Server URL

     The full URL to an authorization server, such as PingOne Advanced Identity Cloud or AM. For more information, refer to [Example installation for this guide](preface.html#preface-examples).

     If the authorization server is deployed in a site configuration (behind a load balancer), enter the site URL.

     In [centralized configuration mode](../user-guide/glossary.html#def-central-configuration-mode), the Server URL populates the agent profile for use with login, logout, naming, and cross-domain SSO.

   * Password

     The password the agent uses to authenticate to an authorization server, such as PingOne Advanced Identity Cloud or AM. Use this password when installing an agent.

     |   |                                                                                                                                                                                                       |
     | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
     |   | Although the agent accepts any password length and content, you are strongly encouraged to generate secure passwords. This can be achieved in various ways, for example, by using a password manager. |

### Create an agent profile for multiple agent instances when post data preservation is enabled

By default, the POST data preservation load balancer cookie name and value is set by the agent profile. Therefore, each agent instance behind a load balancer requires its own agent profile.

In scalable environments, such as deployments with load balancing, or environments that run Kubernetes, resources are dynamically created and destroyed.

To facilitate the rapid creation and destruction of agent instances when post data preservation is enabled, set the POST data preservation configuration in `agent.conf` to map one agent profile to multiple agent instances.

The configuration in `agent.conf` overrides the configuration in AM for the following properties:

* [POST Data Sticky Load Balancing Mode](../properties-reference/com.sun.identity.agents.config.postdata.preserve.stickysession.mode.html)

* [POST Data Sticky Load Balancing Value](../properties-reference/com.sun.identity.agents.config.postdata.preserve.stickysession.value.html)

For an example, refer to [Map one agent profile to multiple agent instances when POST data preservation is enabled](../user-guide/load-balancers-proxies.html#lb-POST-data-12all).

### Create an agent profile group

Use agent profile groups when you set up multiple agents, and want to inherit settings from the group.

1. In the AM admin UI, go to Realms > Realm Name > Applications > Agents > Web.

2. Select the Groups tab, and add a group with the following settings:

   * Group ID: A name for the profile group.

   * Server URL: The URL of the AM server in which to store the profile.

### Inherit properties from an agent profile group

1. Set up an agent profile and agent profile group, as described in [Create an agent profile for a single agent instance](#create-agent-profile) and [Create an agent profile group](#create-agent-group).

2. In the AM admin UI, select your agent profile.

3. On the Global tab, select Group, and select a group from the drop-down menu. The agent profile is added to the group.

4. For each setting in the Global tab, select or deselect the [icon: lock, set=fa]icon:

   * [icon: lock, set=fa]: Inherit this setting from the group

   * [icon: unlock, set=fa]: Do not inherit this setting from the group

## Authenticate agents to the identity provider

### Authenticate agents to PingOne Advanced Identity Cloud

Advanced Identity Cloud provides a [journey](https://docs.pingidentity.com/pingoneaic/realms/journeys.html) called `Agent`. The `Agent` journey validates the agent credentials with an [Agent Data Store Decision](https://docs.pingidentity.com/auth-node-ref/latest/agent-data-store-decision.html) node.

All Web Agents, Java Agent and Identity Gateway profiles use the `Agent` tree. Don't change its configuration.

### Authenticate agents to AM

|   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | * From AM 7.3

  When AM 7.3 is installed with a default configuration, as described in [Evaluation](https://docs.pingidentity.com/pingam/7.4/eval-guide/preface.html), Web Agents is automatically authenticated to AM by an authentication tree. Otherwise, Web Agents is authenticated to AM by an AM authentication module.

  Authentication chains and modules were deprecated in AM 7. When they are removed in a future release of AM, it will be necessary to configure an appropriate authentication tree when you are not using the default configuration.For more information, refer to AM's [Authentication Nodes and Trees](https://docs.pingidentity.com/pingam/7.4/authentication-guide/about-authentication-trees.html). |

This section describes how to create an authentication tree to authenticate Web Agents to AM. The tree has the following requirements:

* It must be called `Agent`

* Its nodes must pass the agent credentials to the Agent Data Store Decision node.

When you define a tree in AM, that same tree is used for all instances of Identity Gateway, Java Agent, and Web Agent. Consider this point if you change the tree configuration.

1. On the Realms page of the AM admin UI, choose the realm in which to create the authentication tree.

2. On the Realm Overview page, click Authentication > Trees > Create tree.

3. Create a tree named `Agent`.

   The authentication tree designer is displayed, with the `Start` entry point connected to the `Failure` exit point, and a `Success` node.

   The authentication tree designer provides the following features on the toolbar:

   | Button                                                   | Usage                                                                          |
   | -------------------------------------------------------- | ------------------------------------------------------------------------------ |
   | ![Trees auto layout](_images/icon-trees-auto-layout.png) | Lay out and align nodes according to the order they are connected.             |
   | ![Trees full screen](_images/icon-trees-full-screen.png) | Toggle the designer window between normal and full-screen layout.              |
   | ![Trees delete node](_images/icon-trees-delete-node.png) | Remove the selected node. Note that the `Start` entry point cannot be deleted. |

4. Using the Filter bar, find and then drag the following nodes from the Components panel into the designer area:

   * [Zero Page Login Collector](https://docs.pingidentity.com/auth-node-ref/7.4/zero-page-login-collector.html) node to check whether the agent credentials are provided in the incoming authentication request and use their values in the following nodes.

     This node is required for compatibility with Java agent and Web agent.

   * [Page](https://docs.pingidentity.com/auth-node-ref/7.4/page.html) node to collect the agent credentials if they aren't provided in the incoming authentication request and use their values in the following nodes.

   * [Agent Data Store Decision](https://docs.pingidentity.com/auth-node-ref/7.4/agent-data-store-decision.html) node to verify that the agent credentials match the registered Web Agents profile.

   |   |                                                                                                                                                               |
   | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   |   | Many nodes can be configured in the panel on the right side of the page. Unless otherwise stated, do not configure the nodes and use only the default values. |

5. Drag the following nodes from the Components panel into the Page node:

   * Username Collector node, to prompt the user to enter their username

   * Password Collector node,to prompt the user to enter their password

6. Connect the nodes as follows and save the tree:

   ![A tree that can be used to authenticate an agent to AM.](_images/agenttree-am.png)
