Thursday, February 11, 2021

Life Cycle Event

Life Cycle Events ::-

# Cube creation (Joiner)

# Change in the inactive attribute (Leaver)

# Attribute change or change in manager (Mover)

# Custom detected change (Rule Based) 

Joiner Event ::- If a person joins the Organization

Mover Event ::- If a person department is changed or manager changed ( Attribute changed )

Leaver Event ::- If a person leaves from the Organization

Note: The terms Business Process and Workflow are synonymous. The IdentityIQ user interface refers to these terms as Business Processes which is the term business managers use most often. The IdentityIQ object model and XML use the term Workflows. 

# An integral part of Lifecycle Manager and Provisioning is our workflow engine. 

# Workflows within IdentityIQ are called Business Processes. 

# All Lifecycle Manager provisioning requests and Lifecycle Events initiate a workflow.


What is Event Type in IIQ ? 

# Event Type specifies  that when the life cycle should be trigger

What is disabled option in life cycle event ?

# If you don't want to trigger any specific event we will check (by default checked) that event

# If you want trigger any events, we will uncheck the event.

What is Included Identities in Life Cycle Event ?

# If this life cycle event or specific life cycle event should trigger for specific users / all users / as per our business requirement we will select from the drop down menu (All / Match List / Rule / Script).

High Level steps of Joiner Workflow ::

# Create the Provision plan

# Compile the provisioning plan into provisioning project

# Provision the user 


Tuesday, February 9, 2021

What is Orphan Account and how to handle un-correlated account?

Orphan Account :: An account from a target system with no identity to attach or link.

When correlation fails, we get uncorrelated identities created to house the accounts that did

not correlate. There are two solutions to this problem:

# Determine what went wrong with the correlation, adjust your correlation rule and

re-aggregate the accounts.

# Manually correlate the accounts using the UI. This involves moving the uncorrelated

account to the proper Identity Cube.

Once this is done, you can prune the Identity Cubes that have no accounts to remove the

uncorrelated cubes.


Sunday, January 31, 2021

Kanada Vocabulary

English                                                                                      Kannada

Mother                                                                                        Amma
Father                                                                                          Appa
Youner  Brohter                                                                          Tamma
Elder Brother                                                                              Anna                 
Sister                                                                                           Akka Tangi
Water                                                                                           Neeru
Mirror                                                                                          Kannadi
BedShit                                                                                        Kambli / Rug / Bedshit
Tiffin                                                                                            Nashta
Lunch                                                                                           Oota
Dinner                                                                                          Oota
Snacks                                                                                          Tindi
Cloths                                                                                           Butte
Box                                                                                               Dabba
Rice                                                                                               Akki / Anna


Monday, January 25, 2021

How to fetch file from SFTP (Server)?

File inputFileorDirectory = new File(inputMap.get("Input File Path").toString());

LOGGER.debug("Input file or Directory is : " + inputFileorDirectory.getName());

System.out.println("Input file or Directory is : " + inputFileorDirectory.getName());


if (inputFileorDirectory.isDirectory()) {

LOGGER.debug("Input is a Directory : " + inputFileorDirectory.getName());

System.out.println("Input is a Directory : " + inputFileorDirectory.getName());


FilenameFilter fileNameFilter = new FilenameFilter() {

@Override

public boolean accept(File dir, String name) {

if (name.endsWith("csv")) {

return true;

} else {

return false;

}

}

};

String[] inputFileNames = inputFileorDirectory.list(fileNameFilter);

if (inputFileNames == null || inputFileNames.length == 0) {

LOGGER.error("No Files present inside the directory");

System.out.println("No Files present inside the directory");

throw new Exception("No Files present inside the directory");

}

for (String inputFileName : inputFileNames) {

// Process Records

String data = readData(inputFileorDirectory.getAbsolutePath() + File.separator + inputFileName);

System.out.println("Data : " + data);

LOGGER.debug("Data : " + data);

}

}

 

Sunday, January 10, 2021

Fetch the RJ_KEY for the Scheduler Job (Trusted / Target Recon Job) and Fetch the count for the Job?

select MAX(RJ_KEY) from recon_jobs where RJ_NAME='Job Name';

NOTE : 

Job Name = Active Directory User Target Recon


select count(distinct re.re_key) as COUNT from RECON_JOBS rj, RECON_EVENTS re, RECON_HISTORY rh, USR usr where rj.RJ_NAME='Clarizen Certification Job' and rj.rj_key=re.rj_key and rh.re_key=re.re_key and rh.rh_status in ('Creation Succeeded','Update Succeeded') and re.usr_key=usr.usr_key and to_char(rj.rj_start_time,'DD/MM/YY') = to_char(SYSDATE,'DD/MM/YY') and rj.rj_key='RJ_KEY' order by rj.rj_start_time desc;


NOTE :

RJ_KEY = 1234






How to fetch certification details by using database query in OIM?

 SELECT distinct certd_app_inst.cert_id AS certification_id,cert_certs.cert_name AS certificationname,  cert_certs.createdate AS certification_creation_date,

  decode(cert_certs.state,1,'YET_TO_START',2,'WIP',3,'COMPLETED',4,'EXPIRED',cert_certs.state) certification_state,  A.attribute_value as entitlement,A.description as entitlement_description, 

  A.account_name,A.first_name,A.last_name,decode(A.decision,0,'REVOKE',1,'CERTIFY',3,'CERTIFY CONDITIONALLY FOR REASSIGN',A.decision) decision,  A.certified_by,A.certification_date,A.comments,A.endpoint_name,  

  (case when lower(A.account_name) = lower(A.certified_by) then 'Y'              when lower(A.account_name) != lower(A.certified_by) then 'N'              else null end) is_self_attested   FROM 

  certs_app_inst,certd_app_inst,cert_certs,   (SELECT certs_acct_ent_asgn.attribute_value   AS attribute_value,certs_acct_ent_asgn.short_description AS description,    certd_acct_ent_asgn.account_id 

  AS account_id,certs_account.account_name AS account_name,     certs_user.firstname AS first_name,certs_user.lastname AS last_name,     certd_acct_ent_asgn.cert_id AS cert_id,certd_acct_ent_asgn.certified AS decision,

  certd_acct_ent_asgn.certified_by AS certified_by,certd_acct_ent_asgn.certification_date AS certification_date,     certd_acct_ent_asgn.comments AS comments,certs_account.endpoint_name AS endpoint_name,     

  certs_account.endpoint_id AS endpoint_id FROM certs_acct_ent_asgn,     certd_acct_ent_asgn,certs_user,certs_account   WHERE certs_acct_ent_asgn.id = certd_acct_ent_asgn.account_attribute_id   AND 

  certs_acct_ent_asgn.parent_id   = 0  AND certd_acct_ent_asgn.user_id     = certs_user.id   AND certs_acct_ent_asgn.account_id  = certs_account.id  AND certs_acct_ent_asgn.account_id IN     

  (SELECT certs_account.id  FROM certs_account, certd_user_acct     WHERE certs_account.id = certd_user_acct.account_id)) A       WHERE cert_certs.id        = certd_app_inst.cert_id      

  AND certs_app_inst.id      = certd_app_inst.endpoint_id              AND A.cert_id              = certd_app_inst.cert_id              AND A.endpoint_id          = certs_app_inst.iam_endpoint_id    

  AND A.decision=0  AND trunc(cert_certs.createdate) = upper('dd-MM-yy') AND cert_certs.cert_name like '%Certificate Definition Name%' ORDER BY certd_app_inst.cert_id desc, A.account_name;

Note : 

Ex :

Certificate Definition Name  =  Oracle CRM

Date (dd-MM-yy) = 11-JAN-2021

Friday, January 8, 2021

How to fetch session of JSON Object?

 public static String getSessionIdJSONObject(String userName, String password, HashMap<String, String> lookupData) {

String methodName = "getSessionIdJSONObject";

LOGGER.debug(CLASS_NAME + "/" + methodName + "; userName = " + userName + "; password = " + password);

System.out.println(CLASS_NAME + "/" + methodName + "; userName = " + userName + "; password = " + password);


String WS_URL = null;

URL url = null;

String retVal = "SUCCESS";

StringBuffer response = null;

OutputStream os = null;

BufferedReader in = null;

try {

String webServiceParams = "{\"UserName\":\"" + userName + "\"" + " , \"Password\":\"" + password + "\"}";

System.out.println("webServiceParams : " + webServiceParams);


WS_URL = lookupData.get("SessionIdURL");

System.out.println("WebService URL :" + WS_URL);


url = new URL(WS_URL);

                        //url = new URL(null, WS_URL, new sun.net.www.protocol.https.Handler());

HttpsURLConnection postConnection = (HttpsURLConnection) url.openConnection();

postConnection.setRequestMethod("POST");

postConnection.setRequestProperty("Content-Type", "application/json");

postConnection.setDoOutput(true);

os = postConnection.getOutputStream();

os.write(webServiceParams.getBytes());


int responseCode = postConnection.getResponseCode();

System.out.println("POST Response Code :  " + responseCode);

System.out.println("POST Response Message : " + postConnection.getResponseMessage());


if (responseCode == 200) { // success

in = new BufferedReader(new InputStreamReader(postConnection.getInputStream()));

String inputLine;

response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {

response.append(inputLine);

}

// print result

System.out.println("JSON object is : " + response.toString());

LOGGER.debug("JSON object is : " + response.toString());


} else {

retVal = "FAIL";

System.out.println("Return value is : " + retVal);

System.out.println("POST NOT WORKED");

LOGGER.debug("Return value is : " + retVal);

LOGGER.debug("POST NOT WORKED");

}

}


catch (Exception e) {

System.out.println("Exception is : " + e.getMessage());

LOGGER.error("Exception is : " + e.getMessage());

e.printStackTrace();

} // End of Catch block

finally {

closeIOFile(os, in);

}

System.out.println("Return value is : " + retVal);

LOGGER.debug("Return value is : " + retVal);

System.out.println("Exiting from the method : " + methodName);

LOGGER.debug("Exiting from the method : " + methodName);

return response.toString();

}


NOTE :  

Ex: SessionIdURL = "https://oimsailpointpedia.blogspot.com/search/label/Java";

How to fetch user status of JOSN Object?

 public static String extractUserState(String jsonObject)

throws ParseException, JsonParseException, JsonMappingException, IOException {

String methodName = "extractUserState";

LOGGER.debug(CLASS_NAME + "/" + methodName + "; jsonObject = " + jsonObject);

System.out.println(CLASS_NAME + "/" + methodName + "; jsonObject = " + jsonObject);


String userStatus = null;

String id = null;

State state = new State();

ObjectMapper objectMapper = new ObjectMapper();

Entities entities = objectMapper.readValue(jsonObject, Entities.class);

System.out.println("Entities lenght  : " + entities.getEntities().length);

if (entities.getEntities().length != 0) {

for (User user : entities.getEntities()) {

state = user.getState();

id = state.getId();

userStatus = id.substring(7);

System.out.println(id.substring(7));

}

}

System.out.println("Exiting from the method : " + methodName);

LOGGER.debug("Exiting from the method : " + methodName);

return userStatus;

}

How to fetch User Id / External Id of JSON Object?

 // fetch external user Id

public static String extractUserId(String jsonObject)

throws ParseException, JsonParseException, JsonMappingException, IOException {

String methodName = "extractUserId";

LOGGER.debug(CLASS_NAME + "/" + methodName);

System.out.println(CLASS_NAME + "/" + methodName);

String externalUserIDValue = null;

ObjectMapper objectMapper = new ObjectMapper();

Entities entities = objectMapper.readValue(jsonObject, Entities.class);

System.out.println("Entities lenght  : " + entities.getEntities().length);

if (entities.getEntities().length != 0) {

for (User user : entities.getEntities()) {

externalUserIDValue = user.getExternalId();

}

}

System.out.println("Exiting from the method : " + methodName);

LOGGER.debug("Exiting from the method : " + methodName);

return externalUserIDValue;

}


How to fetch Session Id of JSONObject?

public static String extractSessionIDFromGetSessionId(String jsonObject) throws ParseException {

String methodName = "extractSessionIDFromGetSessionId";

LOGGER.debug(CLASS_NAME + "/" + methodName + "; jsonObject = " + jsonObject);

System.out.println(CLASS_NAME + "/" + methodName + "; jsonObject = " + jsonObject);


JSONParser parser = new JSONParser();

String sessionId = "";

System.out.println("JSON object is :" + jsonObject);

LOGGER.debug("JSON object is :" + jsonObject);


Object obj = parser.parse(jsonObject);

JSONObject jo = (JSONObject) obj;

sessionId = jo.get("sessionId").toString();

System.out.println("SessionId is : " + sessionId);


System.out.println("Exiting from the method : " + methodName);

LOGGER.debug("Exiting from the method : " + methodName);

return sessionId;

}

NOTE: JSON Jar is required


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