21 Integrating with IBM Tivoli Directory Server

This chapter outlines the procedures for integrating Oracle Identity Management with IBM Tivoli Directory Server. It contains these topics:

Note:

Before continuing with this chapter, you should be familiar with the concepts presented in previous chapters. The following chapters in particular are important:

If you are configuring a demonstration of integration with IBM Tivoli Directory Server, then see the Oracle By Example series for Oracle Identity Management Release 11g Release 1 (11.1.1), available on Oracle Technology Network at http://www.oracle.com/technology/

21.1 Verifying Synchronization Requirements for IBM Tivoli Directory Server

Before configuring basic or advanced synchronization with IBM Tivoli Directory Server, ensure that your environment meets the necessary synchronization requirements by following the instructions in "Verifying Synchronization Requirements". Before synchronizing with IBM Tivoli Directory Server, you must also perform the following steps:

  • When creating a user account in IBM Tivoli Directory Server with sufficient privileges to perform import and export operations, be sure to assign sufficient permissions to read the tombstone

  • Enable change logging on IBM Tivoli Directory Server

21.2 Configuring Basic Synchronization with IBM Tivoli Directory Server

You use the expressSyncSetup command to quickly establish synchronization between the Oracle back-end directory and IBM Tivoli Directory Server. The expressSyncSetup command uses default settings to automatically perform all required configurations, and also creates two synchronization profiles, one for import and one for export. To use the expressSyncSetup command to synchronize with IBM Tivoli Directory Server, refer to "Creating Import and Export Synchronization Profiles Using expressSyncSetup".

21.3 Configuring Advanced Integration with IBM Tivoli Directory Server

When you install Oracle Directory Integration Platform, sample import and export synchronization profiles are automatically created for each of the supported third-party directories. The sample synchronization profiles created for IBM Tivoli Directory Server are:

  • TivoliImport—The profile for importing changes from IBM Tivoli Directory Server to the Oracle back-end directory.

  • TivoliExport—The profile for exporting changes from the Oracle back-end directory to IBM Tivoli Directory Server

You can also use the expressSyncSetup command to create additional synchronization profiles. The import and export synchronization profiles that you either created during the install process or with expressSyncSetup are only intended as a starting point for you to use when deploying your integration of the Oracle back-end directory and an IBM Tivoli Directory Server. Because the default synchronization profiles are created using predefined assumptions, you must further customize them for your environment by performing the following steps in the order listed:

21.3.1 Step 1: Plan Your Integration

Plan your integration by reading Chapter 16, "Connected Directory Integration Concepts and Considerations", particularly "IBM Tivoli Directory Server Integration Concepts". Be sure to create a new profile by copying the existing IBM Tivoli Directory Server template profile by following the instructions in "Creating Synchronization Profiles".

21.3.2 Step 2: Configure the Realm

Configure the realm by following the instructions in "Configuring the Realm".

21.3.3 Step 3: Customize the ACLs

Customize ACLs as described in "Customizing Access Control Lists".

21.3.4 Step 4: Customize Attribute Mappings

When integrating with IBM Tivoli Directory Server, the following attribute-level mapping is mandatory for all objects:

targetdn: : :top:orclSourceObjectDN: :orclTDSObject:

Example 21-1 Attribute-Level Mapping for the User Object in IBM Tivoli Directory Server

Cn:1: :person: cn: :person:
sn: : :person: sn: :person:

Example 21-2 Attribute-Level Mapping for the Group Object in IBM Tivoli Directory Server

Cn:1: :groupofname: cn:groupofuniquenames

In the preceding examples, Cn and sn from IBM Tivoli Directory Server are mapped to cn and sn in the Oracle back-end directory.

If you specify anything other than the RDN attribute as a required attribute in the mapping file, those changes will not be synchronized. This is due to a limitation in IBM Tivoli Directory Server where changes do not appear as deletions in the changelog when tombstones are enabled.

Customize the attribute mappings by following the instructions in "Customizing Mapping Rules".

21.3.5 Step 5: Customize the IBM Tivoli Directory Server Connector to Synchronize Deletions

If you want to synchronize deletions, you must ensure tombstones are not enabled in IBM Tivoli Directory Server. To check if tombstones are enabled, execute the following command:

ldapsearch -h connected_directory_host -p connected_directory_port \
-D binddn -q \
-b "cn=Directory, cn=RDBM Backends, cn=IBM 
Directory, cn=Schemas, cn=Configuration" -s base "objectclass=*" 
ibm-slapdTombstoneEnabled

Note:

You will be prompted for the password.

This command returns information on all deleted entries.

See Also:

IBM Tivoli Directory Server documentation for details about configuring tombstones.

21.3.6 Step 6: Synchronize Passwords

The Oracle back-end directory and IBM Tivoli Directory Server support the same set of password hashing techniques. To synchronize passwords from IBM Tivoli Directory Server to the Oracle back-end directory, ensure that SSL server authentication mode is configured for both directories and that the following mapping rule exists in the mapping file:

Userpassword: : :person:userpassword: :person

Two-way password synchronization is not supported from an Oracle Unified Directory back-end directory or an Oracle Directory Server Enterprise Edition back-end directory. Two-way password synchronization is only supported if the back-end directory is Oracle Internet Directory.

21.3.7 Step 7: Synchronize in SSL Mode

Configure IBM Tivoli Directory Server for synchronization in SSL mode by following the instructions in "Configuring the Connected Directory Connector for Synchronization in SSL Mode".

21.3.8 Step 8: Configure the IBM Tivoli Directory Server External Authentication Plug-in

Perform the following steps to configure an IBM Tivoli Directory Server external authentication plug-in:

  1. Add the configuration entries for the external authentication plug-in for IBM Tivoli Directory Server to the Oracle back-end directory by performing the following steps:

    Note:

    The wallet referred to in the configuration entries for the external authentication plug-in for IBM Tivoli Directory Server is ORACLE wallet. Accordingly, use Oracle wallet commands to add and remove certificates from the wallet. JKS commands are used only for the certificates that Oracle Directory Integration Platform uses.

    1. Copy the following entries to an LDIF file, for example, input.ldif:

      dn: cn=oidexplg_compare_tivoli,cn=plugin,cn=subconfigsubentry
      cn: oidexplg_compare_tivoli
      objectclass: orclPluginConfig
      objectclass: top
      orclpluginname: oidexplg
      orclplugintype: operational
      orclpluginkind: Java
      orclplugintiming: when
      orclpluginldapoperation: ldapcompare
      orclpluginsecuredflexfield;walletpwd: password
      orclpluginsecuredflexfield;walletpwd2: password
      orclpluginversion: 1.0.1
      orclpluginisreplace: 1
      orclpluginattributelist: userpassword
      orclpluginentryproperties: (!(&(objectclass=orclTDSobject)(objectclass=orcluserv2)))
      orclpluginflexfield;host2: host.domain.com
      orclpluginflexfield;port2: 636
      orclpluginflexfield;isssl2: 1
      orclpluginflexfield;host: host.domain.com
      orclpluginflexfield;walletloc2: /location/wallet
      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_tivoli,cn=plugin,cn=subconfigsubentry
      cn: oidexplg_bind_tivoli
      objectclass: orclPluginConfigobjectclass: top
      orclpluginname: oidexplg
      orclplugintype: operational
      orclpluginkind: Java
      orclplugintiming: when
      orclpluginldapoperation: ldapbind
      orclpluginversion: 1.0.1
      orclpluginisreplace: 1
      orclpluginentryproperties: (!(&(objectclass=orclTDSobject)(objectclass=orcluserv2)))
      orclpluginclassreloadenabled: 0
      orclpluginflexfield;walletloc2: /location/wallet
      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
      
    2. Copy the entries in the LDIF file to the Oracle back-end directory using a command similar to the following:

      ldapadd -h HOST -p PORT -D binddn -q -v -f input.ldif
      

      Note:

      You will be prompted for the password.

  2. Use the instructions in "Configuring External Authentication Plug-ins" to configure the plug-in.

21.3.9 Step 9: Perform Post-Configuration and Administrative Tasks

Read Chapter 23, "Managing Integration with a Connected Directory" for information on post-configuration and ongoing administration tasks.