Labels
- AD (8)
- Aggregation (8)
- Audit Management (1)
- AWS (1)
- Certification (7)
- Compass_Useful_Links (1)
- Courses (1)
- Custom Reports (3)
- Custom Tasks (5)
- Database (OIM) (3)
- Database (Sailpoint) (2)
- E-Fix (3)
- Eclipse (2)
- EmailTemplate (1)
- Excel (7)
- Forgerock (1)
- Forms (4)
- GitHub (6)
- Group Management (3)
- IIQ Console Commands (1)
- IQ Service (1)
- ISC (22)
- ISC Application Management (3)
- ISC-LifeCycleState (1)
- ISC-Transforms (1)
- ISC-VSCode (1)
- Java (13)
- JML (1)
- Kanada (1)
- LCM (4)
- Linux (3)
- Loggers (3)
- MS Office (1)
- MySQL (8)
- Notifications (1)
- OIM (19)
- Password Management (2)
- Policy Violation (2)
- Provisioning (1)
- ProvisioningPlan (1)
- Quicklink (1)
- RBAC (4)
- References (1)
- Role Management (3)
- Rules_Scripts_APIs (33)
- Sailpoint (34)
- SailPoint - Certification (1)
- SailPoint - Glossary (2)
- Sailpoint API's (7)
- SailPoint Best Practices (1)
- Scripts (1)
- Softwares (1)
- SSB (2)
- UAT (1)
- UI (2)
- UI/Task Server Configuration (1)
- Upgradation (1)
- VM Ware (1)
- Web Service (9)
- Workflow (8)
- Workgroup (2)
- XML (1)
Wednesday, August 21, 2024
Create group in OpenLdap
Wednesday, August 7, 2024
how to fetch IT roles based on entitlements in SailPoint IIQ?
Wednesday, July 3, 2024
Read a CSV file, copy the CSV file data, concatenate two columns from original file and write it to another csv file
Friday, May 3, 2024
Database Connection
public static Connection getConnection(){
String url = "DBURL";
String user = "spadmin";
String pwd = "p1213#%$#^$%#&^";
Connection connection;
log.error("Intializing connection");
Properties connectionProperties = new Properties();
connectionProperties.put("user", user);
connectionProperties.put("password", context.decrypt(pwd));
connection = DriverManager.getConnection(url, connectionProperties);
return connection;
}
WorkflowLaunch
HashMap<String,Object> map = new HashMap<String,Object>();
map.put("allowRequestsWithViolations","true");
map.put("approvalMode","serial");
map.put("approvalScheme","none"); // For auto approval
map.put("AppName",applicationName); //Target applcation name
map.put("doRefresh","true");
map.put("enableRetryRequest","false");
map.put("fallbackApprover","spadmin");
map.put("flow",requestType);
map.put("foregroundProvisioning","true");
map.put("identityDisplayName",identityName);
map.put("identityName",identityName);
map.put("identity",identity);
map.put("notificationScheme","user,requester");
map.put("optimisticProvisioning","true");
map.put("plan",plan);
map.put("policiesToCheck","");
map.put("policyScheme","continue");
map.put("policyViolations","");
map.put("project","");
map.put("requireViolationReviewComments","true");
map.put("securityOfficerName","");
map.put("sessionOwner","spadmin");
map.put("source","LCM");
map.put("trace","true");
map.put("violationReviewDecision","");
map.put("workItemComments","");
//Create WorkflowLaunch and set values
Workflow wf = (Workflow) context.getObjectByName(Workflow.class,"Mighty - LCM Provisioning");
WorkflowLaunch wflaunch = new WorkflowLaunch();
wflaunch.setWorkflowName(wf.getName());
wflaunch.setWorkflowRef(wf.getName());
wflaunch.setCaseName("customProvToDB");
//Launch workflow for application provisioning
wflaunch.setVariables(map);
wflaunch.setWorkflow(wf);
//Create Workflower and launch workflow from WorkflowLaunch
Workflower workflower = new Workflower(context);
WorkflowLaunch launch = workflower.launch(wflaunch);
String workFlowId = launch.getWorkflowCase().getId();
log.error("workFlowId: "+workFlowId);
API's Syntax
SailPointContext context = SailPointFactory.getCurrentContext();
Identity identity = new Identity();
Identity identity = context.getObjectByName(Identity.class, "Magnus"));
Bundle bundle = new Bundle();
WorkflowLaunch wflaunch = new WorkflowLaunch();
Workflower workflower = new Workflower(context);
Trim the String
public static String getNotNullString(String value){
String returnValue = "";
if (value != null) {
str = value.trim();
}
return returnValue ;
}
Sunday, April 28, 2024
Workgroup Creation
import sailpoint.object.Identity;
import sailpoint.object.Identity.WorkgroupNotificationOption;
Identity identity = new Identity();
identity.setName("Mighty-Workgroup");
identity.setDisplayName("Mighty-Workgroup");
Identity workGroupOwner = context.getObjectByName(Identity.class, "spadmin");
identity.setOwner(workGroupOwner);
identity.setWorkgroup(true);
identity.setNotificationOption(WorkgroupNotificationOption.MembersOnly);
context.saveObject(identity);
context.commitTransaction();
context.decache(identity);
ITRoles Creation Utlity
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import sailpoint.api.SailPointContext;
import sailpoint.object.Application;
import sailpoint.object.Bundle;
import sailpoint.object.Filter;
import sailpoint.object.Identity;
import sailpoint.object.Profile;
import sailpoint.tools.GeneralException;
import sailpoint.tools.RFC4180LineParser;
private void buildRole(HashMap roleHash) {
String roleDec = roleHash.get("Role Description").toString();
String roleOwner = roleHash.get("Role Owner").toString();
String entsList = roleHash.get("Entilements").toString();
String roleName = roleHash.get("Role Name").toString();
String appName = "AD";
Bundle role = null;
Identity ownerId = null;
Identity workgroupOwner = null;
Map desc = new HashMap();
desc.put("en_US", roleDec);
try {
role = context.getObjectByName(Bundle.class, roleName);
if (role == null) {
role = new Bundle();
}
ownerId = context.getObjectByName(Identity.class, roleOwner);
if (ownerId == null) {
ownerId = new Identity();
ownerId.setName(roleOwner);
ownerId.setDisplayName(roleOwner);
workgroupOwner = context.getObjectByName(Identity.class, "spadmin");
ownerId.setOwner(workgroupOwner);
ownerId.setWorkgroup(true);
ownerId.setNotificationOption(sailpoint.object.Identity.WorkgroupNotificationOption.MembersOnly);
context.saveObject(ownerId);
context.commitTransaction();
context.decache(ownerId);
}
Application appObj = null;
if (appName != null) {
appObj = context.getObjectByName(Application.class, appName);
if (appObj == null) {
return;
}
}
role.setType("it");
role.setName(roleName);
role.setDisplayName(roleName);
role.setOwner(ownerId);
role.setDescriptions(desc);
List inheritList = new ArrayList();
Bundle bundleObj = context.getObjectByName(Bundle.class, "Mighty IT Roles");
inheritList.add(bundleObj);
RFC4180LineParser entParser = new RFC4180LineParser("|");
ArrayList<String> entitlements = entParser.parseLine(entsList);
if (role.getType().contains("it")) {
List proList = new ArrayList();
List filList = new ArrayList();
Profile profile = new Profile();
Filter filter = Filter.containsAll("Entilements", entitlements);
filList.add(filter);
profile.setConstraints(filList);
profile.setApplication(appObj);
proList.add(profile);
role.setProfiles(proList);
role.setInheritance(inheritList);
}
context.saveObject(role);
context.commitTransaction();
context.decache(role);
return;
} catch (Exception e) {
log.error("Exception : " + e.getMessage());
}
}
// Code Execution Starts here
int lineCounter = 0;
String dlm = ",";
String thisLine = "";
String headerString = "";
String valueString = "";
HashMap lineHash = null;
List headerStrings = new ArrayList();
String csvFileName = "Path";
log.debug("Role Creation Started...");
BufferedReader fileIn = null;
File bundleFile = null;
log.debug("Readin Bundle date from : " + csvFileName);
try {
bundleFile = new File(csvFileName);
if ((!bundleFile.exists()) || bundleFile.isDirectory()) {
log.error("Unable to find the bundle csv file : " + csvFileName);
return;
}
fileIn = new BufferedReader(new FileReader(csvFileName));
RFC4180LineParser parser = new RFC4180LineParser(dlm);
while (null != (thisLine = fileIn.readLine())) {
ArrayList tokens = parser.parseLine(thisLine);
if (lineCounter == 0) {
for (int i = 0; i < tokens.size(); i++) {
headerStrings.add(tokens.get(i).toString().trim());
}
} else {
lineHash = new HashMap();
for (int i = 0; i < headerStrings.length; i++) {
headerString = headerStrings.get(i).toString();
valueString = tokens.get(i).toString();
if (valueString != null) {
valueString = valueString.trim();
} else {
valueString = "";
}
lineHash.put(headerString, valueString);
}
buildRole(lineHash);
}
lineCounter++;
if ((lineCounter % 20) == 0) {
context.decache();
}
}
} catch (FileNotFoundException e) {
log.error("Exception : " + e.getMessage());
} catch (IOException e) {
log.error("Exception : " + e.getMessage());
} catch (GeneralException e) {
log.error("Exception : " + e.getMessage());
}
return "Success";
BusinessRoles Creation Utlity
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import sailpoint.api.SailPointContext;
import sailpoint.object.Application;
import sailpoint.object.Bundle;
import sailpoint.object.Filter;
import sailpoint.object.Identity;
import sailpoint.object.Profile;
import sailpoint.tools.GeneralException;
import sailpoint.tools.RFC4180LineParser;
private void buildBusinessRole(HashMap roleHash) {
String roleName = roleHash.get("Business Role Name").toString().trim();
String roleDesc = roleHash.get("Business Role Description").toString().trim();
String roleOwner = roleHash.get("Business Role Owner").toString().trim();
String itRole = roleHash.get("IT Role Name").toString().trim();
Map desc = new HashMap();
desc.put("en_US", roleDesc);
Bundle role = null;
Identity identity = null;
Identity workGroupOwner = null;
try {
role = context.getObjectByName(Bundle.class, roleName);
if (role == null) {
role = new Bundle();
}
identity = context.getObjectByName(Identity.class, roleOwner);
if (identity == null) {
// Create the Workgroup for this Business Role
identity = new Identity();
identity.setName(roleOwner);
identity.setDisplayName(roleOwner);
workGroupOwner = context.getObjectByName(Identity.class, "spadmin");
identity.setOwner(workGroupOwner);
identity.setWorkgroup(true);
context.saveObject(identity);
context.commitTransaction();
context.decache(identity);
}
role.setType("business");
role.setName(roleName);
role.setDisplayName(roleName);
role.setOwner(identity);
role.setDescriptions(desc);
RFC4180LineParser entParser = new RFC4180LineParser("|");
ArrayList<String> itRoles = entParser.parseLine(itRole);
Bundle bundleObj = context.getObjectByName(Bundle.class, "Mighty IT Roles");
role.addInheritance(bundleObj);
// Add the required IT Roles to this Business Role
for (int e = 0; e < itRoles.size(); e++) {
Bundle requiredRole = context.getObjectByName(Bundle.class, itRoles.get(e));
if (requiredRole == null) {
log.error("Reuired role not found...");
} else {
role.addRequirement(requiredRole);
}
}
context.saveObject(role);
context.commitTransaction();
context.decache(role);
return;
} catch (GeneralException e) {
log.error("GeneralException : " + e.getMessage());
}
}
// Code Execution Starts here
int lineCounter = 0;
String dlm = ",";
String thisLine = "";
String headerString = "";
String valueString = "";
HashMap lineHash = null;
List headerStrings = new ArrayList();
String csvFileName = "Path";
log.debug("Role Creation Started...");
BufferedReader fileIn = null;
File bundleFile = null;
log.debug("Readin Bundle date from : " + csvFileName);
try {
bundleFile = new File(csvFileName);
if ((!bundleFile.exists()) || bundleFile.isDirectory()) {
log.error("Unable to find the bundle csv file : " + csvFileName);
return;
}
fileIn = new BufferedReader(new FileReader(csvFileName));
RFC4180LineParser parser = new RFC4180LineParser(dlm);
while (null != (thisLine = fileIn.readLine())) {
ArrayList tokens = parser.parseLine(thisLine);
if (lineCounter == 0) {
for (int i = 0; i < tokens.size(); i++) {
headerStrings.add(tokens.get(i).toString().trim());
}
} else {
lineHash = new HashMap();
for (int i = 0; i < headerStrings.length; i++) {
headerString = headerStrings.get(i).toString();
valueString = tokens.get(i).toString();
if (valueString != null) {
valueString = valueString.trim();
} else {
valueString = "";
}
lineHash.put(headerString, valueString);
}
buildRole(lineHash);
}
lineCounter++;
if ((lineCounter % 20) == 0) {
context.decache();
}
}
} catch (FileNotFoundException e) {
log.error("Exception : " + e.getMessage());
} catch (IOException e) {
log.error("Exception : " + e.getMessage());
} catch (GeneralException e) {
log.error("Exception : " + e.getMessage());
}
return "Success";
Tuesday, March 12, 2024
Workflow Global Variables
IAM, IGA & Identity Security
IAM sets up the employee's account so they can log in and access the application with their credentials. IGA makes sure that access requ...
Featured Articles
-
public static String extractSessionIDFromGetSessionId(String jsonObject) throws ParseException { String methodName = "extractSession...
-
Connector Rules # Pre-Iterate # BuildMap # JDBCBuildMap # SAPBuildMap # SAPHRManagerRule # PeopleSoftHRMSBuildMap # FilePar...
-
public ProvisioningPlan buildMoveADAccountsPlan(WorkflowContext wfc) throws GeneralException { Logger ruleLog = Logger.getL...
-
IIQ Installation Matrix : IdentityIQ Supported Platforms Matrix - Compass https://community.sailpoint.com/t5/IdentityIQ-Articles/IdentityIQ-...
-
// Fetch current date : Calender calender = Calender.getInstance(); Date currentDate = calender.getTime(); // Printing current date in ter...
-
RJ_KEY — auto generated key (the Job ID) RJ_NAME — name of the scheduled job RJ_JOB_STATUS — current status of the job RJ_EVENT_CNT — number...
-
Configuration steps for Log4j :- 1. Navigate to the below path : C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\idenityiq\W...
-
1. Configure the Manager Quicklink population to allow account only requests. a. Navigate to ===> Global Settings ===> Quicklink Pop...
-
Ex: 1. Navigate to the following directory C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\identityiq\WEB-INF\classes\sailpoi...
-
# ./ iiq console -j # Display the list of console commands: help (or) ? # Exit the from IIQ console : quit # Delete all identities...