Posts

New Blog for Saviynt Implementations https://saviyntworks.blogspot.com/

 Hey Hi and Happy New year 2023, I have launched a new blog on Saviynt Technical Implementation topics, please check it out, and if you have any particular topic for me to write a post please leave a comment here https://saviyntworks.blogspot.com/

Deploy war application to multiple tomcat servers using ANT Script

It is tedious work if you have say 5 servers and you need to deploy same application in all servers manually. So, I developed below ant script which will deploy the application in all servers with single command. All you need to do is to update server details in the build.properties file. build.xml <?xml version="1.0" encoding="UTF-8"?> <project name="OneClickDeploy" default="deploy" basedir="."> <property file="build.properties" /> <property name="war-file-name" value="${project-name}.war" /> <property name="build-directory" value="${build-directory}" /> <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask" /> <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask" /> <taskdef name="reload" classname="org.apache.cata...

Transform rule in Sailpoint IdentityNow with if else logic

Below is the sample transform rule with if-else logic. It is self explanatory feel free to comment if you have any questions. {    "attributes":{       "terminationDate":{          "attributes":{             "values":[                {                   "attributes":{                      "attributeName":"TERMINATION_DATE",                      "sourceName":"Workday"                   },                   "type":"accountAttribute"                },                "empty"             ]     ...

Setting Manager Correlation for Authoritative Source in Sailpoint IdentityNow

Image
  Setting Manager Correlation for Authoritative Source in IdentityNow 1 Get Source ID of Auth Source IdentityNow Admin Interface > Admin > Connection > Source > Select Workday Source     2 Get Access Token for downloading Auth Source Application configuration XML IdentityNow Admin Interface > Admin >  Navigate to https://<INSTANCE NAME>.identitynow.com/ui/session in the browser Copy the access token 3 Download Auth Source Application configuration XML using Postman Client REQUEST TYPE: GET Authorization Type: Bearer Token < paste the token copied from step 2 Request URL: https://<INSTANCE_NAME>.api.identitynow.com/cc/api/source/export/<SOURCE ID COPIED FROM step 1> Select Send and Download button in the dropdown after Send button Save the xml file into your local machine 4 Modify the XML to include <ManagerCorrelation>     <M...

JDBC as Authoritative Source with Delta Aggregation Mode Enabled in Sailpoint

Image
This document explains how to onboard JDBC as an Authoritative with Delta Aggregation In this example I am using Oracle MySQL as database server Create HR Source database, source table, delta table, triggers Create new database create database hrdatabase; use hrdatabase; Create hrsource table create table hrsource (    employeeNumber varchar(255), firstName varchar(255),    lastName varchar(255), userType varchar(255),    personalEmail varchar(255), department varchar(255), city varchar(255), manager varchar(255), status varchar(255), PRIMARY KEY (employeeNumber) ); Insert few records( for testing full aggregation ) insert into hrsource values('1001','Ravi','Kumar','E','ravikumar@gmail.com','Development','Bangalore','','A'); insert into hrsource values('1002','Jayanth','G','E','jayanth.g@gmail.com...

Get User and Users Manager record in single query from the same table

Below query gives you user XXXXXX record and XXXXXX manager records ie total 2 rows from the table hr_source select hrview.userName,hrview.firstName,hrview.lastName,hrview.email,hrview.employeeNumber,hrview.supervisor from hr_source hrview where hrview.employeeNumber in( select hrview1.supervisor from hr_source hrview1 WHERE hrview1.userName='XXXXXX' ) UNION select hrview1.userName,hrview1.firstName,hrview1.lastName,hrview1.email,hrview1.employeeNumber,hrview1.supervisor from hr_source hrview1 WHERE hrview1.userName='XXXXXX'

Searching users based on custom attribute

import sailpoint.object.Identity; import sailpoint.object.QueryOptions; import sailpoint.object.Filter;   import java.util.*; QueryOptions qo = new QueryOptions(); qo.addFilter(Filter.eq("location",”Bangalore”)); // Search users based on two identity attributes //QueryOptions qo = new QueryOptions();                          //Filter f1=Filter.eq("firstname",firstName) ;    //Filter f2 = Filter.eq("lastname",lastName); //Filter finalFilter = Filter.and(f1,f2); //qo.addFilter(finalFilter); Iterator users = context.search(Identity.class, qo); while (users.hasNext()) { Identity user = (Identity)users.next(); System.out.println("\nUserName: " + user.getName()); System.out.println("\nEmployee ID: " + user.getAttribute("empId")); }

Get list of Identities that are provisioned to particular application

Actually the below code gives you the list of Links/accounts provisioned to a particular application, anyway you can find users using link import sailpoint.object.Identity; import sailpoint.object.QueryOptions;   import sailpoint.object.Link;   import sailpoint.object.Filter;   QueryOptions qo = new QueryOptions(); qo.add(Filter.eq("application.name", "HR System")); Iterator accountLinks = context.search(Link.class, qo); while (accountLinks.hasNext()) { Link link = (Link)accountLinks.next();           // use link object to find user and add to List }

Change Column header in Delimited File Application using buildmap rule

The below code is used to change the column header during delimited file aggregation. Suppose, you have 'SuperUser' column in delimited file and you want to show this in Sailpoint as 'AccountID'. Write the below code in buildmap rule. import sailpoint.connector.DelimitedFileConnector; HashMap map = DelimitedFileConnector.defaultBuildMap(cols,record); String SuperUser = map.get("SuperUser"); map.put( "AccountID", SuperUser ); return map;

Generate password using password policy for identity during HR System aggregation

Use Password Policy tab in the Application for creating password policy, specify the conditions and create the policy. Use the below code to set random password(using policy) to the identity in Creation rule. import sailpoint.object.Identity; import sailpoint.object.PasswordPolicy; import sailpoint.api.PasswordGenerator; String policyName = “YOUR PASSWORD POLICY NAME"; PasswordPolicy policy = context.getObjectByName(PasswordPolicy.class, policyName); String password = new PasswordGenerator(context).generatePassword(policy); identity.setPassword(password);