{"id":1446,"date":"2024-01-02T13:30:03","date_gmt":"2024-01-02T08:00:03","guid":{"rendered":"https:\/\/www.enhisecure.com\/isecureblog\/?p=1446"},"modified":"2024-01-02T13:30:03","modified_gmt":"2024-01-02T08:00:03","slug":"sailpoint-identityiq-custom-connector","status":"publish","type":"post","link":"https:\/\/www.enhisecure.com\/isecureblog\/2024\/01\/02\/sailpoint-identityiq-custom-connector\/","title":{"rendered":"SailPoint IdentityIQ Custom Connector"},"content":{"rendered":"\n<p class=\"has-medium-font-size\"><strong>Introduction<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-left\">Connectivity is critical to successful <a href=\"https:\/\/en.wikipedia.org\/wiki\/Identity_management\">IAM<\/a> deployments. <a href=\"https:\/\/www.sailpoint.com\/\">SailPoint<\/a> is committed to providing design, configuration, troubleshooting and best practice information to deploy and maintain connectivity to target systems. <a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\" target=\"_blank\" rel=\"noreferrer noopener\">SailPoint IdentityIQ<\/a> enables you to manage and govern access for <a href=\"https:\/\/www.sailpoint.com\/identity-library\/what-is-identity\/\">digital identities<\/a> across various applications in your environment. <a href=\"https:\/\/www.sailpoint.com\/solutions\/connectors-and-integrations\/\" target=\"_blank\" rel=\"noreferrer noopener\">Connectors<\/a> are the bridges that <a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\">IdentityIQ<\/a> uses to communicate with and <a href=\"https:\/\/documentation.sailpoint.com\/identityiq\/help\/appmgmt\/aggregation.html#:~:text=Aggregation%20is%20the%20process%20by,your%20enterprise%20systems%20into%20IdentityIQ.\">aggregate<\/a> data from applications.\u202f<a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\">SailPoint IdentityIQ<\/a> provides a wide range of <a href=\"https:\/\/www.sailpoint.com\/es\/solutions\/connectors-and-integrations\/\">OOTB connectors<\/a> that facilitate integration with variety of systems, applications and data sources. These connectors are designed to simplify the process of managing <a href=\"https:\/\/www.sailpoint.com\/identity-library\/what-is-identity\/\">Identity<\/a> information and access across different platforms.\u00a0\u00a0<\/p>\n\n\n\n<p>In <a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\">SailPoint IdentityIQ<\/a>, a <a href=\"https:\/\/community.sailpoint.com\/t5\/Technical-White-Papers\/Custom-Connectors\/ta-p\/75122\" target=\"_blank\" rel=\"noreferrer noopener\">Custom Connector<\/a> is a specialized integration component that allows the <a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\">IdentityIQ<\/a> platform to connect and interact with external systems, applications, or data sources that are not supported by the standard <a href=\"https:\/\/www.sailpoint.com\/solutions\/connectors-and-integrations\/\">OOTB connectors<\/a>. <a href=\"https:\/\/community.sailpoint.com\/t5\/Technical-White-Papers\/Custom-Connectors\/ta-p\/75122\">Custom connectors<\/a> extend the capabilities of <a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\">IdentityIQ<\/a> by enabling it to manage identity-related information in a wider range of systems.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"478\" src=\"https:\/\/www.enhisecure.com\/isecureblog\/wp-content\/uploads\/2024\/01\/Custom_Connector_Arch-1024x478.png\" alt=\"\" class=\"wp-image-1447\" style=\"width:770px;height:auto\" srcset=\"https:\/\/www.enhisecure.com\/isecureblog\/wp-content\/uploads\/2024\/01\/Custom_Connector_Arch-1024x478.png 1024w, https:\/\/www.enhisecure.com\/isecureblog\/wp-content\/uploads\/2024\/01\/Custom_Connector_Arch-300x140.png 300w, https:\/\/www.enhisecure.com\/isecureblog\/wp-content\/uploads\/2024\/01\/Custom_Connector_Arch-1536x717.png 1536w, https:\/\/www.enhisecure.com\/isecureblog\/wp-content\/uploads\/2024\/01\/Custom_Connector_Arch.png 1546w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><strong><em>High level architecture of Custom connector<\/em><\/strong>&nbsp;<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Custom Connector Development<\/strong><\/p>\n\n\n\n<p>Developing <a href=\"https:\/\/community.sailpoint.com\/t5\/Technical-White-Papers\/Custom-Connectors\/ta-p\/75122\">Custom connector<\/a> in SailPoint IdentityIQ involves creating a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Java_(programming_language)\">Java<\/a>-based implementation that adheres to the connector framework and <a href=\"https:\/\/developer.sailpoint.com\/iiq\/api\/\">API<\/a> provided by SailPoint.&nbsp;&nbsp;<\/p>\n\n\n\n<p>This allows you to define the interaction between <a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\">IdentityIQ<\/a> and the specific external system you want to integrate with. A typical <a href=\"https:\/\/community.sailpoint.com\/t5\/Technical-White-Papers\/Custom-Connectors\/ta-p\/75122\">development of custom connector<\/a> includes 4 steps \u2013\u00a0<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"1\">\n<li><strong>Creating a new implementation of functionality and packaging it into JAR file.<\/strong>&nbsp;<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The <a href=\"https:\/\/community.sailpoint.com\/t5\/Technical-White-Papers\/Custom-Connectors\/ta-p\/75122\">custom connector<\/a> uses the <a href=\"https:\/\/documentation.sailpoint.com\/connectors\/custom_source_config\/help\/idn_custom_connector_configuration\/java_development.html\">openconnector framework<\/a> provided by SailPoint in the openconnector package where there are lot of methods provided for different type of operations.\u00a0\u00a0<\/li>\n\n\n\n<li>The custom logic which you want to implement using this <a href=\"https:\/\/community.sailpoint.com\/t5\/Technical-White-Papers\/Custom-Connectors\/ta-p\/75122\">custom connector<\/a> shall be developed in the specified methods.\u00a0\u00a0<\/li>\n\n\n\n<li>Once code development is completed, <a href=\"https:\/\/community.sailpoint.com\/t5\/Technical-White-Papers\/Custom-Connectors\/ta-p\/75122\">Custom connector<\/a> code with all the classes must be compiled and packaged to a <a href=\"https:\/\/en.wikipedia.org\/wiki\/JAR_(file_format)\">JAR<\/a> file.\u00a0\u00a0<\/li>\n\n\n\n<li>And the JAR file must be placed in <strong>WEB-INF\/lib<\/strong> folder of IIQ Installation directory&nbsp;<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Defining Connector type in Connector Registry<\/strong>&nbsp;<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Connector Registry<\/strong> is an <a href=\"https:\/\/en.wikipedia.org\/wiki\/XML\">XML<\/a> file present in <a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\">IdentityIQ<\/a> as Configuration object. This file contains the information about all the different <a href=\"https:\/\/www.sailpoint.com\/es\/solutions\/connectors-and-integrations\/\">connectors<\/a> and their related details.\u00a0\u00a0<\/li>\n\n\n\n<li>Now that we have created a new connector in our <a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\">IdentityIQ<\/a>, we have to declare its information and details in Connector Registry.\u00a0\u00a0<\/li>\n\n\n\n<li>Here we will create an xml file consisting of the details pertaining to our <a href=\"https:\/\/community.sailpoint.com\/t5\/Technical-White-Papers\/Custom-Connectors\/ta-p\/75122\">custom connector<\/a>. Once we Import this xml file into <a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\">IdentityIQ<\/a>, it will be merged with the existing Connector Registry file in <a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\">IdentityIQ<\/a> database allowing IdentityIQ to create a new entry in the list of connectors.\u00a0\u00a0<\/li>\n\n\n\n<li>Alternatively, the Connector Registry could be manually edited through the <a href=\"https:\/\/documentation.sailpoint.com\/identityiq\/help\/systemadmin\/debugpages.html#:~:text=The%20Debug%20pages%20provide%20administrative,information%20about%20your%20IdentityIQ%20installation.\">Debug page<\/a>.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Defining .xhtml page <\/strong><strong>which specifies required and optional connection parameters.<\/strong>&nbsp;<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Usually, some parameters are required to define the connection to the target resource (e.g. host, port, username, password, etc.).&nbsp;&nbsp;<\/li>\n\n\n\n<li>To allow these parameters to be specified through the UI for each <a href=\"https:\/\/community.sailpoint.com\/mpomh84452\/attachments\/mpomh84452\/IIQ_docs\/457\/1\/8_1_IdentityIQ_Application_Configuration_Guide.pdf\">application<\/a> that uses this connector, an <a href=\"https:\/\/en.wikipedia.org\/wiki\/XHTML#:~:text=Extensible%20HyperText%20Markup%20Language%20(XHTML,which%20Web%20pages%20are%20formulated.\">.xhtml<\/a> page must be written to define how the <a href=\"https:\/\/community.sailpoint.com\/mpomh84452\/attachments\/mpomh84452\/IIQ_docs\/457\/1\/8_1_IdentityIQ_Application_Configuration_Guide.pdf\">Application Configuration<\/a> user interface will request and record those parameters.\u00a0\u00a0<\/li>\n\n\n\n<li>This file must be placed in the\u202f<strong>[IdentityIQ Installation Directory]\/define\/applications\/ <\/strong>directory and must be referenced in the <a href=\"https:\/\/community.sailpoint.com\/mpomh84452\/attachments\/mpomh84452\/IIQ_docs\/457\/1\/8_1_IdentityIQ_Application_Configuration_Guide.pdf\">application definition<\/a>\u2019s XML as the &#8220;<strong>formPath<\/strong>&#8221; entry.\u00a0\u00a0<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li><strong>Testing the connector by Creating an application which uses this connector.<\/strong>&nbsp;<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Finally, after completing all the development related activities, one must start the application server which is hosting <a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\">IdentityIQ<\/a>.\u00a0\u00a0\u00a0<\/li>\n\n\n\n<li>An <a href=\"https:\/\/documentation.sailpoint.com\/identityiq\/help\/appconfig\/application_configuration.html\">Application<\/a> object must be created for using the <a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\">IdentityIQ<\/a>\u2019s UI. Select the configured <a href=\"https:\/\/community.sailpoint.com\/t5\/Technical-White-Papers\/Custom-Connectors\/ta-p\/75122\">custom connector<\/a> as application type\u202fto tie it to the connector registry configuration and specifying any connection parameters through the configuration.\u00a0<\/li>\n\n\n\n<li>\u00a0Once the <a href=\"https:\/\/community.sailpoint.com\/mpomh84452\/attachments\/mpomh84452\/IIQ_docs\/457\/1\/8_1_IdentityIQ_Application_Configuration_Guide.pdf\">application<\/a> is onboarded, we can perform all the configured functionalities in it and verify back the results within the targeted external application.\u00a0\u00a0<\/li>\n\n\n\n<li>Alternatively, <a href=\"https:\/\/community.sailpoint.com\/mpomh84452\/attachments\/mpomh84452\/IIQ_docs\/457\/1\/8_1_IdentityIQ_Application_Configuration_Guide.pdf\">Application<\/a> <a href=\"https:\/\/www.sailpoint.com\/es\/solutions\/connectors-and-integrations\/\">connector<\/a> can be tested from the integration console (run\u202f<strong>iiq integration<\/strong>\u202ffrom the [<strong>IdentityIQ\u202fInstallation Directory]\/WEB-INF\/bin<\/strong> directory).\u00a0\u00a0<\/li>\n\n\n\n<li>This console can be used to test the various features of your connector including <a href=\"https:\/\/documentation.sailpoint.com\/identityiq\/help\/appmgmt\/aggregation.html#:~:text=Aggregation%20is%20the%20process%20by,your%20enterprise%20systems%20into%20IdentityIQ.\">Aggregation<\/a> and <a href=\"https:\/\/documentation.sailpoint.com\/identityiq\/help\/provisioning\/provisioningoverview.html#:~:text=Provisioning%20requests%20can%20be%20created,in%20the%20associated%20native%20applications.\">Provisioning<\/a>.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>The following presentation gives you clear understanding of <a href=\"https:\/\/community.sailpoint.com\/t5\/Technical-White-Papers\/Custom-Connectors\/ta-p\/75122\">custom connector<\/a> development in detail.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"ENH iSecure SailPoint IdentityIQ Custom Connector Development Presentation\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/LYQ8YzcE1UY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Now let\u2019s have a demo on building <a href=\"https:\/\/community.sailpoint.com\/t5\/Technical-White-Papers\/Custom-Connectors\/ta-p\/75122\">custom connector<\/a>, deploying it into <a href=\"https:\/\/www.sailpoint.com\/products\/identityiq\/\">SailPoint IdentityIQ<\/a> and using it.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"ENH iSecure SailPoint IdentityIQ Custom Connector Development Demo\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/0ayf8Vh8RAo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Please subscribe to our social media and stay updated with latest technology content. Thanks!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Connectivity is critical to successful IAM deployments. SailPoint is committed to providing design, configuration, troubleshooting and best practice information to deploy and maintain connectivity to target systems. SailPoint IdentityIQ enables you to manage and govern access for digital identities across various applications in your environment. Connectors are the bridges that IdentityIQ uses to communicate [&hellip;]<\/p>\n","protected":false},"author":32,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,8,14,16],"tags":[208,207,127,62,10,13,29,85,209,11],"class_list":["post-1446","post","type-post","status-publish","format-standard","hentry","category-cyber-security","category-identity-governance","category-sailpoint","category-technology","tag-connectors","tag-custom-connector","tag-iam","tag-identity-governance","tag-identity-iq","tag-identity-management","tag-iiq","tag-integrations","tag-openconnector","tag-sailpoint"],"_links":{"self":[{"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/posts\/1446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/comments?post=1446"}],"version-history":[{"count":5,"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/posts\/1446\/revisions"}],"predecessor-version":[{"id":1452,"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/posts\/1446\/revisions\/1452"}],"wp:attachment":[{"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/media?parent=1446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/categories?post=1446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/tags?post=1446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}