Friday, March 11, 2022
Monday, March 7, 2022
Hashing in Action
Hashing is a cryptographic concept that can be used to validate the integrity of files and store passwords.
What does it mean?
Install OpenSSL on Windows Subsystem for Linux (WSL2)
wget https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.5.0.tar.gz
<Check latest version and replace everywhere>
tar -xvf libressl-3.5.0.tar.gz
cd libressl-3.5.0/
./configure
You may receive and error configure: error: no acceptable C compiler found in $PATH
sudo apt-get install -y build-essential checkinstall
sudo make
sudo make check
sudo make install
sudo ldconfig
<In new Terminal>
openssl version
Install Windows Subsystem for Linux (WSL2)
Pre-requisite: You must be running Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11
> Run powershell as administrator
> Run command:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
wsl --install -d Ubuntu
> Restart the system, after that find and run Ubuntu and it will ask you to set a user name and password.
sudo apt update && sudo apt upgrade
sudo apt install gedit -y
reference: Install WSL | Microsoft Docs
Tuesday, September 28, 2021
AD Provisioning Error - ERROR http-nio-8080-exec-1 sailpoint.connector.ADLDAPConnector:3871 - 1158736412 Exception occurred in handling Object Request.
More often then not, this is because IIQ machine is not able to connect to IQService.
- Check the status of IQService
- Check network
- Check firewalls
Wednesday, September 22, 2021
SailPoint Identity IQ JDBC Aggregation: A common mistake
A common mistake that I have seen being made is how the aggregation query is written.
Let's say there are three tables:
- User
- Groups
- Membership
Monday, September 20, 2021
SailPoint IIQ: Delete WorkItems assigned to a User
- Query the 'spt_work_item' table. Pay attention to 'id' column(used for deleting the workitem) and 'owner' column (used to identifying the owner
- Use the console utility to delete the workitem
- Navigate to <tomcat>/webapps/iiq/WEB-INF/bin/
- Execute ./iiq console
- delete workitem ff8080817bffde5f017c029a820700ab (where id is the one you queried from database)
- If multiple ids have to be deleted, you can create a file with content like:
delete workitem ff8080813eb1de6f013eb3d811f10081
delete workitem ff8080813eb1de6f013eb3d82b6b0095
delete workitem ff8080813eb1de6f013eb3d83b1000a9
delete workitem ff8080813eb1de6f013eb3d846b900bd
delete workitem ff8080813eb1de6f013eb3d855cb00d1
- Within IIQ console: source deleWorkItem.txt
Sunday, September 19, 2021
Search for text within files in linux
find ./ -name '*.txt' | xargs grep yourtext
./: root path to search
-name: file name
SailPoint IdentityIQ : Initialize LCM Module
> cd apache_home/webapps/iiq/WEB-INF/bin
> ./iiq console
> import init-lcm.xml
> Restart tomcat
Start mySQL on Linux
Use one of the following options depending on your environment
service mysql startservice mysql stop
service mysql restart
service mysqld start
service mysqld stop
service mysqld restart
/etc/init.d/mysqld start
/etc/init.d/mysqld stop
/etc/init.d/mysqld restart
Create Database Scheme for Your Custom Application via SQL File
For many activities like developing a web application, creating data lake or creating trusted/target system for learning IAM, a custom Database schema is required.
There is always an option to use tools (like SQL developer) or execute one off commands. This works well but the only issue is that we have to set these databases up so frequently that it would be nice to have a template which can be used everytime.
For this template, we simply need to create a .sql file and store it. Every time a new database has to be created, this can be leveraged. You will still have to update the table names etc.
This exercise will also help you understand, how to share your database creation details with fellow developers or even how the IAM tools like SailPoint IIQ or Oracle Identity Manager (RCU) shares the same with us.
I have used a MySQl server but it will work on all RDBMS with minor changes.
Create a .sql file and use the below structure:
/*
SQL file to create a custom database
-- Date: 2021-19-09 08:15
*/
CREATE DATABASE customapp;
SET GLOBAL validate_password_policy=LOW;
GRANT ALL PRIVILEGES ON customapp.*
TO 'appUser' IDENTIFIED BY 'admin@12345';
GRANT ALL PRIVILEGES ON customapp.*
TO 'appUser'@'%' IDENTIFIED BY 'admin@12345';
GRANT ALL PRIVILEGES ON customapp.*
TO 'appUser'@'localhost' IDENTIFIED BY 'admin@12345';
USE customapp;
CREATE TABLE `UserTable` (
`dbID` varchar(45) NOT NULL,
`empID` varchar(45) DEFAULT NULL,
`userName` varchar(45) DEFAULT NULL,
`Inactive` varchar(45) DEFAULT NULL,
`lastlogin` date DEFAULT NULL,
PRIMARY KEY (`dbID`)
);
INSERT INTO `financeuser` (`dbID`,`empID`,`userName`,`Inactive`,`lastlogin`) VALUES ('112','1a2c3a','RichardJackson','FALSE','2009-04-04');
INSERT INTO `financeuser` (`dbID`,`empID`,`userName`,`Inactive`,`lastlogin`) VALUES ('113','1a2c3b','MariaWhite','FALSE','2009-04-04');
INSERT INTO `financeuser` (`dbID`,`empID`,`userName`,`Inactive`,`lastlogin`) VALUES ('114','1a2c3c','CharlesHarris','FALSE','2009-04-04');
INSERT INTO `financeuser` (`dbID`,`empID`,`userName`,`Inactive`,`lastlogin`) VALUES ('115','1a2c3d','SusanMartin','TRUE','2009-04-04');
INSERT INTO `financeuser` (`dbID`,`empID`,`userName`,`Inactive`,`lastlogin`) VALUES ('156','1a2c3a4a','LarryMorgan','FALSE','2009-04-04');
INSERT INTO `financeuser` (`dbID`,`empID`,`userName`,`Inactive`,`lastlogin`) VALUES ('159','1a2c3a4d','MelissaBailey','FALSE','2009-04-04');
INSERT INTO `financeuser` (`dbID`,`empID`,`userName`,`Inactive`,`lastlogin`) VALUES ('160','1a2c3a4e','FrankRivera','FALSE','2009-04-04');
INSERT INTO `financeuser` (`dbID`,`empID`,`userName`,`Inactive`,`lastlogin`) VALUES ('161','1a2c3b4a','BrendaCooper','TRUE','2009-04-04');
INSERT INTO `financeuser` (`dbID`,`empID`,`userName`,`Inactive`,`lastlogin`) VALUES ('162','1a2c3b4b','ScottRichardson','FALSE','2009-04-04');
INSERT INTO `financeuser` (`dbID`,`empID`,`userName`,`Inactive`,`lastlogin`) VALUES ('163','1a2c3b4c','AmyCox','FALSE','2009-04-04');
Now login into database:
> mysql -u root -p
> source fileName.sql
The sql file can be shared and the devs will be able to create the schema in their sandboxes.
Hope this helps !!!
Saturday, June 26, 2021
SQL Developer: MY SQL Connection Error - The server time zone value 'CDT' is unrecognized
Status : Failure -Test failed: The server time zone value 'CDT' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support
Add the following string after the port number
Wednesday, June 9, 2021
SailPoint IIQDA Import Error: org.apache.http.conn.ConnectTimeoutException
This error is due to incorrect URL in XXX.target.properties file.
The URL should exactly like: %%ECLIPSE_URL%%=http\://192.168.61.102\:8080/identityiq
Replace with your IP and Host
Sunday, June 6, 2021
SailPoint IdentityIQ: Hide 'Add New Entitlement' button from 'Entitlement Catalog'
- This post lists the steps to hide the 'Add New Entitlement' button from 'Entitlement Catalog'
- Navigate to SAILPOINT_HOME/scripts/sailpoint/web/define
e.g. /u01/sailpoint/tomcat/apache-tomcat-8.5.65/webapps/identityiq/scripts/sailpoint/web/define
- Open file 'accountGroupGrid.js' and comment the line "toolbar.push(SailPoint.Define.Grid.Group.getNewGroupButton());"
Friday, May 7, 2021
Disable firewall on OEL 7
The firewall on Oracle Linux 7 system is enabled by default.
Fedora 18 introduced firewalld as a replacement for the previous iptables service. Since RHEL7 and Oracle Linux 7 are based on Fedora 19, the switch from iptables service to firewalld is now part of the Enterprise Linux distributions.
Use the following two commands to check the status and them stop the firewall
systemctl status firewalld
service firewalld stop
Thursday, May 6, 2021
SailPoint IdentityIQ: Type of Rules
Creation Rule:
Identity creation rules are used to set attributes on new Identity objects when they are created. New identities may be created during the aggregation of application accounts, or optionally created after pass-through authentication.
One common operation is to change the name property of the identity when the default application name is complex (such as a directory DN).
Another common operation is to assign a set of initial capabilities based on the attributes pulled from the application account.
Use Case: Generate user email, set password
Customization Rule:
This rule is configured on the application and is called after the connector has build a ResourceObject from the native application data.
Initially designed for non-rule based connectors to add SPPrivileged flag to an object, but could be used to do any transformations.
Use Case: Set IIQDisable flag to set account status
<WIP>
Sunday, May 2, 2021
HOST XXX.XXX.XX.X is not allowed to connect to this MySQL server
I created an OEL VM and installed a My SQL server. For ease of access, I installed SQL developer on my local windows 10 machine.
After installing the my sql driver in SQL developer and trying to connect to the DB, I got the following error:
Granted the permissions
Problem Resolved
Mouse Pointer Stuck Inside VM VirtualBox - Change Host Key
If you using VirtualBox and your mouse pointer is stuck inside the guest's(VM) window. This is by design. When you are using the VM, the keyboard and mouse input go there. If you want to switch this to host, a specific key can be configured, called as "Host Key" (great name)
Default Host Key
Windows: right Ctrl - Press right Ctrl on Windows to unstuck your mouse pointer
macOS: left Cmd
You can also change this key to any other key in VirtualBox settings:
![]() |
Look into Guest Addition to get rid of this dependency
Tuesday, March 9, 2021
SailPoint IdentityIQ - Knowledge Assessment & Interview Questions - All Levels
This post will be a work in progress and plans to be a comprehensive guide for self assessment and interview questions of IIQ
Level: Beginner to Advanced
- What is IGA
- What is IIQ?
- What is IIQs latest version?
- What is an identity?
- What is an identity cube?
- What is provisioning?
- What is aggregation?
- What does 'Refresh Entitlement Correlation' task do?
- What does 'Identity Refresh' task do?
- What is the meaning of option 'Refresh assigned, detected roles and promote additional entitlements' in 'Identity Refresh' Task?
- What is the meaning of option 'Provision assignments' in 'Identity Refresh' Task?
- What is the meaning of option 'Disable deprovisioning of deassigned roles' in 'Identity Refresh' Task?
- What is the meaning of option 'Refresh role metadata for each identity' in 'Identity Refresh' Task?
- What is the meaning of option 'Process Events' in 'Identity Refresh' Task?
- How do you rename the attribute 'User Name' to a custom value, say 'Corporate ID'?
WEB-INF/classes/sailpoint/web/messages/iiqCustom.properties
att_user_name=Corporate ID
- How is attribute 'User Name' populated?
- How to add a column on 'Identity Warehouse' page?
- How to extend the identity schema?
- What are capabilities?
- What are workgroups?
- How the change the spadmin's default password?
- How many types of policies can be created in IIQ?
- What is a Role SOD Policy?
- What is an Entitlement SOD Policy?
- What is an Activity Policy?
- What is an Account Policy?
- What is a Risk Policy?
- What is an Advanced Policy?
- Describe IIQs risk framework
- What are extended attributes?
- What are certifications?
- How do you schedule a certification?
- What are certification events?
- What is a 'Manager' certification?
- What is a 'Application Owner' certification?
- What is a 'Entitlement Owner' certification?
- What is a 'Advanced' certification?
- What is a 'Role Membership' certification?
- What is a 'Role Composition' certification?
- What is a 'Account Group Permission' certification?
- What is a 'Account Group Membership' certification?
- Explain IIQ Reporting capabilities.
- What are tasks?
Acts on object, scheduled
- What are business processes?
Acts on object, event driven
- What are Rules?
Beanshell logic, hooks to modify system behavior
- <Insert>
- <Insert>
Saturday, February 6, 2021
Linux - Find commands that run with administrative privileges
>find / -perm -u=s -type f 2>/dev/null
-
import java.util.Date; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.Stateme...
-
Query the 'spt_work_item' table. Pay attention to 'id' column(used for deleting the workitem) and 'owner' column (us...
-
import java.util.List; import...












