In this article, I am going to jump directly to get my hands dirty on sailpoint connectors, so here we go
what is Sailpoint Connector?
A software component that allows IdentityIQ to connect to target resources which inturn read /write to the target resource as well.
The process of onboarding an application eventually leads to the making of the connector, I want to put a logic flow diagram for better understanding of the flow.
In each connector, we have to define the following parameters for each connector/application instance those are
→Connection parameters: Login, Password.
→Schema
→Groups
→Activity sources
→Formatting
→ IdentityIQ rules
→Application owners
Connectors are mainly of the following types
→Delimited File
→JDBC
→LDAP
→AD
→Logical
→Multiplex
In all these connectors,I want to focus on the JDBC connector and how i modified the preexisting JDBC connector to fit my needs and created a brand new Custom DB connector.
So Now let us take the preexisting JDBC connector which has the following fields to be filled in order to connect to the target field, it’s functionality is to read and write data into the target resource, However the custom DB connector which i have experimented upon only is used for reading the data from the target resource and updating it accordingly in the Sailpoint IIQ system.
Pre-Existing JDBC connector has following fields as per diagram
It has connection user, connection password, Database URL, JDBC driver
The connector i have written has the following fields user, connection password, Database URL.
As i have already created custom date base on my own, i don't need JDBC driver.
So in order to write a custom connector
we need the following steps to be done
- Create a java class and extends AbstractConnector.
- Implement various operations create, update.
- Keep your jar file in classpath.
- Build .xhtml form to capture connection parameters.
- Keep .xhtml form in /define/applications directory.
- Define a template for your application.
- Register the same in ConnectorRegistry through Configuration or by importing file.
- Build our custom application.
Writing a java class would be as follows :
After writing the code we should export it in the form of jar and deploy it in the web app's directory accordingly.
Now we have to build the UI of the connector for that we have to build and keep the Xhtml in the applications directory. Consider the below snippet of the code in customDB connector xhtml with this code , we are able to successfully populate username, password and jdbc url from UI standpoint.
var username = getFieldValue('editForm:username');
Validator.validateNonBlankString(username, "Username cannot be null!");
var password = getFieldValue('editForm:password');
Validator.validateNonBlankString(password, "Password cannot be null!");
var jdbcurl = getFieldValue('editForm:jdbcurl');
Validator.validateNonBlankString(jdbcurl, "JDBC URL cannot be null!");
In order us to write the UI of Custom DB Connector we have to write it in Xhmtl JSF template.
Now the final step were the rubber meets the road is to frame a ConnectorRegistry through Configuration or by importing file which will bind the code in Sailpoint IIQ and forms the functionality of the connector
With all this effort we have finished up setting the connector and if my custom database has new entries,sailpoint IIQ will aggregate those entries and keep the updated field in records as following.
By this effort we are able to onboard different applications in sail point for aggregation.which, in general, will help to control and monitor access.