John’s Oracle Experiences

My everyday experiences with Oracle products

Archive for January 14th, 2009

Synchronization from a relational database to Oracle Internet Directory

Posted by John Paul van Helvoort on January 14, 2009

In order to be able to sync from a relational database to an Oracle Internet Directory ( 10.1.2.0.2 ). We need to create our own Custom sync profile.
This profile will have to select the information we want to store in our OID plus it has to map these values to an entry in our OID.
The information we want to import can be selected in the configuration file ( in our case CUSTOMDB_OID.cfg ) while the mapping can be made threw the mapping file ( in our case CUSTOMDB_OID.map ). The integration server uses profiles which holds configuration and mappings.

To create your very own CUSTOMDB sync profile you can use these example files

CUSTOMDB_OID.properties – profile settings
CUSTOMDB_OID.cfg - configuration file
CUSTOMDB_OID.map - mapping file

CUSTOMDB_OID.properties

odip.profile.name = CUSTOMDB
odip.profile.status = DISABLE
odip.profile.syncmode = IMPORT
odip.profile.retry = 5
odip.profile.schedinterval = 60
odip.profile.condirurl = db01.backbone.local:1521:APPSDB
odip.profile.condiraccount = operator
odip.profile.condirpassword = *******
odip.profile.interface = DB
odip.profile.configfile = /u00/oracle/product/10.1.2/idm/ldap/odi/conf/CUSTOMDB_OID.cfg
odip.profile.mapfile = /u00/oracle/product/10.1.2/idm/ldap/odi/conf/CUSTOMDB_OID.map
odip.profile.lastchgnum = 0
odip.profile.debuglevel = 63

CUSTOMDB_OID.cfg

[DBQUERY
select:
ID,
EMAILADDRESS,
NAME,
TO_CHAR(LAST_UPDATE,'YYYYMMDDHH24MISS') CHANGEDATE
from
APPSUSERS
WHERE
LAST_UPDATE>TO_DATE (:CHANGEDATE,'YYYYMMDDHH24MISS')
ORDER BY
LAST_UPDATE

[SYNC-PARAMS]
CHANGEKEYATTRS:CHANGEDATE
[INTERFACEDETAILS]
SKIPERRORTOSYNCNEXTCHANGE: TRUE

CUSTOMDB_OID.map

DomainRules
NONLDAP:cn=users,dc=backbone,dc=local:cn=%,cn=users,dc=backbone,dc=local
AttributeRules
ID:1: : :cn: :person
ID: : : :cn: :orcluserv2
ID: : : :cn: :organizationalPerson
NAME: : : :sn: :person
EMAILADDRESS: : : :mail: :inetOrgperson
EMAILADDRESS: : : :uid: :inetOrgperson

And preform the following statement to load your own config in Oracle Internet Directory;

$ORACLE_HOME/bin/dipassistant createprofile -host idm01.backbone.local -port 389 -w <password> -configset 1 –file CUSTOMDB_OID.properties

We now have created a sync profile which uses the CHANGEDATE field in the relational database to determine if a row is changed and therefor needs to be resync or not.
This is a basic setup to use for a more complex import using more fields and mappings.

More information on the topic can be found here

Posted in Identity Manager | Leave a Comment »