November 24, 2023

OIC3 Connectivity Agent for Hybrid Integrations

In one my previous blog I discussed about Private Endpoint that allows to connect to private resources that resides in Virtual Cloud Network(VCN).

But currently Private Endpoint has some limitations such as - 

  • Not all adapters support Private Endpoint
  • The VCN with private resources must be in same region as Oracle Integration Instance
  • There can be only one Private endpoint per integration Instance connecting to only one subnet.
In such scenarios Oracle Integration Connectivity agent is a solution for hybrid integrations. It works as a bridge between Oracle Integration and on-premises application. Using the connectivity agent, you can create hybrid integrations and exchange messages between applications in private or on-premises networks and Oracle Integration. 

Agent can either be installed on OCI or behind the firewall on the same network as the on-premises applications.

Agent in OCI

Connect to applications running on On-Premises Data Center through Oracle Integration Cloud, without requiring traffic routing through the public internet.

This scenario uses as OIC connectivity agent to communicate with the On-Premises Data Center application. The OIC Connectivity agent is installed on an Oracle Cloud Infrastructure Compute instance on a private subnet of a VCN. The agent communicates with OIC integration through a service gateway on one side and with the application running on On-Premises Data Center on the other side through a dynamic routing gateway (DRG) and FastConnect Private Peering or VPN.

The following diagram illustrates this architecture









Agent in customer DC

Connect to applications running on On-Premises Data Center through Oracle Integration Cloud, traffic routing through the public internet.

This scenario uses as OIC connectivity agent to communicate with the On-Premises Data Center application. The OIC Connectivity agent is installed on On-Premises Data Center on a DMZ Network. The agent communicates with OIC integration through public internet and with the application running on On-Premises Data Center on the other side by allowing internal network traffic.

The following diagram illustrates this architecture









In this blog we will see how to install a OIC agent on a compute VM on OCI to enable onprem connectivity but the steps remain same even if you have install the agent on customer DC.

Configure Compute Instance

Navigate to Compute and click on Instances.














Compartment in which you want to create an instance and click Create Instance








In the Create Instance dialog, Enter the Name and choose the availability domain













Choose Image and shape












 Choose VCN and Subnet












 Add SSH keys : You can either choose to Generate a key pair or upload a public key that you already have. If your are generating a key pair,  Download the keys so that you can connect to the instance using SSH. Please note it will not be shown again. The public key is used while creating the instance and the private key is used while connecting to the instance.











Leave everything else default and click on Create













 After a few minutes, we can see the instance have created











We can access this Instance created using PuTTY (https://www.putty.org/) or WinSCP (https://winscp.net/). 

Download PuTTY  and WinSCP software from the location given above and Install on your machine. Once you Install the PuTTY on your machine, you can easily run PuTTYgen to convert the private key we saved while creating the instance. 

Open PuttyGen

















Load the existing private key file (.key downloaded while creating the compute)
















Save the Private key file (.ppk format RSA key)

Install OIC Agent

Login to Oracle Integration Console then navigate to Home >> Design >> Agents and click on Create to create an Agent group. Please note before we start with downloading Agent, we need to create an OIC Agent Group in OIC Console. 










In the Create agent group dialog, Enter the Name and click Create





















This action automatically creates an OAuth client application in Oracle Identity Cloud Service. The application name takes the following form: agent_group_name-instance_IDCS_name

Click on Download to download the Connectivity agent (which will be a zip file to be configured On-Prem/Cloud)








Hover over the agent group. Click Actions(...) icon, then select Download config. This step downloads a preconfigured InstallerProfile.cfg file to use during installation.  














Replace the InstallerProfile.cfg file in the agent zip(oic_conn_agent_installer.zip) with this preconfigured InstallerProfile.cfg file.













JDK 17 is the minimum version required for Oracle Integration 3. Download JDK 17 from link (Linux x64 Compressed Archive for Linux)

Next step is to copy the Agent and JDK file to the compute instance. 

We can access the Compute Instance created above using WinSCP and transfer the files.

Copy the public IP Address of Instance created


















Open WinSCP and paste the IP address as shown below and add a private SSH key.






 





Once Loggedin, move the Agent and JDK files to the compute instance.







Next step is to execute the Agent. Open PuTTY and paste the IP address as shown below and add a private SSH key.








































Now we are successfully connected to the instance








Make a Directory under opc directory and move the jdk file to that folder.

mkdir jdk

mv jdk-17.0.9_linux-x64_bin.tar.gz jdk

cd jdk









Extract the .tar file in the jdk Directory

tar -xvf jdk-17.0.9_linux-x64_bin.tar.gz













Similarly make another Directory under opc directory and move the agent file to that folder.

mkdir agent 

mv oic_conn_agent_installer.zip agent

cd agent 















Extract the .zip file in the agent Directory

unzip oic_conn_agent_installer.zip





























Open the InstallerProfile.cfg file and verify that it have details like OIC URL,Agent Group Identifier, IDCS URL, Client ID, Client Secret & Scope populated.

cat InstallerProfile.cfg





















Set the JAVA_HOME property to the location of the JDK installation. Also set the PATH property and verify using echo command. 

export JAVA_HOME=home/opc/jdk/jdk-17.0.9

export PATH=$JAVA_HOME/bin:$PATH

echo $JAVA_HOME

echo $PATH









Run the connectivity agent installer as a background process

nohup java -jar connectivityagent.jar &

Wait for a successful installation message to appear, then you can check the status of the Agent from OIC console.