opendj

Pass-Through Authentication et migration des mots de passe

Contexte

Dans un projet de migration d'un annuaire AD LDS vers un Forgerock DS, le principal problème est de pouvoir récupérer les mots de passe.

En effet, AD LDS (et AD DS) ne permettent pas d'exporter le hash du mot de passe en LDIF, et il n'est pas possible non plus simplement de les récupérer, même en passant par des outils tels que creddump , ntdsextract ou autre.

Forgerock OpenDJ / DS - Supprimer les contrôles de syntaxe

Par défaut les nouveaux annuaires LDAP issus des sources OpenDS (tels que OpenDJ / DS chez Forgerock, mais aussi Ping Directory) renforcent les contrôles sur la syntaxe des attributs, le schéma, etc.

Ceci empêche par exemple d'avoir un objet avec de multiples classes structurelles non hiérarchiques (par exemple inetorgperson et country).

Par contre lorsqu'on importe des données d'un annuaire un peu moins strict (type Sun / Oracle DSEE), on se heurte souvent à des erreurs.

Upgrade Forgerock OpenDJ / DS

Deux scénarios de migration / upgrade seront étudiés :

  • upgrade "en place" d'un annuaire en version inférieure
  • ajout dans la topologie de réplication d'un annuaire en version supérieure.

Dans cet exemple, on va procéder à une migration de la version OpenDJ 3.5.1 à la version DS 6.5.

Environnement

L'environnement de test est le suivant :

3 serveurs : dj1.id-num.com, dj2.id-num.com, dj3.id-num.com.

Dans un premier temps, seuls les serveurs dj1 et dj2 sont installés, en mode multi-maîtres :

LDAP : les types de groupes

Les annuaires LDAP sont principalement utilisés pour gérer 2 types d'objets :

  • les comptes utilisateurs (qui vont permettre une authentification centralisée)
  • des groupes d'utilisateurs (qui vont permettre une gestion de droits).

D'autres objets annexes sont souvent ajoutés, qui ont un rôle de "listes de valeurs".

Nous allons voir dans cet article les différents types de groupes qui peuvent être utilisés, sachant que selon les RFC LDAP 4519, seuls les premiers sont vraiment standardisés.

Création de comptes Administrateurs dans OpenDJ / Ping Directory

Lorsqu'on installe un annuaire LDAP, on crée un compte (souvent "cn=Directory Manager" par défaut) qui a tous les privilèges, qui n'est pas soumis aux ACI, bref, un superAdmin avec tous les privilèges.

Il vaut donc mieux éviter d'utiliser ce compte pour des opérations. On peut toujours utiliser des comptes "utilisateurs", mais dans ce cas, le DN du compte change selon le baseDN.

Si on veut industrialiser le monitoring de l'annuaire, par exemple, il est intéressant d'avoir toujours le même compte, quel que soit l'instance et donc le baseDN.

OpenDJ : mise en place du suivi des connexions

Par défaut, il n'est pas possible de déterminer la date de dernière connexion réussie sur un annuaire LDAP (last login time). Seules les erreurs de connexion peuvent être détectées dans les politiques de mots de passe.

Parfois cependant, il est intéressant de connaître la date de dernière connexion, afin de pouvoir supprimer - ou bloquer - des comptes inutilisés depuis plusieurs mois.

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.