Installing and Configuring the Database Application Tables Connector

The procedure to deploy the DBAT connector is divided across three stages namely preinstallation, installation, and postinstallation.

The procedure to install and configure the connector can be divided into the following stages:

Prerequisites for Installing the DBAT Connector

Prerequisite for the DBAT connector involves creating a target system user account and configuring the database.

Perform the following preinstallation procedures on your target system:

About Creating the Target System User Account for Connector Operations

Oracle Identity Manager uses a target system user account to provision to and reconcile data from the target system. For all target systems certified for this connector, the following are the minimum rights to be assigned to the target system user account:

  • For reconciliation: The user account must have permissions to run Select statements on the tables that must be managed by this connector.

  • For provisioning: The user account must have permissions to perform select, insert, update, and delete operations on the tables to be managed by this connector.

  • If you are configuring the connector to use custom stored procedures to perform connector operations, then the user account must have execute permissions on the relevant stored procedures.

See the target system documentation for the procedure to create a target system user account with the preceding permissions required for performing connector operations.

About Configuring IBM DB2 Running on IBM z/OS

During a provisioning operation, the connector runs Java stored procedures to perform the required action on the target system. If your IBM DB2 installation is running on IBM z/OS, then you must configure the WLM to enable the running of these stored procedures. See IBM z/OS documentation for detailed information about configuring the WLM.

About Configuring Oracle Database

Note:

This is an optional procedure. Perform this procedure on an Oracle database table only if you want an autoincrementing primary key.

At any time after creating the Oracle database table, you can set up an autoincrementing primary key column for that database table. To set the autoincrementing primary key, create a sequence, and then create a trigger that inserts a unique autogenerated number in the primary key field while inserting a new record into the parent table. The following is a trigger that you can use:

CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT ON table_name FOR EACH ROW
BEGIN
SELECT sequence_name.nextval INTO :new.primaty_Key_column_name FROM DUAL;
END;

Overview of Installing DBAT Connector

Yu can run the connector code locally in Oracle Identity Manager or remotely in a Connector Server.

Depending on where you want to run the generated connector, the connector provides the following installation options:

Installing the Connector in Oracle Identity Manager

In this scenario, you install the connector in Oracle Identity Manager using the Connector Installer.

Note:

  • In this guide, the term Connector Installer has been used to refer to the Connector Installer feature of the Oracle Identity Manager Administrative and User Console.

  • If this version of the connector has been installed earlier and you want to install it for another target system whose libraries need to be added, then:

    1. Download the connector bundle JAR file from the Oracle Identity Manager database by using the Download JARs utility.

    2. Extract the contents of the JAR file and copy the JDBC drivers for your target system to the lib directory. See the "JDBC drivers" row of Table 1-1 to determine the JDBC drivers for your target system.

    3. Run the Upload JARs utility to upload the JAR file to the Oracle Identity Manager database.

    4. Run the PurgeCache utility to clear content related to connector bundle JARs from the server cache. See Clearing Content Related to Connector Resource Bundles from the Server Cache for information about running the PurgeCache utility.

You must install the connector package (generated after running the DBAT Generator) by running the connector installer. To do so:

  1. Copy the unzipped connector package (generated in Discover the Schema and Generate the Connector) to the following directory:

    OIM_HOME/server/ConnectorDefaultDirectory

  2. Create a directory in OIM_HOME/ConnectorDefaultDirectory/targetsystems-lib with the same name as the installer package. For example:

    OIM_HOME/server/ConnectorDefaultDirectory/targetsystems-lib/dbat-11.1.1.6.0

    Copy the JDBC driver to this directory. See Table 1-1 to know the JDBC driver corresponding to your target system.

    Note:

    • If you are using Oracle Database or Oracle RAC as the target system, then no JDBC driver is needed. You can skip this step and proceed to the next.

    • During connector installation, all JDBC drivers located in the OIM_HOME/server/ConnectorDefaultDirectory/targetsystems-lib/dbat-11.1.1.6.0 directory are loaded into the Oracle Identity Manager database and then registered with the Database Application Tables connector.

      If this step is skipped for any reason, then you must manually copy the JDBC drivers into the lib directory of the connector JAR file, and then run the Oracle Identity Manager Upload JARs utility to post the connector JAR file to the Oracle Identity Manager database. See Migrating JARs and Resource Bundle in Oracle Fusion Middleware Developing and Customizing Applications for Oracle Identity Manager for information about running the Upload JARs utility.

  3. Log in to Oracle Identity System Administration.

  4. In the Manage Connector page, click Install.

  5. From the Connector List, select the name of the connector package (generated by running the DBAT Generator). This list displays the names and release numbers of connectors whose installation files you copy into the default connector installation directory in Step 1.

    If you have copied the installation files into a different directory, then:

    1. In the Alternative Directory field, enter the full path and name of that directory.

    2. To repopulate the list of connectors in the Connector List list, click Refresh.

    3. From the Connector List list, select the name of the connector package.

  6. Click Load.

  7. To start the installation process, click Continue.

    The following tasks are performed in sequence:

    1. Configuration of connector libraries

    2. Import of the connector XML files (Using Deployment Manager).

    3. Compilation of Adapter Definitions

    On successful completion of a task, a check mark is displayed for the task. If a task fails, then an X mark and a message stating the reason for failure are displayed. Depending on the reason for the failure, make the required correction and then perform one of the following steps:

    • Retry the installation by clicking Retry.

    • Cancel the installation and begin again from Step 1.

    If all three tasks of the connector installation process are successful, then a message indicating successful installation is displayed.

When you run the Connector Installer, it processes the script in the DBAT-CI.xml file located in the configuration directory. This file is listed in Table C-1.

About Deploying the Connector Bundle in a Connector Server

You can deploy the Database Application Tables connector either locally in Oracle Identity Manager or remotely in the Connector Server. A connector server is a separate Oracle application that enables remote execution of an Identity Connector, such as the Database Application Tables connector. Running a connector on the connector server allows you to pass provisioning and reconciliation requests through the firewalls in a manner defined by the connector server.

The procedure to deploy the connector bundle in a connector server is divided into the following stages:

Installing and Configuring the Connector Server

Connector servers are available in two implementations:

  • As a .Net implementation that is used by Identity Connectors implemented in .Net framework

  • As a Java Connector Server implementation that is used by Java-based Identity Connectors

The Database Application Tables connector is implemented in Java, so you can deploy this connector to a Java Connector Server.

Use the following steps to install and configure the Java Connector Server:

Note:

Before you deploy the Java Connector Server, ensure that you install the JDK or JRE on the same computer where you are installing the Java Connector Server and that your JAVA_HOME or JRE_HOME environment variable points to this installation.

  1. Create a new directory on the computer where you want to install the Java Connector Server.

    Note:

    In this section, CONNECTOR_SERVER_HOME represents this directory.

  2. Unzip the Java Connector Server package in the new directory created in Step 1. You can download the Java Connector Server package from Oracle Technology Network.
  3. Open the ConnectorServer.properties file located in the conf directory. In the ConnectorServer.properties file, set the following properties, as required by your deployment.
    Property Description

    connectorserver.port

    Port on which the Java Connector Server listens for requests. Default is: 8759.

    connectorserver.bundleDir

    Directory where the connector bundles are deployed. Default is: bundles.

    connectorserver.libDir

    Directory in which to place dependent libraries.

    Default is: lib.

    connectorserver.usessl

    If set to true, the Java Connector Server uses SSL for secure communication. Default is: false.

    If you specify true, use the following options on the command line when you start the Java Connector Server:

    • -Djavax.net.ssl.keyStore

    • -Djavax.net.ssl.keyStoreType (optional)

    • -Djavax.net.ssl.keyStorePassword

    connectorserver.ifaddress

    Bind address. To set this property, uncomment it in the file (if necessary). The bind address can be useful if there are more NICs installed on the computer.

    connectorserver.key

    Java Connector Server key.

  4. Set the properties in the ConnectorServer.properties file, as follows:
    • To set the connectorserver.key, run the Java Connector Server with the /setKey option.

      Note:

      For more information, on running the Java Connector Server, see Running the Connector Server.

    • For all other properties, edit the ConnectorServer.properties file manually.

  5. The conf directory also contains the logging.properties file, which you can edit if required by your deployment.

    Note:

    Oracle Identity Manager has no built-in support for connector servers, so you cannot test your configuration.

  6. Copy the connector bundle (the bundle/org.identityconnectors.databasetable-1.2.2 file of the installation media) to the /bundle directory of the connector server. See Table C-1 for information about the connector bundle and other files in the installation media.
  7. Copy the JDBC driver for the target system that you are using to the /lib directory of the connector server. See Table 1-1 for information about the relevant JDBC driver for your target system.

Running the Connector Server

To run the Java Connector Server on Microsoft Windows, Solaris, Linux, see Using the Java Connector Server in Oracle Fusion Middleware Developing and Customizing Applications for Oracle Identity Manager.

Installing the Connector on the Connector Server

To install the connector into the Java connector server, see Installing the Connector in the Connector Server in Oracle Fusion Middleware Developing and Customizing Applications for Oracle Identity Manager.

Postinstallation

These are the tasks that you must perform after installing the DBAT connector.

This section discusses the following postinstallation procedures:

Configuring the IT Resource for the Target System

The IT resource for the target system contains connection information about the target system. Oracle Identity Manager uses this information during provisioning and reconciliation.

When you run the DBAT Generator, the IT resource corresponding to this connector is automatically created in Oracle Identity Manager. You must specify values for the parameters of this IT resource as follows:

  1. Log in to Oracle Identity System Administration.
  2. In the left pane, under Configuration, click IT Resource.
  3. In the IT Resource Name field on the Manage IT Resource page, enter the name of the IT resource, and then click Search. The name of the IT resource is the value of the itResourceName property in the DBATConfiguration.groovy file.
  4. Click the edit icon for the IT resource.
  5. From the list at the top of the page, select Details and Parameters.
  6. Specify values for the parameters of the IT resource. Table 3-1 describes each parameter.

    Note:

    The IT resource parameters (except for Password) described in Table 3-1 are pre-populated with values you have specified for the corresponding properties while performing the procedure described in Overview of Configuring the Groovy File. You must specify a value for the Password IT resource parameter. For the rest of the IT resource parameters, you can verify the existing values and make changes if required.

    Table 3-1 IT Resource Parameters

    Parameter Description

    jdbcDriver

    JDBC driver class name.

    jdbcUrlTemplate

    JDBC URL template of the target database.

    The value that you specify depends on the database product that you are using. See Determining the Value for the jdbcUrlTemplate Property for more information.

    host

    Host name or IP address of the computer hosting the target system.

    Sample value: myhost

    port

    Enter the number of the port at which the target system database is listening.

    database

    Name of the target database.

    user

    User ID of the database user account that Oracle Identity Manager uses to connect to the target system.

    password

    Password of the database user account that Oracle Identity Manager uses to connect to the target system.

    Configuration Lookup

    Name of the lookup definition that holds connector configuration entries that are used during connector operations.

    datasource

    Data source name for the data source naming properties.

    Sample Value: jdbc/operationsDB

    jndiProperties

    Properties used to establish a connection with the target system by using JDBC drivers, enable additional connection properties, or look up a DataSource using JNDI.

    Sample value: "java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory","java.naming.provider.url=t3://acme.com:15000","java.naming.security.principal=weblogic","java.naming.security.credentials=weblogic1"

    table

    Name of the parent table or view that contains user records.

    keyColumn

    Name of the column that uniquely identifies each row in the parent table.

    passwordColumn

    Name of the column in the parent table that holds the passwords of the target system records. This is an optional parameter.

    Note: The value for this parameter is the same as the value specified for the passwordColumn property in the Config entry. You cannot change the value in the IT resource. See Table 2-1 for more information about the passwordColumn property.

    changeLogColumn

    Name of the column where the last update-related, non-decreasing, value is stored. Can be a number or a timestamp.

    The data type of this column can be any of the data types supported by the target system. However, if you are using Oracle Database, then data types such as BLOB, CLOB, and LONG are not supported. See About Supported Data Types for information about data types supported for your target system.

    The values in this column are used during incremental reconciliation to determine the newest or most youngest record reconciled from the target system.

    Note: You must specify a value for this property if you want to perform incremental reconciliation.

    quoting

    Column quoting property (such as None, Single, Double, Back, or Brackets) that best fits your target system database.

    Column names are displayed between single quotes, double quotes, back quotes, or brackets in the generated SQL when accessing the database.

    enableEmptyString

    Set to true if you want to enable support for writing an empty string instead of a NULL value.

    Set to false, if empty strings must be written as NULL values.

    Note: This property can be applied only to mandatory String attributes.

    rethrowAllSQLExceptions

    Set to false, if SQL exceptions with a zero (0x00) error code must be considered a success. In other words, SQL exceptions with the zero error code are caught and suppressed by the SQL statement. Otherwise, set to true.

    nativeTimestamps

    If the value of this property is set to false, then timestamp data is read as Strings, which can cause a loss of time in milliseconds.

    If the value of this property is set to true, then timestamp data is retrieved as java.sql.Timestamp type, and then the connector performs the conversion.

    allNative

    If value of this property is false, then attribute data is converted to Strings by using the JDBC driver.

    Set the value of this property to true to use the appropriate JDBC types and to force the connector to perform the conversion.

    The new Date format and Timestamps format invalidate this setup.

    validConnectionQuery

    If no value is specified for this property, then the connection is validated by switching the auto commit mode. For example, you might have the following query, which might be more efficient for some databases:

    SELECT 1 FROM DUMMY

    relationTables

    A comma-separated list of child table names when user data is spread across parent and child tables.

    statusColumn

    Name of the column in the target system that holds the status of a user record. You must specify a value for this attribute only if both the following conditions are true:

    - You want to perform the enable user account or disable user account provisioning operations.

    - There exists a column in the target system that holds the status of a user record.

    customizedQuery

    A WHERE clause in a SQL query specifying the subset of newly added or modified records that you want to reconcile. The WHERE clause can contain relations to other tables or views.

    Connector Server

    Name of the connector server IT resource.

    dateFormat

    Allows the user to format how date data is converted to strings.

    • If you want to handle date data as a date editor, then do not enter any value for this parameter.

    • If you want to handle date data as text, then you must enter the date format.

    Specifying a value for this parameter invalidates the allNative parameter.

    See Configuring the Connector for Date Format for configuration procedure for handling date data as date editor or text.

    enableValue

    Value used on the target system that depicts that a user record is in the enabled status.

    disable value

    Value used on the target system that depicts that a user record is in the disabled status.

    timestampFormat

    Allows the user to format how timestamp data is converted to strings. Specifying this property invalidates the nativeTimestamps and allNative properties.

  7. To save the values, click Update.

Configuring the Connector for Date Format

The connector enables you to configure the manner in which date data must be handled. You can handle date data either as a date editor or text.

To handle date data as a date editor:

  1. Ensure that no value is entered for the dateFormat parameter of the IT resource.

  2. Log in to the Design Console.

  3. In the process form, change all date parameters to denote date editor.

  4. Change the process form field data type from string to date.

  5. In the Lookup.RESOURCE.UM.ProvAttrMap and Lookup.RESOURCE.UM.ReconAttrMap lookup definitions, add the [DATE] tag for all lookup entries corresponding to date fields.

  6. In the resource object, update the date fields by setting the reconciliation data field type to Date.

  7. On the Reconciliation Field Mappings tab of the process definition, add field mappings for date fields.

  8. On the Object Reconciliation tab of the resource object, click Create Reconciliation Profile to copy changes made to the resource object into the MDS.

To handle date data as text:

  1. Ensure that you enter a value for the dateFormat parameter of the IT resource.
  2. Log in to the Design Console.
  3. Ensure that the Lookup.RESOURCE.UM.ProvAttrMap and Lookup.RESOURCE.UM.ReconAttrMap lookup definitions do not include the [DATE] tag for lookup entries corresponding to date fields.
  4. In the resource object, verify that the date fields are of String data type. If they are not, then set the reconciliation data field type of the date fields to String.
  5. On the Reconciliation Field Mappings tab of the process definition, verify that the field mappings for date fields contain String data type and not Date.

Configuring the Connector for a Target System with an Autoincrement Primary Key

Note:

Perform the procedure described in this section only if both the conditions are true:

  • You have configured your target system as a target resource.

  • The key column of the target system is configured with an autoincrement option.

Perform the following steps to configure the connector for a target system with an autoincrement primary key:

  • By default, the key column of the target system is mapped to the OIM User Login field in the reconciliation rule. Before you perform any connector operation, you can modify the reconciliation rule to map the OIM User Login field to a different target system column.

  • If the key column of the child table has been configured with the autoincrement option, then modify the child form by removing the 'required=true' property for the key field of the child table by using the Design Console.

  • If the prepopulate adapter contains a mapping for the key column, then either disable the prepopulate adapter or modify it to remove the connector key column by using the Design Console.

About Configuring Oracle Identity Manager

Note:

Perform the procedures described in this section only if you are using the connector in the target resource configuration mode.

You must create a UI form and an application instance for the resource against which you want to perform reconciliation and provisioning operations. In addition, you must run entitlement and catalog synchronization jobs. These procedures are described in the following sections:

Creating and Activating a Sandbox

See Managing Sandboxes in Oracle Fusion Middleware Developing and Customizing Applications for Oracle Identity Manager for instructions on creating and activating a sandbox.

Creating a New UI Form

See Managing Forms in Oracle Fusion Middleware Administering Oracle Identity Manager. for instructions on creating a new UI form. While creating the UI form, ensure that you select the resource object corresponding to the DBAT connector that you want to associate the form with. In addition, select the Generate Entitlement Forms check box.

Creating an Application Instance

See Managing Application Instances in Oracle Fusion Middleware Administering Oracle Identity Manager for instructions on creating an application instance. While creating the application instance, ensure that you select the form created in Creating a New UI Form.

After creating the application instance, you must publish it to an organization to make the application instance available for requesting and subsequent provisioning to users. However, as a best practice, perform the following procedure before publishing the application instance:

  1. In the System Administration console, deactivate the sandbox.
  2. Log out of the System Administration console.
  3. Log in to the Self Service console and activate the sandbox that you deactivated in Step 1.
  4. In the Catalog, check for the Application Instance UI (form fields) and ensure that it appears correctly.
  5. Publish the application instance only if everything appears correctly. Otherwise, fix the issues and then publish the application instance.

See Managing Organizations Associated With Application Instances in Oracle Fusion Middleware Administering Oracle Identity Manager for instructions on publishing an application instance to an organization.

Publishing a Sandbox

Before you publish a sandbox, perform the following procedure as a best practice to validate all sandbox changes made till this stage as it is hard to revert changes once a sandbox is published:

  1. In the System Administration console, deactivate the sandbox.
  2. Log out of the System Administration console.
  3. Log in to the Self Service console using the xelsysadm user credentials and then activate the sandbox that you deactivated in Step 1.
  4. In the Catalog, ensure that the DBAT application instance form appears with correct fields.
  5. Publish the sandbox. See Publishing a Sandbox in Oracle Fusion Middleware Developing and Customizing Applications for Oracle Identity Manager for instructions on publishing a sandbox.

Harvesting Entitlements and Sync Catalog

To harvest entitlements and sync catalog:

  1. Run the scheduled jobs for lookup field synchronization listed in Scheduled Job for Lookup Field Synchronization.
  2. Run the Entitlement List scheduled job to populate Entitlement Assignment schema from child process form table. See Predefined Scheduled Tasks in Oracle Fusion Middleware Administering Oracle Identity Manager for more information about this scheduled job.
  3. Run the Catalog Synchronization Job scheduled job. See Predefined Scheduled Tasks in Oracle Fusion Middleware Administering Oracle Identity Manager for more information about this scheduled job.

Localizing Field Labels in UI Forms

To localize a field label that is added to the UI forms::

  1. Create a properties file (for example, DBAT_ja.properties) containing localized versions for the column names in your target system (to be displayed as text strings for GUI elements and messages in the Administrative and User Console).

  2. Log in to Oracle Enterprise Manager.

  3. In the left pane, expand Application Deployments and then select oracle.iam.console.identity.sysadmin.ear.

  4. In the right pane, from the Application Deployment list, select MDS Configuration.

  5. On the MDS Configuration page, click Export and save the archive to the local computer.

  6. Extract the contents of the archive, and open one of the following files in a text editor:

    • For Oracle Identity Manager 11g Release 2 PS2 (11.1.2.2.0) or later releases:

      SAVED_LOCATION\xliffBundles\oracle\iam\ui\runtime\BizEditorBundle_en.xlf

    • For releases prior to Oracle Identity Manager 11g Release 2 PS2 (11.1.2.2.0):

      SAVED_LOCATION\xliffBundles\oracle\iam\ui\runtime\BizEditorBundle.xlf

  7. Edit the BizEditorBundle.xlf file in the following manner:

    1. Search for the following text:

      <file source-language="en"  
      original="/xliffBundles/oracle/iam/ui/runtime/BizEditorBundle.xlf"
      datatype="x-oracle-adf">
      
    2. Replace with the following text:

      <file source-language="en" target-language="LANG_CODE"
      original="/xliffBundles/oracle/iam/ui/runtime/BizEditorBundle.xlf"
      datatype="x-oracle-adf">
      

      In this text, replace LANG_CODE with the code of the language that you want to localize the form field labels. The following is a sample value for localizing the form field labels in Japanese:

      <file source-language="en" target-language="ja"
      original="/xliffBundles/oracle/iam/ui/runtime/BizEditorBundle.xlf"
      datatype="x-oracle-adf">
      
    3. Search for the application instance code. This procedure shows a sample edit for Database Application Tables application instance. The original code is:

      <trans-unit id="${adfBundle['oracle.adf.businesseditor.model.util.BaseRuntimeResourceBundle']['persdef.sessiondef.oracle.iam.ui.runtime.form.model.user.entity.userEO.UD_ACMEDBAP_APP_DFLT_HOME__c_description']}">
      <source>APP_DFLT_HOME</source>
      <target/>
      </trans-unit>
      <trans-unit id="sessiondef.oracle.iam.ui.runtime.form.model.ACMEFORM.entity.ACMEFORMEO.UD_ACMEDBAP_APP_DFLT_HOME__c_LABEL">
      <source>APP_DFLT_HOME</source>
      <target/>
      </trans-unit>
      
    4. Open the properties file created in Step 1 and get the value of the attribute, for example, global.udf.D_ACMEDBAP_APP_DFLT_HOME=\u4567d.

    5. Replace the original code shown in Step 7.7.c with the following:

      <trans-unit id="${adfBundle['oracle.adf.businesseditor.model.util.BaseRuntimeResourceBundle']['persdef.sessiondef.oracle.iam.ui.runtime.form.model.user.entity.userEO.UD_ACMEDBAP_APP_DFLT_HOME__c_description']}">
      <source>APP_DFLT_HOME</source>
      <target>\u4567d</target>
      </trans-unit>
      <trans-unit id="sessiondef.oracle.iam.ui.runtime.form.model.ACMEFORM.entity.ACMEFORMEO.UD_ACMEDBAP_APP_DFLT_HOME__c_LABEL">
      <source>APP_DFLT_HOME</source>
      <target>\u4567d</target>
      </trans-unit>
      
    6. Repeat Steps 7.7.a through 7.7.d for all attributes of the process form.

    7. Save the file as BizEditorBundle_LANG_CODE.xlf. In this file name, replace LANG_CODE with the code of the language to which you are localizing.

      Sample file name: BizEditorBundle_ja.xlf.

  8. Repackage the ZIP file and import it into MDS.

    See Also:

    Deploying and Undeploying Customizations in Oracle Fusion Middleware Developing and Customizing Applications for Oracle Identity Manager for more information about exporting and importing metadata files

  9. Log out of and log in to Oracle Identity Manager.

Clearing Content Related to Connector Resource Bundles from the Server Cache

When you deploy the connector, the resource bundles are copied from the resources directory on the installation media into the Oracle Identity Manager database. Whenever you add a new resource bundle to the connectorResources directory or make a change in an existing resource bundle, you must clear content related to connector resource bundles from the server cache.

To clear content related to connector resource bundles from the server cache you can either restart Oracle Identity Manager or run the PurgeCache utility. The following is the procedure to clear the server cache by running the PurgeCache utility:

  1. In a command window, switch to the OIM_HOME/server/bin directory.
  2. Enter one of the following commands:
    • On Microsoft Windows: PurgeCache.bat All

    • On UNIX: PurgeCache.sh All

    When prompted, enter the user name and password of an account belonging to the SYSTEM ADMINISTRATORS group. In addition, you are prompted to enter the service URL in the following format:

    t3://OIM_HOST_NAME:OIM_PORT_NUMBER
    

    In this format:

    • Replace OIM_HOST_NAME with the host name or IP address of the Oracle Identity Manager host computer.

    • Replace OIM_PORT_NUMBER with the port on which Oracle Identity Manager is listening.

    You can use the PurgeCache utility to purge the cache for any content category.

Managing Logging

Managing logging is discussed in the following sections:

Understanding Log Levels

Oracle Identity Manager release uses Oracle Java Diagnostic Logging (OJDL) for logging. OJDL is based on java.util.Logger. To specify the type of event for which you want logging to take place, you can set the log level to one of the following:

  • SEVERE.intValue()+100

    This level enables logging of information about fatal errors.

  • SEVERE

    This level enables logging of information about errors that might allow Oracle Identity Manager to continue running.

  • WARNING

    This level enables logging of information about potentially harmful situations.

  • INFO

    This level enables logging of messages that highlight the progress of the application.

  • CONFIG

    This level enables logging of information about fine-grained events that are useful for debugging.

  • FINE, FINER, FINEST

    These levels enable logging of information about fine-grained events, where FINEST logs information about all events.

These log levels are mapped to ODL message type and level combinations as shown in Table 3-2.

Table 3-2 Log Levels and ODL Message Type:Level Combinations

Log Level ODL Message Type:Level

SEVERE.intValue()+100

INCIDENT_ERROR:1

SEVERE

ERROR:1

WARNING

WARNING:1

INFO

NOTIFICATION:1

CONFIG

NOTIFICATION:16

FINE

TRACE:1

FINER

TRACE:16

FINEST

TRACE:32

The configuration file for OJDL is logging.xml, which is located at the following path:

DOMAIN_HOME/config/fmwconfig/servers/OIM_SERVER/logging.xml

Here, DOMAIN_HOME and OIM_SERVER are the domain name and server name specified during the installation of Oracle Identity Manager.

Enabling Logging

To enable logging in Oracle WebLogic Server:

  1. Edit the logging.xml file as follows:

    1. Add the following blocks in the file:

      <log_handler name='dbat-handler' level='[LOG_LEVEL]' class='oracle.core.ojdl.logging.ODLHandlerFactory'>
      <property name='logreader:' value='off'/>
           <property name='path' value='[FILE_NAME]'/>
           <property name='format' value='ODL-Text'/>
           <property name='useThreadName' value='true'/>
           <property name='locale' value='en'/>
           <property name='maxFileSize' value='5242880'/>
           <property name='maxLogSize' value='52428800'/>
           <property name='encoding' value='UTF-8'/>
         </log_handler>
      
      <logger name="ORG.IDENTITYCONNECTORS.DATABASETABLE" level="[LOG_LEVEL]" useParentHandlers="false">
           <handler name="dbat-handler"/>
           <handler name="console-handler"/>
         </logger>
      
    2. Replace both occurrences of [LOG_LEVEL] with the ODL message type and level combination that you require. Table 3-2 lists the supported message type and level combinations.

      Similarly, replace [FILE_NAME] with the full path and name of the log file in which you want log messages to be recorded.

      The following blocks show sample values for [LOG_LEVEL] and [FILE_NAME]:

      <log_handler name='dbat-handler' level='NOTIFICATION:1' class='oracle.core.ojdl.logging.ODLHandlerFactory'>
      <property name='logreader:' value='off'/>
           <property name='path' value='/<%OIM_DOMAIN%>/servers/oim_server1/logs/DBATlogs.log'/>
           <property name='format' value='ODL-Text'/>
           <property name='useThreadName' value='true'/>
           <property name='locale' value='en'/>
           <property name='maxFileSize' value='5242880'/>
           <property name='maxLogSize' value='52428800'/>
           <property name='encoding' value='UTF-8'/>
         </log_handler>
       
      <logger name="ORG.IDENTITYCONNECTORS.DATABASETABLE" level="NOTIFICATION:1" useParentHandlers="false">
           <handler name="dbat-handler"/>
           <handler name="console-handler"/>
         </logger>
      

    With these sample values, when you use Oracle Identity Manager, all messages generated for this connector that are of a log level equal to or higher than the NOTIFICATION:1 level are recorded in the specified file.

  2. Save and close the file.

  3. Set the following environment variable to redirect the server logs to a file:

    For Microsoft Windows:

    set WLS_REDIRECT_LOG=FILENAME
     

    For UNIX:

    export WLS_REDIRECT_LOG=FILENAME
     

    Replace FILENAME with the location and name of the file to which you want to redirect the output.

  4. Restart the application server.

Using Lookup Definitions

Note:

This is an optional procedure. Perform this procedure only if you want to use lookup definitions as the input source for some of the fields on the process form during provisioning operations.

If you are configuring the connector for provisioning, then you may want to create lookup fields on the process form. For example, during provisioning operations, you may want to select the Country Code value from a lookup field. After deploying the connector, you can set up this field as a lookup field by specifying an input source for the field.

You can use a lookup definition as the input source. For example, you can create a lookup definition containing country codes and then set up the lookup definition as the input source for the Country field. If you want to use a lookup definition as the input source, then perform the following steps:

See Also:

Adding or Editing Fields in Data Sets in Oracle Fusion Middleware Administering Oracle Identity Manager for detailed information about each of the following steps

  1. Log in to the Design Console.

  2. Create an empty lookup definition that must be used as an input source. Skip this step if you want to use the Lookup.DBAT.Example lookup definition, which is created after you install the connector.

  3. Update the process form to change the data field from text to lookup field. To do so:

    1. Expand Development Tools and double-click Form Designer.

    2. Search for and open the process form that contains the required information to provision resources to a target system user account. The name of the process form is in the following format:

      UD_[RESOURCE]_[TABLE_ALIAS]

    3. Click Create New Version.

      A new version of the form is created for editing.

    4. On the Additional Columns tab, in the row for the data field that you want to set up as a lookup field, change the value of the Field Type column from TextField to LookupField.

    5. On the Properties tab, select the data field (whose Field Type was changed from TextField to Lookup Field in the preceding step), and then click Add Property.

    6. In the Add Property dialog box:

      • From the Property Name list, select Lookup Code.

      • In the Property Value field, enter the name of the lookup definition to be used as the input source (the one used in Step 2).

        Note:

        If you want to set up the lookup field for entitlement, then from the Property Name list, select Entitlement and set its property value to true.

    7. Click the Save icon and then close the dialog box.

    8. Click the Save icon on the process form.

    9. Click Make Version Active.

    10. You must create and activate a new version of parent form as well to include the latest version of the child form.

  4. Update the lookup entry to include information that specifies the field is a lookup field. To do so:

    1. Expand Administration and double-click Lookup Definition.

    2. Search for and open the Lookup.RESOURCE.UM.ProvAttrMap lookup definition.

    3. In the lookup entries, search for the field name in the Code Key column that has been changed to a lookup field, and then suffix the field name with [LOOKUP]. This denotes that the process form field is a lookup field.

    4. Click the Save icon.

    5. Repeat Steps 4.4.b through 4.4.d to suffix the corresponding Code Key entry with [LOOKUP] in the lookup definition that holds reconciliation attribute mappings:

      While performing Step 4.4.c, search for and open the Lookup.RESOURCE.UM.ReconAttrMap lookup definition.

This completes the procedure for setting up a lookup definition as an input source.

Setting Up Process Form Fields as Entitlements

If a child process form field has to be configured as a entitlement, then you must associate it with the corresponding lookup definition, and set the entitlement property to true. If the corresponding lookup definition does not exist, then you must create it manually. See Marking Entitlement Attributes on Child Process Forms in Oracle Fusion Middleware Administering Oracle Identity Manager for more information.

Configuring Process Form Fields as Date Fields

By default, after metadata generation, all date fields are displayed as text fields on the process form. If you want to display these fields as a Date picker, then you must perform the following steps:

Note:

See Step 3: Modify Connector Configuration Page in Oracle Fusion Middleware Administering Oracle Identity Manager for detailed information on performing each of the steps discussed in this procedure.

  1. In the Design Console, search for and open the process form containing the fields that must be displayed as Date picker.
  2. On the Reconciliation Field Mappings tab, delete the field mappings for the date field that is being displayed as String.
  3. In the parent form, delete the entries corresponding to the field that must be displayed as the Date picker.
  4. In the Resource Object, change the reconciliation field type from String to Date.
  5. In the process form, on the Reconciliation Field Mappings tab, add the field mapping for the date field.

About Configuring Secure Communication Between the Target System and Oracle Identity Manager

Note:

It is recommended that you perform the procedure described in this section to secure communication between the target system and Oracle Identity Manager.

The procedure to secure communication depends on the database that you are using:

Configuring Secure Communication Between IBM DB2 and Oracle Identity Manager

Note:

  • IBM DB2 version 9.1 Fix Pack 2 and later support secure communication over SSL.

  • Before configuring secure communication between IBM DB2 and Oracle Identity Manager, you must install the IBM Global Security Kit (GSKit).

    See the IBM DB2 documentation for more information about enabling SSL communication between IBM DB2 and a client system. In this context, the client is Oracle Identity Manager.

To configure secure communication between IBM DB2 and Oracle Identity Manager:

  1. Generate the certificate store by running the GSKit tool. To do so, run one of the following commands:

    For IBM DB2 version 9.5:

    GSKCAPICMD -keydb -create -db "KEY_DATABASE_LOCATION" -pw KEY_DATABASE_PASSWORD
    

    For versions other than IBM DB2 9.5:

    GSKCAPICMD -keydb -create -db "KEY_DATABASE_LOCATION" -pw KEY_DATABASE_PASSWORD -stash
    

    In the command, replace:

    • GSKCAPICMD with the full path and name of the GSKit tool. For example, for the target system running on a 64-bit Microsoft Windows platform, replace GSKCAPICMD with C:\Program Files (x86)\IBM\GSK8\bin\gsk8capicmd_64.exe.

    • KEY_DATABASE_LOCATION with the full path and name of the key database to be created.

    • KEY_DATABASE_PASSWORD with the password for the key database.

    The following is a sample command that generates a certificate store (db2oim.kdb):

    C:\DB2>"\Program Files\IBM\gsk8\bin\gsk8capicmd_64.exe" -keydb -create -db "c:\db2\db2oim.kdb" -pw welcome1 -stash

  2. Generate the self-signed certificate by running the following command:
    GSKCAPICMD -cert -create -db  "KEY_DATABASE_LOCATION" -pw KEY_DATABASE_PASSWORD -label "CERT_LABEL" -dn "DISTINCT_NAME"
    

    In the command, replace:

    • GSKCAPICMD with the full path and name of the GSKit tool. For example, for the target system running on a 64-bit Microsoft Windows platform, replace GSKCAPICMD with C:\Program Files (x86)\IBM\GSK8\bin\gsk8capicmd_64.exe.

    • KEY_DATABASE_LOCATION with the full path and name of the key database to store the certificate.

    • KEY_DATABASE_PASSWORD with the password for the key database.

    • CERT_LABEL with a label that is used to uniquely identify the certificate.

    • DISTINCT_NAME with the distinguished name that uniquely identifies the certificate.

    The following is a sample command that generates a self-signed certificate:

    C:\DB2>"\Program Files\IBM\gsk8\bin\gsk8capicmd_64.exe" -cert -create -db "c:\db2\db2oim.kdb" -pw welcome1 -label "db2oim" -dn "CN=example.com,O=org,OU=myorg,L=myLocation,ST=CA,C=USA"

  3. Export the server certificate by running the following command:
    GSKCAPICMD -cert -extract -db "KEY_DATABASE_LOCATION" -pw KEY_DATABASE_PASSWORD -label "CERT_LABEL" -target "LOCATION" -format FORMAT -fips
    

    In the command, replace:

    • GSKCAPICMD with the full path and name of the GSKit tool. For example, for the target system running on a 64-bit Microsoft Windows platform, replace GSKCAPICMD with C:\Program Files (x86)\IBM\GSK8\bin\gsk8capicmd_64.exe.

    • KEY_DATABASE_LOCATION with the full path and name of the key database.

    • KEY_DATABASE_PASSWORD with the password for the key database.

    • CERT_LABEL with the label that is used to uniquely identify the certificate to be extracted.

    • LOCATION with the full path and name of the file to which the certificate is to be extracted.

    • FORMAT with the certificate format, which can be either ascii or binary.

    The following is a sample command that exports the server certificate to db2oim.arm:

    C:\DB2>"\Program Files\IBM\gsk8\bin\gsk8capicmd_64.exe" -cert -extract -db "c:\db2\db2oim.kdb" -pw welcome1 -label "db2oim" -target "c:\db2\db2oim.arm" -format ascii -fips

  4. Configure the database to enable both SSL and TCP/IP communication protocols by running the following command:
    db2set.exe DB2COMM=SSL,TCPIP 
    
  5. Check protocols by using db2set.exe to validate that the SSL and TCP/IP protocols are enabled in DB2COMM.

    DB2PROCESSORS=0,1

    DB2INSTPROF=C:\ProgramData\IBM\DB2\DB2COPY1

    DB2COMM=SSL,TCPIP

  6. If you are using IBM DB2 Version 9.5, then create the SSLconfig.ini file, and then add and set values for the SSL parameters. See the IBM DB2 Version 9.5 documentation for more information.
  7. If you are using IBM DB2 Version 9.7 then, set the SSL configuration parameters and the DB2COMM registry. See the IBM DB2 Version 9.7 documentation for more information.
  8. Verify your SSL settings by running the db2 GET DATABASE MANAGER CONFIGURATION command.
  9. Import the certificate into the Java keystore of the application server on which Oracle Identity Manager is running.

    To import the certificate into the Java keystore, run the following command:

    keytool -importcert -file FILE_LOCATION -alias ALIAS -storepass STORE_PASSWORD -keystore STORE_LOCATION
    

    In this command, replace:

    • FILE_LOCATION with the full path and name of the certificate file.

    • ALIAS with an alias for the certificate.

    • STORE_PASSWORD with a password for the truststore.

    • STORE_LOCATION with one of the truststore paths from

    The following is a sample command that imports the certificate into the Java keystore:

    C:\DB2>keytool -importcert -file db2oim.arm -alias db2oim -storepass changeit -keystore C:\Users\example_user\.keystore
    

    The certificate is imported into the keystore.

Configuring Secure Communication Between Microsoft SQL Server and Oracle Identity Manager

To configure secure communication between Microsoft SQL Server and Oracle Identity Manager:

  1. Refer to Microsoft SQL Server documentation for information about enabling SSL communication between Microsoft SQL Server and a client system. In this context, the client is Oracle Identity Manager.

    Export the certificate on the Microsoft SQL Server host computer.

  2. Copy the certificate to the Oracle Identity Manager host computer.
  3. Import the certificate into the JVM truststore of the application server on which Oracle Identity Manager is running.

    To import the certificate into the truststore, run the following command:

    ..\..\bin\keytool -import -file FILE_LOCATION -keystore TRUSTSTORE_LOCATION -storepass TRUSTSTORE_PASSWORD -trustcacerts -alias ALIAS 
    

    In this command:

    • Replace FILE_LOCATION with the full path and name of the certificate file.

    • Replace ALIAS with an alias for the certificate.

    • Replace TRUSTSTORE_PASSWORD with a password for the truststore.

    • Replace TRUSTSTORE_LOCATION with the following truststore path:

      JAVA_HOME/jre/lib/security/cacerts

Configuring Secure Communication Between MySQL and Oracle Identity Manager

To configure secure communication between MySQL and Oracle Identity Manager:

  1. See MySQL documentation for information about enabling SSL communication between MySQL and a client system. In this context, the client is Oracle Identity Manager.
  2. Export the certificate on the MySQL host computer.
  3. Restart the MySQL database service by using the certificate exported in the preceding step. See MySQL documentation for information on restarting the database service.
  4. Copy the ca-cert.pem and client-cert.pem certificates to the Oracle Identity Manager host computer.
  5. Import the certificates into the JVM truststore of the application server on which Oracle Identity Manager is running.

    To import the certificates into the truststore, run the following command for each certificate:

    keytool -import -file FILE_LOCATION -keystore TRUSTSTORE_LOCATION -storepass TRUSTSTORE_PASSWORD -trustcacerts -alias ALIAS 
    

    In this command:

    • Replace FILE_LOCATION with the full path and name of the certificate file.

    • Replace ALIAS with an alias for the certificate.

    • Replace TRUSTSTORE_PASSWORD with a password for the truststore.

    • Replace TRUSTSTORE_LOCATION with the following truststore path:

      JAVA_HOME/jre/lib/security/cacerts

    Note:

    In an Oracle Identity Manager cluster, you must import the file into the truststore on each node of the cluster.

Configuring Secure Communication Between Oracle Database and Oracle Identity Manager

To secure communication between Oracle Database and Oracle Identity Manager, you can perform either one or both of the following procedures:

Configuring Data Encryption and Integrity in Oracle Database

See Configuring Network Data Encryption and Integrity in Oracle Database Security Guide for information about configuring data encryption and integrity.

Configuring SSL Communication in Oracle Database

To enable SSL communication between Oracle Database and Oracle Identity Manager:

Note:

See Enabling Secure Sockets Layer in Oracle Database Security Guide for detailed information about enabling SSL communication between Oracle Database and Oracle Identity Manager.

  1. Export the certificate on the Oracle Database host computer.
  2. Copy the certificate to Oracle Identity Manager.
  3. Import the certificate into the JVM truststore of the application server on which Oracle Identity Manager is running.

    To import the certificate into the truststore, run the following command:

    keytool -import -file FILE_LOCATION -keystore TRUSTSTORE_LOCATION -storepass TRUSTSTORE_PASSWORD -trustcacerts -alias ALIAS 
    

    In this command:

    • Replace FILE_LOCATION with the full path and name of the certificate file.

    • Replace ALIAS with an alias for the certificate.

    • Replace TRUSTSTORE_PASSWORD with a password for the truststore.

    • Replace TRUSTSTORE_LOCATION with the following truststore path:

      JAVA_HOME/jre/lib/security/cacerts

    Note:

    In an Oracle Identity Manager cluster, you must import the file into the truststore on each node of the cluster.

Configuring Secure Communication Between Sybase Adaptive Server Enterprise and Oracle Identity Manager

To configure secure communication between Sybase Adaptive Server Enterprise and Oracle Identity Manager:

  1. Refer to Sybase Adaptive Server Enterprise documentation for information about enabling SSL communication between Sybase Adaptive Server Enterprise and a client system. In this context, the client is Oracle Identity Manager.

    Export the certificate on the Sybase Adaptive Server Enterprise host computer.

  2. Copy the certificate to the Oracle Identity Manager host computer.
  3. Import the certificate into the JVM truststore of the application server on which Oracle Identity Manager is running.

    To import the certificate into the truststore, run the following command:

    ..\..\bin\keytool -import -file FILE_LOCATION -keystore TRUSTSTORE_LOCATION -storepass TRUSTSTORE_PASSWORD -trustcacerts -alias ALIAS
    

    In this command:

    • Replace FILE_LOCATION with the full path and name of the certificate file.

    • Replace ALIAS with an alias for the certificate.

    • Replace TRUSTSTORE_PASSWORD with a password for the truststore.

    • Replace TRUSTSTORE_LOCATION with the following truststore path:

      JAVA_HOME/jre/lib/security/cacerts

Configuring Secure Communication Between the Connector Server and Oracle Identity Manager

If you have deployed this connector on a Connector Server, then it is recommended that you secure communication between the Connector Server and Oracle Identity Manager. The procedure to configure secure communication is the same as the procedure described in section About Configuring Secure Communication Between the Target System and Oracle Identity Manager. While performing the procedure described in that section, consider the Connector Server as a separate system, similar to the target system.

Before you configure secure communication:

  • Ensure that the Connector Server is running under a user that has the appropriate rights to access the keystore.

  • Ensure that the keystore on the Connector Server is present and accessible.

  • Ensure that the keystore on the Connector Server contains the expected certificates.

  • If you are not using the default Java keystore on the Connector Server, then modify the keystore paths and password in the IT resource URL or the jndiProperties property (of the DBATConfiguration.groovy file) to match the location on the Connector Server.

Configuring the Connector for Stored Procedures and Groovy Scripts

The connector runs default SQL queries and SQL statements when you use it to perform reconciliation and provisioning operations, respectively. Instead of default SQL statements and queries, if you want the connector to use custom stored procedures for performing reconciliation or provisioning operations, then you must perform the procedure described in this section.

See Also:

Sample Stored Procedures and Groovy Scripts for sample stored procedures and Groovy scripts

To configure the connector for custom stored procedures:

  1. On the target system, create the stored procedures that must be used for performing provisioning operations. The following are sample stored procedures (created on Oracle Database) that run the DELETE SQL statement for deleting the groups and roles child data. For target systems other than Oracle Database, the syntax of this sample procedure may vary.

    The stored procedure for DELETE_USERGROUP is as follows:

    create or replace PROCEDURE DELETE_USERGROUP
    (  userin IN VARCHAR2, gId IN VARCHAR2
    ) AS
    BEGIN
    DELETE from USER_GROUP where USERID=userin and GROUPID=gId;
    END DELETE_USERGROUP;
    

    The stored procedure for DELETE_USERROLE is as follows:

    create or replace PROCEDURE DELETE_USERROLE
    (  userin IN VARCHAR2, rId IN VARCHAR2
    ) AS
    BEGIN
    DELETE  from USER_ROLE where USERID=userin and ROLEID=rId;
    END DELETE_USERROLE;
    
  2. On the Oracle Identity Manager host computer, create Groovy scripts that call the relevant stored procedures on the target system to perform provisioning operations. The following arguments can be directly used in the Groovy script:

    • connector - The Database Application Tables connector object.

    • conn - JDBC connection.

    • timing - When the Groovy script is called. In addition, the timing attribute also explains the type of operation being performed. For example, if it is search operation, then the object class being search is also returned.

      The following is the format of the timing argument for lookup field synchronization:

      executeQuery:OBJECT_CLASS

      In this format, OBJECT_CLASS is replaced with the type of object being reconciled.

      For example, for a lookup field synchronization scheduled job that contains the object type "Role", the value of the timing argument will be as follows:

      executeQuery:Role

    • attributes - All attributes.

    • trace - Logger as a script trace bridge to the application.

    • where - String where condition for execute query, or null.

    • handler - resultSetHandler or SyncResultsHandler for the connector objects produced by the execute query, sync operation or null return.

    • quoting - The type of table name quoting to be used in SQL. The default value is an empty string. The value of this argument is obtained from the IT resource.

    • nativeTimestamps - Specifies whether the script retrieves the timestamp data of the columns as java.sql.Timestamp type from the database table. This information is obtained from the IT resource.

    • allNative - Specifies whether the script must retrieve the data type of the columns in a native format from the database table. The value of this argument is obtained from the IT resource.

    • rethrowAllSQLExceptions - The value of this argument is also obtained from the IT resource. The value of this argument specifies whether the script must throw exceptions when a zero (0x00) error code is encountered.

    • enableEmptyString - Specifies whether support for writing an empty string instead of a NULL value must be enabled. The value of this argument is obtained from the IT resource.

    • filterString - String filter condition for execute query, or null.

    • filterParams - List of filter parameters. Each parameter is present in the COLUMN_NAME:VALUE format. For example, FIRSTNAME:test.

    • syncattribute - Name of the database column configured for incremental reconciliation. This argument is available in the sync script, which is called during an incremental reconciliation run.

    • synctoken - Value of the sync attribute. This argument is available in the sync script.

    The following is a sample Groovy script that calls the DELETE_USERGROUP and DELETE_USERROLE stored procedure created in Step 1:

    import org.identityconnectors.framework.common.objects.*;
    System.out.println("[removeMultiValuedAttributeScript] Removing Child data::"+ attributes);
    
    try {
    childDataEOSet = null;
    delSt = null;
    //Get UID 
    String id = attributes.get("__UID__").getValue().get(0);
    if(attributes.get("USER_GROUP")!=null)
    {
    childDataEOSet=attributes.get("USER_GROUP").getValue();
    //Delete child data using stored procedure
    delSt= conn.prepareCall("{call DELETE_USERGROUP(?,?)}");
        if(childDataEOSet !=null){
    System.out.println("[removeMultiValuedAttributeScript] Removing Group data.");
    //Iterate through child data and delete
    for( iterator = childDataEOSet.iterator(); iterator.hasNext(); )
    {
    eo = iterator.next();
    attrsSet = eo.getAttributes();
    grpattr=AttributeUtil.find("GROUPID",attrsSet);
    if(grpattr!=null){
    groupid=grpattr.getValue().get(0);
    delSt.setString(1, id);
    delSt.setString(2, groupid);
    delSt.executeUpdate();
    System.out.println("[removeMultiValuedAttributeScript] Deleted Group::"+ grpattr);
    } }; } }
    } finally {
    if (delSt != null)
    delSt.close();
    };
    try {
    childDataEOSet = null;
    delSt = null;
    String id      = attributes.get("__UID__").getValue().get(0);
    if(attributes.get("USER_ROLE")!=null)
    {
    childDataEOSet=attributes.get("USER_ROLE").getValue();
    delSt= conn.prepareCall("{call DELETE_USERROLE(?,?)}");
        if(childDataEOSet !=null){
    System.out.println("[removeMultiValuedAttributeScript] Removing Role data.");
    for( iterator = childDataEOSet.iterator(); iterator.hasNext(); )
    {
    eo = iterator.next();
    attrsSet = eo.getAttributes();
    roleattr=AttributeUtil.find("ROLEID",attrsSet);
    if(roleattr!=null){
    rolename=roleattr.getValue().get(0);
    delSt.setString(1, id);
    delSt.setString(2, rolename);
    delSt.executeUpdate();
    System.out.println("[removeMultiValuedAttributeScript] Deleted Role::"+ rolename);
    } }; } }
    } finally {
    if (delSt != null)
    delSt.close();
    };
    
  3. Update the configuration lookup definition to include information about the Groovy scripts as follows:

    Note:

    Perform the procedure described in this step only if you want to configure the connector for stored procedures and you have not entered values for script-related properties such as createScript, executeQueryScript, lookupScript, and so on in the DBATConfiguration.groovy file.

    1. In the Design Console, expand Administration, and double-click Lookup Definition.

    2. Search for and open the Lookup.Configuration.RESOURCE lookup definition.

    3. Click Add.

    4. In the newly added row, depending on the reconciliation or provisioning operation you want to perform, add one or all of the following lookup entries:

      Table 3-3 Entries Specific to Groovy Script Configuration

      Code Key Decode

      createScript[LOADFROMURL]

      Enter the file URL of the Groovy script created for the create user account provisioning operation.

      updateScript[LOADFROMURL]

      Enter the file URL of the Groovy script created for the update user account provisioning operation.

      deleteScript[LOADFROMURL]

      Enter the file URL of the Groovy script created for the delete user account provisioning operation.

      executeQueryScript[LOADFROMURL]

      Enter the file URL of the Groovy script created for full and filtered reconciliation.

      lookupScript[LOADFROMURL]

      Enter the file URL of the Groovy script created for lookup field synchronization.

      syncScript[LOADFROMURL]

      Enter the file URL of the Groovy script created for incremental reconciliation.

      addMultiValuedAttributeScript[LOADFROMURL]

      Enter the file URL of the Groovy script created for the add multivalued attributes provisioning operation.

      removeMultiValuedAttributeScript[LOADFROMURL]

      Enter the file URL of the Groovy script created for the remove multivalued attributes provisioning operation.

      Note:

      Instead of the file URL of the Groovy script, you can directly enter the Groovy script in the Decode column. In such a case, ensure that the corresponding Code Key value does not contain [LOADFROMURL]. For example, if you directly enter the Groovy script for the create user account provisioning operation, then the corresponding code key entry must be createScript, instead of createScript[LOADFROMURL].

      The following is a sample value for the removeMultiValuedAttributeScript[LOADFROMURL] entry:

      file:///home/myname/dbat/scripts/removechilddata.groovy

    5. Click the Save icon.

  4. To reset the password during the update procedure, do the following:

    1. Check whether script argument "attributes" contains password (__PASSWORD__) attribute.

      import org.identityconnectors.common.security.GuardedString;
      GuardedString pass = attributes.get("__PASSWORD__")!=null?attributes.get"__PASSWORD__").getValue().get(0):null;
    2. If "attributes" contains __PASSWORD__ attribute (not null), call targetstore procedure/sql query to reset password.

      upstmt = conn.prepareStatement("UPDATE PASSWORD....
      if(pass!=null){
             pass.access(new GuardedString.Accessor(){
                 public void access(char[] clearChars){
                     upstmt.setString(1, new String(clearChars));
                 }
             });
      } else {
                //Update other attributes 
      }
           upstmt.executeUpdate(); 
      

This completes the procedure for configuring your connector to use stored procedure for provisioning operations.

Upgrading the DBAT Connector

You can upgrade the connector from release 11.1.1.5.0 to the current release.

If you want to upgrade the connector from release 11.1.1.5.0 to this release of the connector, then you must update the connector bundle JAR file. No other configuration procedures are required.

Already installed connectors need not be upgraded as the artifacts are generated dynamically based on schema. However, if you want to upgrade to the latest functionality provided by the connector, then you need to update the JAR file.

Note:

Before you perform the upgrade procedure:

  • It is strongly recommended that you create a backup of the Oracle Identity Manager database. Refer to the database documentation for information about creating a backup.

  • As a best practice, perform the upgrade procedure in a test environment initially.

To update the connector bundle JAR:

  1. Download the latest version of this connector from Oracle Technology Network and extract its contents to any directory on the computer hosting Oracle Identity Manager.
  2. Run the Delete JARs utility to remove the org.identityconnectors.databasetable-1.2.2 file from the Oracle Identity Manager database. This utility is copied into the following location when you install Oracle Identity Manager:

    For Microsoft Windows:

    OIM_HOME/server/bin/DeleteJars.bat

    For UNIX:

    OIM_HOME/server/bin/DeleteJars.sh

    When you run the utility, you are prompted to enter the login credentials of the Oracle Identity Manager administrator, URL of the Oracle Identity Manager host computer, context factory value, type of JAR file being deleted, and the name of the JAR file to be deleted.

  3. Run the Upload JARs utility to post the latest version of the org.identityconnectors.databasetable-1.2.2 file from the /bundle directory of the installation media to the Oracle Identity Manager database.

    For Microsoft Windows:

    OIM_HOME/server/bin/UploadJars.bat

    For UNIX:

    OIM_HOME/server/bin/UploadJars.sh

    When you run the utility, you are prompted to enter the login credentials of the Oracle Identity Manager administrator, URL of the Oracle Identity Manager host computer, context factory value, type of JAR file being uploaded, and the location from which the JAR file is to be uploaded.

  4. Run the PurgeCache utility to clear content related to connector bundle JARs from the server cache. See Clearing Content Related to Connector Resource Bundles from the Server Cache for information about running the PurgeCache utility.