forgerock

OpenIDM - les avantages et la souplesse de l'ouverture

Une fois n'est pas coutume, cet article ne sera pas (trop) orienté technique, mais fait plutôt suite à un retour d'expérience sur un projet qui se termine, et dans lequel la souplesse de OpenIDM et son côté "boîte à outils" ont permis de faire des choses qui auraient été compliquées à faire avec un autre outil (sachant que la principale solution avec laquelle je peux comparer est IBM ISIM).

Paramétrage et personnalisation OpenIDM

L'architecture OpenIDM est très orientée "boîte à outils", à la différence de solutions telles que IBM Security Identity Manager.

Même si depuis la version 3.1 on dispose d'une interface d'administration, qui permet de réaliser une partie du paramétrage de la solution - notamment au niveau des mappings, une grande partie de la mise en oeuvre et de la personnalisation passe par des fichiers de configuration json et des scripts, javascript ou groovy.

Mise en place d'un cluster OpenIDM

OpenIDM est prévu pour s'installer et fonctionner en mode cluster, de manière assez facile.

Chaque instance partage le même repository, ce qui leur permet de disposer des mêmes données, la configuration étant alors partagée. Seul le repository est utilisé pour le cluster, sans autre mécanisme (pas de test de lien réseau par exemple).

Cet article explique comment démarrer deux instances OpenIDM qui vont partager le même repository et utiliser une ressource LDAP commune (OpenDJ dans notre exemple).

OpenIDM

OpenIDM est la solution de gestion des identités orientée "provisionnement", proposée par Forgerock.

A la différence des produits OpenDJ (issu de OpenDS) et OpenAM (issu de OpenSSO), c'est une solution entièrement nouvelle. Ecrite en java, elle évolue et se bonifie rapidement au fil des ans.

L'un de ses principales particularités est de proposer des interfaces REST pour la quasi-totalité des opérations.

OpenDJ : personnalisation du schéma

Il est d'usage courant de personnaliser le schéma de données, en ajoutant des attributs et des classes d'objets spécifiques au client.

OpenDJ permet bien évidemment de définir son propre schéma de données. La déclaration des attributs et classes d'objets est faite dans différents fichiers LDIF, chargés au démarrage de l'instance, et qui se trouvent dans $DJHOME/config/schema.
Par défaut, après l'installation, on y trouve une quinzaine de fichiers:

OpenDJ : ajout d'un Root Suffix

L'ajout d'un Root Suffix (racine d'un arbre LDAP) peut se faire via la console graphique, mais aussi en ligne de commande.

On peut vouloir ajouter un backend spécifique, ce qui permettra de gérer la réplication différemment pour ce suffixe, ou ajouter le suffixe dans un backend existant.

En ligne de commande

On va utiliser la commande dsconfig, qui gère la configuration de l'annuaire.