ldapvi, un éditeur LDAP pour les barbus
Signature : | Mis en ligne le : 07/03/2009
Catégorie(s) :
  • GNU/Linux Magazine
  • | Domaine :
    1 commentaire(s) creative commons

     Retrouvez cet article dans : Linux Magazine 104

    Il existe quantité d’éditeurs LDAP graphiques. Ils possèdent tous les avantages classiques de telles applications, c’est-à-dire qu’ils offrent une vue structurée sur les données traitées (une arborescence dans notre cas), qu’ils permettent très facilement de s’affranchir des détails techniques sous-jacents en permettant des manipulations instinctives (déplacement des enregistrements par glisser/déposer par exemple). En contrepartie, ils ressemblent souvent à des usines à gaz nécessitant quinze clics pour chaque modification, les rendant très peu adaptés à des manipulations de masse. Et ceux que j’ai pu essayer jusqu’ici ne m’ont jamais convaincu : gq est excessivement fragile et enchaîne crash sur crash, Luma ressemble trop à un jouet Playskool et ldapbrowser est en Java, donc pénible à installer vu le peu d’intégration de Java dans les distributions Linux actuelles. Bref, j’étais dubitatif jusqu’à ce que je découvre ldapvi, un éditeur en mode texte.

    Utilisation de base

    Le principe simple et génial de ldapvi est d’utiliser un éditeur de texte pour éditer le contenu d’un annuaire LDAP au format LDIF, et de mettre à jour en retour cet annuaire lorsque ce contenu est modifié. Par défaut, c’est vi qui est utilisé, comme le nom l’indique, mais il est possible d’utiliser n’importe quel autre éditeur en positionnant simplement la variable d’environnement EDITOR. Toutes les fonctionnalités de l’éditeur, comme l’utilisation d’expressions régulières pour effectuer des substitutions, deviennent ainsi possibles. L’invocation classique de ldapvi est la suivante : ldapvi --discover --user uid=foo,ou=users,dc=domain,dc=com --host ldap.domain.com. Après authentification de l’utilisateur, on se retrouve alors devant l’éditeur désiré, affichant l’intégralité du contenu de l’annuaire. Chacune des entrées de l’annuaire est précédée par son DN, précédé d’un numéro d’ordre propre à la session d’édition courante. Exemple : La modification d’un enregistrement existant consiste à modifier les valeurs courantes de ses attributs ou à en rajouter ou en supprimer certains. L’effacement d’un enregistrement consiste à effacer l’intégralité du bloc correspondant. L’ajout d’un enregistrement se fait en ajoutant un nouveau bloc, avec le mot-clé add à la place du numéro d’ordre. Enfin, le déplacement d’un enregistrement dans l’annuaire se fait en modifiant son DN, tout simplement. À la sortie de l’éditeur, ldapvi cherche les modifications apportées. S’il n’y en a aucune, le programme s’arrête. Sinon, il vérifie la syntaxe du document final, et propose à l’utilisateur de corriger les éventuelles erreurs : Sinon, le programme soumet à l’utilisateur un bilan des changements effectués pour confirmation : Les options disponibles sont :
    • y : soumettre les changements ;
    • Y : soumettre les changements, en ignorant les erreurs ;
    • e : revenir dans l’éditeur ;
    • + : revenir dans l’éditeur, avec ajout des attributs optionnels ;
    • v : examiner les changements au format LDIF ;
    • V : examiner les changements au format ldapvi ;
    • b : se ré-authentifier ;
    • B : passer de l’authentification simple à SASL ;
    • * : changer de mécanisme d’authentification SASL ;
    • s : ignorer le premier changement ;
    • r : ignorer les effacements ;
    • q : sauver les changements au format LDIF et quitter ;
    • Q : ignorer les changements et quitter.
    Une fois les changements validés, ils sont envoyés au serveur LDAP. C’est à ce moment-là seulement que sont vérifiées les ACL permettant d’effectuer ces modifications, ainsi que les éventuelles violations de schéma. En cas de rejet d’une de ces modifications, ldapvi propose alors de nouveau les mêmes options à l’utilisateur :

    Astuces d’utilisation

    ldapvi possède un certain nombre de paramètres d’invocation et de configuration. Il n’est pas question de les présenter tous ici (après tout, il y a une page de manuel pour ça), juste de présenter les plus intéressantes pour une utilisation classique.

    Invocation simplifiée

    ldapvi utilise la bibliothèque openldap pour se connecter à l’annuaire, et donc à sa configuration. Celle-ci se trouve dans les fichiers /etc/openldap/ldap.conf ou /etc/ldap/ldap.conf pour le système en fonction de la distribution, et ~/.ldaprc pour l’utilisateur. Si cette configuration est correctement renseignée, il n’y a plus besoin de préciser le serveur à utiliser, ni à utiliser l’auto-découverte du contexte, et l’invocation se résume alors à : ldapvi --user uid=foo,ou=users,dc=domain,dc=com --host ldap.domain.com. ldapvi est également capable de générer lui-même cette configuration. L’invocation ldapvi --config --discover --host ldap.domain.com produit ce résultat : Préciser l’utilisateur sous forme de son DN complet devient vite fastidieux. Il est également possible d’utiliser à la place un filtre de recherche, comme (uid=foo). Avec les guillemets nécessaires pour éviter l’interprétation par le shell, l’invocation se résume alors à : ldapvi --user ‘(uid=foo)’.

    Récupération ciblée

    Récupérer l’intégralité de l’annuaire, lorsqu’il s’agit juste de modifier un seul enregistrement, est également fastidieux. Une première possibilité consiste à changer de base de recherche, et la portée de la recherche, avec les options --base <DN> et --scope <base> ou avec l’option --read <DN>, qui revient au même. Néanmoins, il est également possible de passer comme paramètre un filtre de recherche, sur le même modèle en fait que pour ldapsearch. Les trois invocations ci-dessous sont donc équivalentes : Elles donnent toutes le résultat suivant :

    Exploitation des schémas

    Il est très facile de modifier l’annuaire, à partir de son contenu actuel. En revanche, à moins de maîtriser parfaitement les schémas, il est quelque peu difficile de savoir quels attributs supplémentaires sont disponibles ou même de créer un enregistrement à partir de rien. Pas de souci, ldapvi est également capable d’exploiter les schémas utilisés. Par défaut, seuls les attributs possédant une valeur apparaissent dans l’éditeur. L’option --may permet d’afficher également les autres attributs, sous une forme commentée. Ainsi, l’invocation ldapvi --user ‘(uid=foo)’ --may uid=bar donne le résultat suivant : 1 En fait, un dialecte basé sur LDIF, voire http://www.lichteblau.com/ldapvi/manual.xml#syntax pour les détails. Pour créer un nouvel enregistrement à partir de rien, l’option --class <class>, qui peut être spécifiée autant de fois que nécessaire, permet d’éditer directement un modèle d’enregistrement, sans recherche préalable. Ainsi, l’invocation ldapvi --user ‘(uid=foo)’ --class inetOrgPerson --class posixAccount donne le résultat suivant :

    Autres modes d’utilisation

    ldapvi autorise également certaines formes alternatives d’invocation, qui en font une alternative aux outils classiques d’Openldap, de manière plus verbeuse et interactive :
    • ldapvi --out est similaire à ldapsearch.
    • ldapvi --in est similaire à ldapmodify.
    • ldapvi --delete est similaire à ldapdelete.
    • ldapvi --rename est similaire à ldapmodrdn.
    Les options --quiet et --noninteractive permettent de spécifier un comportement plus proche des originaux. En conclusion, si vous êtes un utilisateur fréquent de LDAP, et que vous maîtrisez LDIF1, essayez rapidement cet outil facile à prendre en main et très efficace. Vous ne le regretterez pas.

     Retrouvez cet article dans : Linux Magazine 104

    Donnez votre avis - 1 commentaire(s)
  • chach dit :
    Encore plus sympa à utiliser, ldapsh: http://ldapsh.sourceforge.net/ Il permet de se balader dans l'arbre LDAP comme dans un filesystem, et d'éditer les entrées comme ldapvi !
  • Vous souhaitez commenter cet article ?
    Brèves Flux RSS
    Édito : GNU/Linux Magazine 149
    Édito : GNU/Linux Magazine HS N°60
    Édito : Misc 61
    Édito : Linux Pratique 71
    Édito : Linux Essentiel N°25
    Communication RSS Com. RSS Presse
    Lancement de la plateforme de vente en ligne de PDF des Éditions Diamond ! Un...
    Misc N°61 – Communiqué de presse
    GNU/Linux Magazine N°149 – Communiqué de presse
    GNU/Linux Magazine HS N°60 – Communiqué de presse
    Linux Pratique N°71 – Communiqué de presse
    prochainement moteur de recherches des articles
     
    :
    :
    Jours heures minutes secondes
    En kiosque Flux RSS

    Le tout nouveau GNU/Linux Magazine est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau Misc est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau Linux Pratique est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau GNU/Linux Magazine HS est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau Linux Essentiel est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau Misc HS est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...