La synchronisation LDAP avec le LSC

Le LSC est un projet de synchronisation d'annuaires et de base de données. Il a ceci de particulier, qu'il est orienté gestion d'identités (ou IAM).

L'idée (certes pas nouvelle) est de mettre toutes les informations concernant les identités des personnes d'une entreprise dans un annuaire central. Ces informations sont (malheureusement) souvent réparties entre plusieurs endroits : le logiciel RH avec sa propre base de données/annuaire, les comptes des machines physiques gérés par un Active Directory, telle application avec son propre système de stockage des identités, etc.

À l'heure actuelle, les synchronisations entre plusieurs référentiels existent déjà. Par exemple, la synchronisation syncrepl entre plusieurs annuaires OpenLDAP, la réplication multi-maîtres d'Active Directory, les connecteurs spécifiques pour SAP, des scripts fait maison spécifiques, etc. Toutes ses solutions fonctionnent certes très bien, mais que faire d'applications ayant des modèles de données spécifiques, d'applications utilisant des annuaires différents ? Et surtout comment intégrer rapidement une nouvelle application à un référentiel existant ?

Cette problématique de synchronisation des identités au sein d'un SI est une problématique réelle, elle est présente du SI des multi-nationales au SI des PME en passant par le SI des universités. Il n'est pas toujours possible de mettre en place un système complexe de synchronisation, que ça soit pour des raisons de coûts ou de temps.

C'est cette problématiques que le LSC permet de résoudre. En effet, il est capable de faire de l'agrégation de données depuis une sources vers une destination (souvent un annuaire central). Il est néanmoins possible d'avoir plusieurs instances du LSC pour faire de l'agrégation multi-sources. Son atout majeur est son moteur de transformations qui sait retravailler les informations d'une source pour les adapter au format de la destination.

Il existe d'autres outils de synchronisation (ou assimilé), mais rien qui puisse être mis en place rapidement et qui soit léger. En effet, la plupart de ces outils sont des ESB, des méta-annuaires, et donc impactent fortement un SI. Or, ce projet permet en quelques heures d'intégrer une nouvelle application avec les systèmes déjà en place, ou en quelques jours de mettre en place un référentiel commun. Le but du projet est donc de répondre à un besoin actuel, pas de révolutionner la gestion d'identités.

Le LSC est donc un projet Open Source sous licence BSD écrit en JAVA. Ces principales fonctionnalités sont :

  • Lecture/Écriture de :
    • Base de données par un connecteur compatible JDBC
    • Annuaires par le support du protocole LDAPv3
    • Fichiers CSV et LDIF
  • Transformation des données à la volée (moteur à base de JavaScript)
  • Différentes politiques de mise à jour des données cibles
  • Fonctions spécifiques :
    • Gestion de mots de passe (mise à jour, création automatique, etc)
    • Active Directory (gestion de la date de dernière connexion, gestion du champs use__rAccountControl)

Le projet n'en est vraiment pas à ses débuts puisqu'il est déjà utilisé dans le monde de l'entreprise. Par exemple :

  • Synchronisation de 90 000 comptes chez un grand compte de l'industrie
  • Synchronisation entre Oracle et OpenLDAP pour l'Université Pierre et Marie Curie, 250 000 comptes
  • Synchronisation AD vers OpenLDAP à la Sagem

Le projet est assez mature et stable, les développeurs de l'outil mettant un point d'honneur à ne pas casser la rétro-compatibilité du produit. Il est aussi relativement rapide, puisqu'il peut synchroniser 90 000 comptes en moins de 3 minutes. Un des défauts de l'outil est qu'il est très orienté LDAP et donc qu'il faut avoir d'assez bonnes connaissances de ce domaine pour pouvoir bien l'utiliser, surtout si les synchronisations sont complexes.

Il est toujours activement développé, et sa renommée grandit. En effet, le LSC a été présenté à la LDAPCon 2009 où il a remporté un vif succès auprès de la communauté LDAP mondiale (cf. http://www.symas.com/ldapcon2009/papers/clarke1.shtml).

La version 1.1.0 est sortie depuis quelques semaines et les prochaines fonctionnalités envisagées sont :

  • Consommateur syncrepl pour OpenLDAP et ApacheDS (RFC 4533)
  • Consommateur DirSync pour ActiveDirectory
  • Support d'autres langages de scripts

Pour plus d'informations rendez-vous sur le site du projet : lsc-project.org