Configuring the Third-Party Directory Connector for Synchronization in SSL Mode

17-16 Oracle Fusion Middleware Administrators Guide for Oracle Directory Integration Platform 3. Examine the output file. For an Microsoft Active Directory plug-in, the output file resembles the following: dn: cn=oidexplg_compare_ad,cn=plugin,cn=subconfigsubentry cn: oidexplg_compare_ad objectclass: orclPluginConfig objectclass: top orclpluginname: oidexplg.jar orclplugintype: operational orclpluginkind: Java orclplugintiming: when orclpluginldapoperation: ldapcompare orclpluginsecuredflexfield;walletpwd: password orclpluginsecuredflexfield;walletpwd2: password orclpluginversion: 1.0.1 orclpluginisreplace: 1 orclpluginattributelist: userpassword orclpluginentryproperties: objectclass=orcladobjectobjectclass=orcluserv2 orclpluginflexfield;host2: host.domain.com orclpluginflexfield;port2: 636 orclpluginflexfield;isssl2: 1 orclpluginflexfield;host: host.domain.com orclpluginflexfield;walletloc2: locationwallet orclpluginflexfield;port: 389 orclpluginflexfield;walletloc: tmp orclpluginflexfield;isssl: 0 orclpluginflexfield;isfailover: 0 orclpluginclassreloadenabled: 0 orclpluginenable: 0 orclpluginsubscriberdnlist: cn=users,dc=us,dc=oracle,dc=com dn: cn=oidexplg_bind_ad,cn=plugin,cn=subconfigsubentry cn: oidexplg_bind_ad objectclass: orclPluginConfig objectclass: top orclpluginname: oidexplg.jar orclplugintype: operational orclpluginkind: Java orclplugintiming: when Oracle Directory Server Enterprise Edition Sun Java System Directory Server cn=oidexplg_compare_iplanet, cn=plugin,cn=subconfigsubentry cn=oidexplg_bind_iplanet, cn=plugin,cn=subconfigsubentry Novell eDirectory cn=oidexplg_compare_Novell eDirectory, cn=plugin,cn=subconfigsubentry cn=oidexplg_bind_Novell eDirectory, cn=plugin,cn=subconfigsubentry OpenLDAP cn=oidexplg_compare_openldap, cn=plugin,cn=subconfigsubentry cn=oidexplg_bind_openldap, cn=plugin,cn=subconfigsubentry Table 17–2 Cont. Distinguished Names of External Authentication Plug-ins Plug-in Type DN Configuring Synchronization with a Third-Party Directory 17-17 orclpluginldapoperation: ldapbind orclpluginversion: 1.0.1 orclpluginisreplace: 1 orclpluginentryproperties: objectclass=orcladobjectobjectclass=orcluserv2 orclpluginclassreloadenabled: 0 orclpluginflexfield;walletloc2: locationwallet orclpluginflexfield;port: 389 orclpluginflexfield;walletloc: tmp orclpluginflexfield;isssl: 0 orclpluginflexfield;isfailover: 0 orclpluginflexfield;host2: host.domain.com orclpluginflexfield;port2: 636 orclpluginflexfield;isssl2: 1 orclpluginflexfield;host: host.domain.com orclpluginenable: 0 orclpluginsecuredflexfield;walletpwd: password orclpluginsecuredflexfield;walletpwd2: password orclpluginsubscriberdnlist: cn=users,dc=us,dc=oracle,dc=com 4. Create a new LDIF file from the output file as follows: a. Change the entry names. In the example shown in the previous step, you would change cn=oidexplg_compare_ad,cn=plugin, cn=subconfigsubentry to cn=oidexplg_compare_ad1, cn=plugin,cn=subconfigsubentry and cn=oidexplg_bind_ad, cn=plugin,cn=subconfigsubentry to cn=oidexplg_bind_ad1, cn=plugin,cn=subconfigsubentry. b. Change the value for orclpluginenable. Use value 1 if you want to enable it, and use value 0 if you want to disable it. c. Change the values for orclpluginflexfield;host and orclpluginflexfield;port for the external directory host name and port number. d. Change the value for orclpluginflexfield;isssl. Use value 1 if you want to enable the SSL connection against the external directory, and use value 0 if you want to disable. If you use value 1, you will also need to change the value of orclpluginflexfield;walletloc and orclpluginsecuredflexfield;walletpwd for the wallet location and password. e. Change orclpluginflexfield;isfailover. Use value 1 if to set up the failover against a backup external directory. If you use value 1, then you must also change the value of orclpluginflexfield;host2, orclpluginflexfield;port2 for the host name and port number. To use an SSL connection against the backup directory server, you must to change the value for orclpluginflexfield;walletloc2 and orclpluginsecuredflexfield;walletpwd2. f. Modify orclpluginsubscriberdnlist for the plug-in invocation naming context. g. Modify orclPluginRequestGroup for the plug-in request group. If this attribute is missing in the search out put, then just add the attribute and value in the LDIF file. 5. Add the modified plug-in configuration entries to the Oracle Internet Directory server. Use a command similar to the following: 17-18 Oracle Fusion Middleware Administrators Guide for Oracle Directory Integration Platform ORACLE_HOMEldapbinldapadd -h host -p port -D binddn -q \ -v -f input.ldif

17.4 Writing Custom Synchronization Connectors

Oracle Directory Integration Platform supports custom synchronization connectors. This topic provides information to help you write custom connectors and contains the following sections: ■ Inbound Connectors ■ Outbound Connectors

17.4.1 Inbound Connectors

Perform the following steps to write an inbound connector:

1. Implement the Reader. The Reader generally extends the target system connector

class and implements the DISReadInterface. The different methods of the DISReadInterface are specified in its the javadoc. Refer to Sample Reader to see an example Reader implementation.

2. Create a sample config file. The following is a typical config file:

[INTERFACEDETAILS] Reader: Complete_classname_including_packageName SkipErrorToSyncNextChange: false SearchDeltaSize: 500 UpdateSearchCount: 100

3. Create a mapfile containing a set of mapping rules.

4. Create a properties file by setting the configfile, mapfile, and filter parameters.

To test the inbound connector: 1. Create a test profile using the register operation of the manageSyncProfiles command. Refer to Managing Synchronization Profiles Using manageSyncProfiles on page 7-15 for more information.

2. Verify your logging messages.

3. Verify synchronization occurred by examining Oracle Internet Directory to see if

the appropriate entries were created.

17.4.1.1 Sample Reader

package oracle.ldap.odip.gsi; import oracle.ldap.odip.engine.AttrHandler; import oracle.ldap.odip.engine.ChangeRecord; import oracle.ldap.odip.engine.Connector; import oracle.ldap.odip.engine.ConfigReader; import oracle.ldap.odip.engine.Constants; import oracle.ldap.odip.engine.DISReadInterface; import oracle.ldap.odip.engine.DISFilterInterface; import oracle.ldap.odip.engine.ODIException; import oracle.ldap.odip.engine.Debug; import oracle.ldap.odip.map.MapRules; import oracle.ldap.odip.map.OrclFilter; Note: You will be prompted for the password.