Module LSC

Présentation

LSC signifie LDAP Synchronisation Connector, c'est un module permettant d'automatiser les imports/exports de données entre bases de données et annuaires LDAP. À l'origine du projet InterLDAP, ce module était développé spécifiquement pour chaque organisation (entreprise, institut, etc.) à partir de classes génériques. Depuis InterLDAP v2, cette fonctionnalité repose sur un programme intégrant un moteur de traitement semi-généré offrant une interface pour chaque type d'objet LDAP à alimenter dans l'annuaire. Toutefois ce module ne pouvant répondre à l'ensemble des besoins exprimés par les utilisateurs actuels, une seconde solution complémentaire a également été intégré. Il s'agit d'un programme d'ETL nommé CloverETL, auquel le projet InterLDAP s'est associé, fournissant notamment les interfaces de lecture et d'écriture LDAP.

Nouvelle version du LSC

Présentation générale

La nouvelle version du LSC est plus détaillé à la page Présentation générale du LSC. Le principe général est de répliquer le résultat d'une requête dans l'annuaire LDAP. Initialement le LSC est la source autoritaire pour la création, la mise à jour et la suppression des entrées, même si ce fonctionnement peut être largement adapté. Par défaut les informations récupérées depuis les tables du SGBDR sont donc monovaluées.

Sur le principe, il est nécessaire de disposer de simple compétence de développeur Java pour pouvoir intégrer le LSC. Le développement initial a été réalisé sous Eclipse mais il pourrait être repris dans n'importe quel environnement. L'ensemble du système peut être exécuté directement à partir de Java et de Ant.

Détails techniques

Description complète à l'adresse suivante:

Le LSC génère les squelettes de synchronisation directement à partir du schéma LDAP. Il est en mesure de générer l'ensemble des classes utilitaires nécessaires. Le LSC fonctionne en représentant l'objet de la base de données (package org.linagora.ldap.lsc.objects.flat.*), dont la principale caractéristique est d'être strictement monovaluée pour toutes ces valeurs, et l'objet dans l'annuaire qui peut représenté des valeurs mono et multi valuées. (package org.linagora.ldap.lsc.objects.*)

Si tout c'est bien passé, il vous reste uniquement à intégrer :

  • les requêtes SQL correspondantes qui en général se comptent par deux (package org.linagora.ldap.lsc.persistence.xml)
    • la requête permettant d'obtenir la liste complète des identifiants des objets
    • la requête permettant d'obtenir un objet à partir de son identifiant
  • les services de correspondance qui effectuent l'affectation des valeurs entre l'objet en base et une instance de la représentation de l'objet dans l'annuaire. Cette instance sera ensuite comparées à celle présente dans l'annuaire pour déterminer la liste des modifications à apporter sur l'annuaire
En supplément, certaines organisations d'objet (organisation hiérarchique par exemple) nécessite de modifier, en plus des requêtes et des services de correspondance, les services JDBC et JNDI d'obtention et de localisations des informations.