---
title: Developing your application
description: The Agentless Integration Kit doesn't require you to install special agent software, but you will have to modify your application to communicate with the PingFederate Reference ID Adapter through HTTP calls. The following information and recommendations should guide your development process.
component: agentless
page_id: agentless:custom_application_setup:pf_agentless_ik_developing_your_application
canonical_url: https://docs.pingidentity.com/integrations/agentless/custom_application_setup/pf_agentless_ik_developing_your_application.html
revdate: June 7, 2024
section_ids:
  about-this-task: About this task
  steps: Steps
---

# Developing your application

The Agentless Integration Kit doesn't require you to install special agent software, but you will have to modify your application to communicate with the PingFederate Reference ID Adapter through HTTP calls. The following information and recommendations should guide your development process.

## About this task

|   |                                                                                                                                                                                                                                                                                                                                                                                       |
| - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | This section provides example code in Java. You can find the latest example code for a variety of languages (including .NET, PHP, and Python) in the Agentless Integration Kit projects in the [Ping Identity GitHub repository](https://github.com/pingidentity?q=agentless). Choose the language you use and see the `example-code` directory to help you with the following steps. |

## Steps

1. Determine whether your application will need to pick up attributes, drop off attributes, or both.

   Typically, if your application acts as an identity provider, it will drop off attributes with PingFederate. If your application acts as a service provider, it will pick up attributes from PingFederate.

   Learn more about the two flows in [Overview of the identity provider SSO flow](../overview_of_the_identity_provider_integration/pf_agentless_ik_overview_of_the_identity_provider_sso_flow.html) and [Overview of the service provider SSO flow](../pf_agentless_ik_overview_of_the_service_provider_sso_flow.html).

2. Configure an endpoint in your application to receive `REF` and `resumePath` values from PingFederate.

   |   |                                                                                                                                                                |
   | - | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   |   | Note the endpoint URL. You'll enter it in the **Authentication Endpoint** field when you configure a Reference ID Adapter instance later in the setup process. |

3. Decide how your application will authenticate with PingFederate.

   Learn more in [Authentication methods](pf_agentless_ik_authentication_methods.html).

4. Configure your application to do one or both of the following:

   * Request attributes from PingFederate and parse the response as shown in [Attribute pickup process](pf_agentless_ik_attribute_pickup_process.html).

   * Encode attributes and provide them to PingFederate as shown in [Attribute drop-off process](pf_agentless_ik_attribute_drop_off_process.html).

5. Configure your application to redirect the browser to the URL provided in the `resumePath` parameter, which PingFederate provided in the attribute drop-off process.

   Redirect URL format:

   ```
   https://pf_host:pf_port/resume_path?REF=reference_ID
   ```

   Example code:

   ```
   String resumeURL = String.format("https://localhost:9031%s?REF=%s", resumePath, ref);

   response.sendRedirect(resumeURL);
   ```
