LDAP et base de données à l'aide d'Oracle Virtual Directory

Comme son nom le suggère, Oracle Virtual Directory permet de virtualiser l’accès à des données stockées dans différents types de référentiel à l’aide d’un listener LDAP. Vous pouvez ainsi virtualiser d’autres annuaires mais aussi accéder à n’importe quelle source de données, via des drivers JDBC ou des services Web par exemple.

Si vous êtes un habitué de ce blog, OVD vous est familié. Dans le cadre de la gestion des authentifications des utilisateurs de base de données Oracle dans un annuaire tiers comme Microsoft AD, Novell eDirectory ou Sun/Oracle Directory Server EE, vous devez en effet utiliser cette plateforme de virtualisation ! Vous trouverez d’ailleurs 2 articles intitulés Installer Oracle Virtual Directory et Enterprise User Security et Oracle Virtual Directory

Au delà de ses possibilités pour se connecter à différentes sources de données, l’intérêt d’OVD réside dans sa capacité à transformer des structures LDAP en d’autres structures, de manière bi-directionnelle. Vous pouvez ainsi, comme dans le cas de son utilisation avec Enterprise User Security, présenter des données stockées dans votre annuaire d’entreprise avec des structures et des formats et différents. Vous pouvez également diriger (router) des requêtes vers différentes sources pour fédérer les annuaires de plusieurs services ou des annuaires qui ont des fonctions différentes. Vous pouvez également joindre plusieurs sources d’information et permettre, pourquoi pas, d’aller chercher dans votre base de données RH des informations et les présenter sous la forme d’attributs ou de classes d’objet connectés à votre référentiel d’identité. Le tout, sans vous préoccuper des problématiques complexes de synchronisation de référentiel, c’est à dire, en quelques jours et avec un effort de gestion très faible.

Cet article illustre, surtout en image, un des cas d’utilisation d’Oracle Virtual Directory, à savoir sa capacité à virtualiser des données stockées dans une base de données.

Adaptateur de base de données

Une fois Oracle Virtual Directory installé et configuré, créer la connexion à une base de données est simple. Vous créerez simplement un adaptateur de type base de données en sélectionnant le template "default" et en précisant les paramètres JDBC de connexion comme ci-dessous :

La seconde (ou première) partie du paramétrage consiste à créer une table ou une vue qui fait le lien avec les données qui vous intéressent dans votre base de données et que vous voulez fournir via votre annuaire virtuel. Voici un exemple de script qui réalise ce petit « tour de force » :

create user ArKZoYd 
identified by ArKZoYd
default tablespace users
temporary tablespace temp;

alter user ArKZoYd quota unlimited on users;
grant create session to ArKZoYd;
grant create table to ArKZoYd;

connect ArKZoYd/ ArKZoYd
drop table myuser purge;
create table myuser(
cn varchar2(50),
sn varchar2(50),
title varchar2(25),
l varchar2(15),
pwd varchar2(50));

insert into myuser(cn, sn, title, l, pwd)
values ('Gregory',
'Gregory',
'Nettoyeur',
'Paris',
'{SHA}ED/ryoKCMByI1wFL+URhIa1/UsM=');
commit;

Vous continuerez en définissant une classe d’objet LDAP, par exemple inetOrgPerson, l’attribut qui permet de construire le DN associé et en faisant correspondre les attributs de votre choix avec votre table ou vue de base de données. Dans l’exemple ci-dessous, on a fait simplement correspondre certains des attributs possibles de inetOrgPerson et la table MYUSER:

Pour terminer avec ce paramétrage, vous déploierez la plug-in DBPassword sur votre adaptateur si vous voulez permettre de gérer les Bind LDAP en vous appuyant sur une colonne qui stocke le mot de passe (attribut userPassword) et autoriser sa mise à jour depuis l’interface de l’annuaire:

Utiliser l’annuaire virtuel

Une fois le paramétrage réalisé, vous pouvez vous connecter à l’aide de votre client LDAP préféré comme ci-dessous à l’aide d’Apache Directory Studio et modifier les attributs stockés dans votre table. Pour réaliser cette dernière action, il faut bien sur que votre adaptateur soit configuré en lecture/écriture et que votre utilisateur LDAP ait les droits associés :

Vous pourrez en particulier modifier l’attribut userPassword qui est utilisé pour vous connecter :

Pour vous persuader du succès de votre entreprise, testez la connexion à l’annuaire à l’aide de cet utilisateur dont l’ensemble des informations sont stockées en base de données :

Voilà, peut-être une idée pour les DBA qui veulent répondre aux besoins élargis de leur organisation et indéniablement pour les équipes de gestion des identités qui en ont assez de gérer des synchronisations à tout va…