Integrating Custom/Other Ticketing Systems with PAM360

If you are using a ticketing system other than the ones natively supported by PAM360, you can still integrate it by implementing a custom integration. To use custom integrations, you should specify more accurate details to validate with the ticketing system for automated approval of requests related to privileged access. Also, you have to write the necessary conditions to be validated with the ticketing ID. This process requires creating a custom implementation class and configuring it within PAM360. To help you understand the steps, we will use Zendesk integration as an example.

By following the steps below, you can successfully integrate your preferred ticketing system and enable PAM360 to validate ticket IDs for password retrieval, reset, and other access-control workflows.

  1. Creating an Implementation Class
  2. Checking Connection with the Ticketing System
  3. Mapping PAM360 Columns to Ticketing System Fields
  4. Validating Ticket Conditions
  5. Compiling the Implementation Class
  6. Integrating Custom Ticketing System in PAM360
  7. Additional Implementation Tips

1. Creating an Implementation Class

The first step is to create an implementation class, referencing a sample designed for Zendesk integration. A key aspect of this process is generating an authentication token to establish a secure connection between PAM360 and the ticketing system. Ensure that the authentication token (AUTH TOKEN) is generated using the credentials of an administrator with full access. This can be done by either embedding the credentials directly in the implementation class or generating the token separately and using it for authentication.

Example: Generating a Base64 Authstring for Zendesk

Below is an example code snippet for generating a Base64 Authstring, commonly used in REST APIs with a Base64 Authorization header:

//Constructing Authstring from Zendesk login credentials
String username = "username@example.com"; //Zendesk username
String password = "zendeskpassword"; //Zendesk password
Base64 encoder = new Base64();
byte[] encodedPassword = (username + ":" + password).getBytes();
byte[] encodedString = encoder.encodeBase64(encodedPassword);
String authStr = new String(encodedString);

Additional Detail

Some ticketing systems provide an AUTH TOKEN via their GUI. If available, you can directly use these tokens for integration. Avoid hard-coding credentials in the implementation class by using REST API calls with direct Base64 tokens that are generated through Java or any online editors.


2. Checking Connection with the Ticketing System

Once the authentication token is ready, validate the connection between PAM360 and the ticketing system using REST APIs. Each ticketing system has its own procedure to fetch ticket details. Refer to your ticketing system's documentation for the API endpoints and request formats.

Example: Fetching Ticket Information from Zendesk

The following code snippet demonstrates how to retrieve ticket information:

String sUrl = "https://<zendesk-instance>.zendesk.com/api/v2/tickets/"; //Zendesk API URL
sUrl = sUrl + ticketId +".json"; //Ticket ID for validation
URL url = new URL(sUrl); HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestProperty("Authorization", "Basic" + authStr); //Adding Authstring in the header

PAM360 will use this connection to validate ticket details based on the parameters provided by the user.

3. Mapping PAM360 Columns to Ticketing System Fields (Optional)

To enhance the validation process, you can configure PAM360 to compare specific fields with corresponding fields in the ticketing system. For instance, you can map Resource Name in PAM360 to Subject in the ticketing system.

Before granting access to passwords, PAM360 will verify if the mapped values match.

Example: Validating Resource Name Against Ticket Subject

String sUrl = "https://<zendesk-instance>.zendesk.com/api/v2/tickets/"; //Zendesk API URL
sUrl = sUrl + ticketId +".json"; //Ticket ID for validation
URL url = new URL(sUrl); HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestProperty("Authorization", "Basic" + authStr); //Adding Authstring in the header

If the mapping is configured, access will only be granted if the validation succeeds.

4. Validating Ticket Conditions (Optional)

PAM360 allows you to validate specific conditions associated with a ticket to ensure it meets the required criteria. By default, PAM360 checks that the ticket "STATUS' is not in a "CLOSED" state. You can configure additional conditions, and PAM360 will validate all of them against the ticketing system. For more details on the configuration, click here.

PAM360 automatically displays all available fields from the ticketing system, including custom fields, enabling you to define specific values for validation. These conditions can be tailored to meet your requirements, ensuring tickets comply with your organization's access-control policies.

The following snippet demonstrates how to validate a ticket's status based on the configured conditions:

JSONObject ticket = (JSONObject)ticketingOuput.get("ticket");
String status = (String)ticket.get("status");
boolean statusCheck = "open".equalsIgnoreCase(status); //Checks if the ticket status is in open state

By configuring such validations for ticketing conditions, you can ensure tickets meet specific criteria before access is granted.

5. Compiling the Implementation Class

After creating the implementation class, compile it into a JAR file to integrate it with PAM360 by following the below steps:

  1. Include the following JAR files in your classpath (available in the <PAM360-Installation-Directory>\lib folder):
    • AdventNetPassTrix.jar
    • json_simple-1.1.jar
    • commons-codec-1.7.jar
  2. For Windows, compile the implementation class:
    javac -d . -cp AdventNetPassTrix.jar;json_simple-1.1.jar;commons-codec-1.7.jar ZendeskImpl.java
  3. For Linux, compile the implementation class:
    javac -d . -cp AdventNetPassTrix.jar:json_simple-1.1.jar:commons-codec-1.7.jar ZendeskImpl.java

6. Integrating Custom Ticketing System in PAM360

Caution

  1. Once the implementation class is compiled, place the JAR file in the <PAM360-Installation-Directory>\lib folder and restart the PAM360 service to apply the changes.
  2. You need at least two administrators in your organization to perform custom ticketing system configuration.
  1. Log in to the PAM360 web interface and navigate to Admin >> Integrations >> Ticketing System Integration.
    custom_ticketing_systems1
  2. Select Others for a new ticketing system and click Apply.
  3. In the window that appears, enter a name for the custom ticketing system.
  4. Click Edit beside the Implementation Class field and modify the implementation class if necessary.
  5. Next, enter the description of your choice in the Description field.
  6. Select the approval administrator from the dropdown beside the Send Approval Request to field.

Once approved, the ticketing system workflow will become mandatory for password retrieval and reset operations.

For further information, refer to the sample implementation class created for integrating Zendesk.

Caution

Ensure the below SHA256 Checksum value upon downloading the file:91e8fce1d8724001e2c646ff3f3bcdc978d65b3cd6616eb77a52b350d48be194

7. Additional Implementation Information

For mapping PAM360 columns to ticketing system fields and validating ticket conditions, you might require additional information during the implementation. Refer to the tips below for details.

7.1 Columns in PAM360

PAM360 sends several columns for mapping and validation. Key columns include:

Apart from the above mentioned columns, all additional columns will be sent as displayed below:

7.2 Credentials to Access Ticketing System

To successfully integrate and access the ticketing system, ensure the following credentials are configured correctly:

  1. AUTHTOKEN - The authentication token value provided in the integration GUI. This token is required for authorizing PAM360 to communicate with the ticketing system.
  2. TICKETINGSYSTEMURL - The URL of the ticketing system as configured in the integration GUI. This is the endpoint where requests from PAM360 will be sent.

7.3 Advanced Configuration Details

For advanced configuration of the ticketing system integration with PAM360, consider the following settings:

These configurations ensure precise mapping and validation between PAM360 and the ticketing system for seamless integration.

7.4 Matching Parameters

The following match parameters are used to validate criteria in PAM360 integrations:

Date-Based Comparison Parameters:

These parameters ensure that all criteria are validated based on the appropriate conditions for accurate integration and data consistency.




Top