Integrating Password Manager Pro with Enterprise Ticketing Systems |
Generating Auth Token:You can generate and obtain the the Auth Token for each of the ticketing systems as below:
|
Password Manager Pro integrates with ManageEngine ServiceDesk Plus Cloud to automatically validate access request to privilege access with a valid ticket ID. This can be done by generating AUTH token and entering the valid ticket ID in the ticketing system. You can also check the value of the change ID status associated with the ticket ID by selecting that option and entering the changeID status.
Notes:
1. If there are multiple portals available in the ServiceDesk Plus Cloud, enter the Ticketing System URL with the relevant portal name. For example, https://sdpondemand.manageengine.eu/app/itdesk
2. Mention the Home page URL from the previous step as the Redirect URL.
The ServiceDesk Plus Cloud configurations have been saved successfully.
Note: Remember, only users with a technician role in the Ticketing System should 'Accept' the above request to view and validate the tickets.
Password Manager Pro integrates with ManageEngine ServiceDesk MSP to automatically validate access request to privilege access only with a valid ticket ID. This can be done by generating Technician key and entering the valid ticket ID in the ticketing system.
Password Manager Pro now integrates with ServiceNow. By integrating with ServiceNow, you can get data from the following simply by entering the 'Ticketing system URL' in the respective field '<instance>. <ticketingsystem>.com and by entering the number.
Enabling this option will require your users to enter any of the above valid numbers in Password Manager Pro for validation of password access requests.
Password Manager Pro now readily integrates with JIRA Service Desk integration to automatically validate service requests related to privileged access.
The Jira Service Desk configurations have been saved successfully.
Jira Service Desk has been configured successfully as a ticketing system in Password Manager Pro.
If you are using any other ticketing system, you can integrate it with Password Manager Pro by having your own custom implementation.
In case, you want to validate some other criteria (in addition to ticket number and ticket status), you have the option to configure advanced settings. For example, you can choose to check if the Password Manager Pro user who is raising the password access request matches with the 'REQUESTER' column in the ticketing system. Similarly, you can check for certain specific conditions related to the ticket - for instance, 'PRIORITY' of the ticket as 'HIGH'. Password Manager Pro offers the total flexibility to check for any parameter in the ticketing system, including additional fields.
To carry out advanced configurations,
After completing the integration, you can do a testing to ensure if Password Manager Pro is able to establish communication with the ticketing system properly. Click the link Test Configuration Setup by clicking the three dots on the top right corner to do this.
As part of this testing, you can also fetch the custom fields available in Password Manager Pro to the advanced configuration setup.
In case, the advanced configuration does not satisfy your requirements, you can provide your own class implementation and integrate it with Password Manager Pro by updating a jar file with the implemented class. For more details, refer to Integrating Other Ticketing Systems section below. The steps outlined there hold good here too.
You can disable the integration with the ticketing system anytime. To disable/remove the integration from Password Manager Pro,
Note: The integration details will not be removed from Password Manager Pro when the integration is disabled. You will be able to enable the integration at any given time.
Note: To enable ServiceDesk Plus Cloud integration again, you have to generate a new set of Client ID, Client Secret as instructed in this step, and configure ServiceDesk Plus Cloud to Password Manager Pro.
If you are using any other ticketing system, you can integrate it with Password Manager Pro by having your own custom implementation. To guide you through the process, we have taken integrating Zendesk as an example to explain the steps involved.
Refer to the sample implementation class created for integrating Zendesk. The important aspects of the implementation class have been explained below:
The first step is to generate authentication token of the ticketing system to enable Password Manager Pro establish connection. When generating the AUTH TOKEN, ensure that you provide the credentials of an administrator who has full access to the ticketing system. You can do this either by providing the credentials directly in the implementation class or by generating the token and putting the token.
The snippet below shows how to generate Base64 Authstring belonging to a privileged account of the ticketing system. This will come in handy when the REST API is based on Base64 Authorization header. Some ticketing systems offer AUTH-Token with inbuilt GUI. In such cases, you can directly use the authentication parameters. In addition, instead of hard coding username and password in the implementation class, you can very well skip this part and make REST API call with direct Base64 token that are generated through Java or through any online editors.
Refer to the code snippet below:
// 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);
Using REST APIs, Password Manager Pro can be made to get the information about tickets from the ticketing system. Each ticketing system follows its own procedure to disseminate ticket details. Refer to the respective documentation to identify the procedure. After obtaining the ticket details, you need to validate the details.
Refer to the code snippet below:
String sUrl = "https://<zendesk-instance>.zendesk.com/api/v2/tickets/"; //REST API call Zendesk
sUrl = sUrl + ticketId +".json"; //This is the ticket ID that will be validated against the one supplied by the user in Password Manager Pro
URL url = new URL(sUrl);
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestProperty("Authorization","Basic "+authStr); //Setting Authstring in the header
Refer to the code snippet below to validate if specific columns in Password Manager Pro match with the ones you specify in the ticketing system (For example, you can choose to map RESOURCE NAME in Password Manager Pro with the SUBJECT in the ticketing system. Once you specify such a mapping, before granting access to the password, Password Manager Pro will check if the RESOURCE NAME as specified in Password Manager Pro matches with the SUBJECT name (if the subject contains the resource name) in the ticketing system. Only if the validation succeeds, access will be granted):
String assetName = (String)pmpColumns.get("Resource Name");//Password Manager Pro Asset Name for which password related operation done
String subject = (String)ticket.get("subject");//Getting the ticket subject
boolean descriptionCheck = subject.toLowerCase().contains(assetName.toLowerCase());
//Checking the description of the ticket contains the resource name of user account
You can validate if specific conditions related to the ticket are met - by default, Password Manager Pro checks if the ticket STATUS is not in CLOSED state. You can select any number of additional conditions and Password Manager Pro will validate all of them with the ticketing system. By default, Password Manager Pro lists down all the fields available in the ticketing system, including the custom fields. You can specify the value, which Password Manager Pro has to validate.
JSONObject ticket = (JSONObject)ticketingOuput.get("ticket");
String status = (String)ticket.get("status");
boolean statusCheck = "open".equalsIgnoreCase(status); //Checking whether the status of the
ticket is in open state
While compiling keep the following jars in the classpath (the jars are available under <PMP_HOME>\lib folder)
AdventNetPassTrix.jar;
json_simple-1.1.jar;
commons-codec-1.7.jar
For Example,
javac -d . -cp AdventNetPassTrix.jar;json_simple-1.1.jar;commons-codec-1.7.jar ZendeskImpl.java - (For Windows)
javac -d . -cp AdventNetPassTrix.jar:json_simple-1.1.jar:commons-codec-1.7.jar ZendeskImpl.java - (For Linux)
For further information, refer to the sample implementation class created for integrating Zendesk.
Ensure the below SHA256 value upon downloading the file:
SHA256 Checksum:bb12eef2395d34397198c82f70d679ab2afc40073d9ded47d05f2c1a43a97054
For steps 3 and 4 above, you might require additional information for implementation. Refer to the tips below for details:
List of data related to the user account for which ticketing request is raised through pmpColumns parameters from Password Manager Pro side:
Password Manager Pro User Name - Logged in user name
Resource Name - Name of the resource
DNS Name - IP Address of the resource
User Account - Account name
Resource Type - Type of the resource being accessed (Windows/ WindowsDomain/ Linux etc.)
Resource Description - Description about the resource
Department - Department to which the resource belongs
Location - Resource location
Domain Name - Domain name of the resource
Request Type - Request Type for which ticketing system call is made. It can be
RETRIEVAL - Password access
REQUEST - Password access request raised through Access-Control workflow
RESET - Password reset
AUTOLOGON - 'Open Connection' request
User Organization Name - Organization name of the user who made the request
User Current Organization Name - Name of the organization where the requested account is present
Other than this, all additional columns will be sent as shown below:
Resource additional field - Resource@<field_name>
Account additional field - Account@<field_name>
AUTHTOKEN - Authentication token value given in the integration GUI
TICKETINGSYSTEMURL - URL given in the integration GUI
ISPMPTICKETCRITERIA - To check if Password Manager Pro vs Ticketing system is configured or not
(Boolean - true or false)
PMPTICKETCRITERIACOLUMNS - Mapping details between Password Manager Pro and ticketing system. Each element in the array represents a criteria. For example, the column 'User Account' in Password Manager Pro has to be validated against Ticketing system column 'REQUESTER' with match parameter 'EQUAL' in criteria 'C1'
JSONArray - [ ["C1","User Account","REQUESTER","EQUAL"],
["C2","PMP User Name","TECHNICIAN","EQUAL"] ]
PMPTICKETCRITERIA - Specifies the relationship between different criteria. Each element of 'PMPTICKETCRITERIACOLUMNS' contains the first parameter as criteria name. It gives the relationship between criteria
(String - Example: C1 or C2)
ISTICKETVALUECRITERIA - To check if the validation for ticketing system values is configured or not.
(Boolean - true or false)
TICKETVALUECRITERIACOLUMNS - Mapping details that ticket should satisfy. Each element in the array represents an criteria. For example, ticket column 'STATUS' has to be validated against value other than 'Closed' in criteria 'C1'
JSONArray - [ ["C1","STATUS","Closed","NOT_EQUAL"],
["C2","URGENCY","high","EQUAL"],
["C3","IMPACT","high","EQUAL"] ]
TICKETVALUECRITERIA - Specifies the relationship between different criteria. Each element of 'TICKETVALUECRITERIACOLUMNS' contains the first parameter as criteria name. It gives the relationship between criteria
(String - Example: C1 or (C2 and C3)
ISTICKETCHANGEIDSTATUS - To check if the validation for system change status check is configured or not (true or false)
TICKETCHANGEIDSTATUS - Associated 'change ID status' of the ticket ID value
EQUAL - Values of two parameters should be same
NOT_EQUAL - Values of two parameters should not be same
CONTAINS - First parameter value should contain the value of second parameter
NOT_CONTAINS - First parameter value should not contain the value of second parameter,
STARTS_WITH - First parameter must start with value of second parameter,
ENDS_WITH - First parameter must end with value of second parameter,
(Date based comparison parameters)
LESS_THAN - First parameter date value should be less than the second one,
GREATER_THAN - First parameter date value should be greater than the second one,
LESS_THAN_EQUAL - First parameter date value should be less than or equal to the second one,
GREATER_THAN_EQUAL - First parameter date value should be greater than or equal to the second one
Depending on the match parameters, the criteria should get validated.
If the advanced configuration does not satisfy your requirements, you can have a custom implementation. You can extend the default implementation provided by Password Manager Pro and have the additional functionalities. The following example shows how the default implementation created for ServiceNow, can be extended to serve as the custom implementation.
package com.manageengine.ts;
import java.util.Properties;
import org.json.simple.JSONObject;
import com.adventnet.passtrix.helpdesk.ServiceNowImpl;
//ServiceNow custom implementation
public class ServiceNowCustomImpl extends ServiceNowImpl
{
public boolean checkViewHelpDeskRequest(String ticketId, Properties pmpColumns, Properties credentialDetails, JSONObject criteriaDetails)
throws Exception
{
boolean result = super.checkViewHelpDeskRequest(ticketId, pmpColumns, credentialDetails, criteriaDetails);
//Your own implementation
return result;
}
}
ServiceDesk Plus Cloud |
|
ServiceDesk Plus MSP |
com.adventnet.passtrix.helpdesk.ServiceDeskPlusMSPImpl |
ServiceDesk Plus |
com.adventnet.passtrix.helpdesk.ServiceDeskPlusOnPremiseImpl |
ServiceNow |
com.adventnet.passtrix.helpdesk.ServiceNowImpl |
JIRA |
com.adventnet.passtrix.helpdesk.JiraServiceDeskImpl |
The interface for ticketing system integration:
package com.manageengine.ts;
import java.util.Properties;
import org.json.simple.JSONObject;
// This class provides the methods to implement ticketing system integration. You need to implement this interface
public interface TicketingSystemInterface
{
/**
* Used to display the error message while doing the ticketing system related operations. The output gets reflected in audit trails.
* @return Error message, if the ticketing system accessible, return null. Otherwise, return a proper error message.
*/
public String getErrorMsg();
/**
* Used to return the properties related to the ticketing system operation
* @return Comments and needed message
*/
public Properties getRequestProperties();
/**
* Used for testing configuration setup. While testing, administrator will be able to get ticket details from the ticketing system.
* @param tsName Ticketing system Name
* @param tsUrl Ticketing system Web URL
* @param authToken Authentication Token assigned to a technician of ticketing system (Base64 authorization string constructed
using login credentials in the case of ServiceNow ticketing system)
* @param ticketId Ticket ID given as the input ((Ticket ID/Sys ID in the case of ServiceNow ticketing system)
* @param Ticketing System operation type
* {@value 0} Ticketing Operation
* {@value 1} Change Related Operation
* @return the output from ticketing side
* @throws Exception
*/
public JSONObject helpdeskCheck(String tsName, String tsUrl, String authToken, String ticketId, String operation) throws Exception;
/**
* Actual function that will be called upon whenever a ticketing system related operation is done from Password Manager Pro GUI
* @param ticketId Ticket ID (Ticket ID/Sys ID in the case of ServiceNow ticketing system)
* @param pmpColumns Details of the Password Manager Pro account for which ticketing system query is raised
* @param credentialDetails Key details of ticketing system (Authentication token or Base64 authorization string
and web URL of ticketing system)
* @param criteriaDetails Criteria mapping done as part of advanced configuration
* @return Final output that will be sent to Password Manager Pro server
* {@value true} Success case - Allows the operation to proceed
* {@value false} Failure case - Denies the operation to proceed
* @throws Exception
*/
public boolean checkViewHelpDeskRequest(String ticketId, Properties pmpColumns, Properties credentialDetails, JSONObject criteriaDetails)
throws Exception;
}
©2025, ZOHO Corp. All Rights Reserved.