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.
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.
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.
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.
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 stateBy configuring such validations for ticketing conditions, you can ensure tickets meet specific criteria before access is granted.
After creating the implementation class, compile it into a JAR file to integrate it with PAM360 by following the below steps:
javac -d . -cp AdventNetPassTrix.jar;json_simple-1.1.jar;commons-codec-1.7.jar ZendeskImpl.java
javac -d . -cp AdventNetPassTrix.jar:json_simple-1.1.jar:commons-codec-1.7.jar ZendeskImpl.java
Caution

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
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.
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:
To successfully integrate and access the ticketing system, ensure the following credentials are configured correctly:
For advanced configuration of the ticketing system integration with PAM360, consider the following settings:
Type: Boolean (true or false)
Type: JSONArray
Example:
[ ["C1","User Account","REQUESTER","EQUAL"],
["C2","PAM360 User Name","TECHNICIAN","EQUAL"] ]
Type: String
Example: C1 or C2
Type: Boolean (true or false)
Type: JSONArray
Example:
[ ["C1","STATUS","Closed","NOT_EQUAL"],
["C2","URGENCY","high","EQUAL"],
["C3","IMPACT","high","EQUAL"] ]
Type: String
Example: C1 or (C2 and C3)
These configurations ensure precise mapping and validation between PAM360 and the ticketing system for seamless integration.
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.