LEX, the definitive LDAP Explorer ! [1/4]

Je viens de commencer une série d’articles sur un outil tout à fait extraordinaire découvert il y a peu, au hasard d’échanges informels avec quelques spécialistes LDAP, j’ai nommé LDAP Explorer, ou LEX de son petit nom. Non, il ne s’agit pas d’une option permettant de jouer Lex Luthor dans un jeu en ligne pour mettre sa raclée à Superman, mais bel et bien du meilleur explorateur LDAP du marché !

C’est quoi LEX ?

Comme de nombreux consultants IAM, j’ai forcement dans ma boite à outils un explorateur LDAP. Comme je suis très feignant (oui, je suis feignant), je faisais comme tout le monde, c’est-à-dire :

  • ADSIEDIT fourni par Microsoft et gratuit lorsque j’ai besoin d’un browser LDAP coté Active Directory. Outil développé à la « va vite » et extrêmement basic mais accessible depuis la MMC.
  • LDAP Administrator de la société Softerra et payant lorsque j’ai besoin d’un browser LDAP à utiliser avec un autre service LDAP qu’Active Directory. Outil très puissant, la référence sur le marché depuis de nombreuses années.

Oui bien sûr, il est tout à fait possible d’utiliser LDAP Administrator pour administrer Active Directory, mais il manque quelques fonctions, disons spécifiques à Active Directory et qui rendent cet outil intéressant mais pas un must to have pour l’administration Active Directory (nous reviendrons sur ce point un peu plus loin).

Oui, il est aussi possible d’utiliser des alternatives « gratuites » à LDAP Administrator, mais là on rentre dans un monde rempli de projet SourceForge plus ou moins aboutis, avec des trucs sous JAVA, ce qui me donne des boutons très très rapidement. De plus, lorsque je travaille avec un outil, je veux dire vraiment « travailler », je ne veux pas dépendre d’un bout de code développé par un stagiaire un soir de pleine lune, mes outils professionnels, je préfère les payer et être tranquille. Chacun sa méthode, mais j’ai tendance à me méfier des produits « gratuits ».

C’est là où LEX intervient et m’apporte le meilleur des deux mondes !

En effet, LEX est un explorateur LDAP, tout ce qu’il y a de plus classique, mais il possède la caractéristique de contenir des fonctions très avancées en ce qui concerne l’utilisation et la gestion d’Active Directory. Et bientôt (nous y reviendrons) l’outil pourra également gérer un annuaire Azure Active Directory. Cela m’intéresse fortement…

Premiers pas avec l’outil LEX

Vous pouvez télécharger l’outil ici : http://ldapexplorer.com/en/download.htm

Vous pouvez trouver une description des fonctions principales ici : http://ldapexplorer.com/en/features.htm

Et consulter la documentation ici : http://ldapexplorer.com/en/manual.htm

Installation de LEX et première connexion LDAP

Cet article est basé sur la version 1.5 Build 003 de LEX.

Commençons donc l’installation,à cette étape, rien de bien compliqué, on est sur du bon vieux next / next / next…

Au premier lancement, vous êtes invité à renseigner la clé du logiciel ou à utiliser LEX en mode évaluation :

La différence principale qui existe entre le mode « trial version » et le mode « sous licence » est que seule une version sous licence peut modifier l’annuaire LDAP, en version d’évaluation, vous ne pouvez réaliser que des visualisations. La suite de cet article est réalisée avec la version sous licence, permettant d’exploiter pleinement l’ensemble des fonctionnalités.

Une fois lancé, sur le premier écran, il est alors possible de se connecter à des services LDAP sur le réseau public ou de paramétrer une connexion à un LDAP en interne, dans notre exemple nous allons nous connecter à un contrôleur de domaine Active Directory :

Il est alors possible de définir soi-même le serveur sur lequel se connecter :

Ou d’utiliser le bouton « Detect » qui va rechercher des serveurs LDAP ou des Contrôleurs de domaine AD sur votre réseau :

Ici, on détecte immédiatement les avantages de LEX lorsque l’on veut manipuler AD, il va pouvoir s’adapter à un contexte AD, proposer des informations puis des fonctions spécifiques à Active Directory :

Les autres onglets de la mire de connexion sont assez classiques, il s’agit de pouvoir par exemple filtrer les classes d’objet que l’on veut voir afficher dans l’explorateur LDAP.

Usage de LEX et options spécifiques à Active Directory

Rentrons maintenant dans le vif du sujet, ce qui saute immédiatement aux yeux, c’est que le produit est très « moche » !

Pour information (nous reviendrons plus loin sur cet aspect) une nouvelle version de LEX est en cours de préparation avec notamment une IHM totalement revisitée, avec encore plus de fonctions spécifiques à Active Directory :

Mais pour l’instant, continuons avec la version actuelle.

La sélection d’un objet permet d’afficher les attributs de cet objet dans la zone à droite, ici, nous voyons que les attributs sont typés via des icônes différentes, ce qui fait une première différence à comparaison des éditeurs LDAP classiques, avec l’habitude, si l’on recherche par exemple l’attribut « objetSID », on visualise immédiatement l’icône qui correspond à cet attribut :

Les options d’affichage sont complètes, avec :

Un affichage classique :

Un affichage sur le DN :

On remarque des petits détails, mais qui facilitent la vie de l’administrateur ou de l’architecte AD, ici pas besoin de vérifier un attributs LDAP pour vérifier si le compte est activé ou non, un compte désactivé affichera une icône spécifique, c’est vraiment sur ce type de fonction que LEX se distingue de la concurrence, il apporte une « intelligence » d’affichage Active Directory au lieu de se contenter d’afficher des objets au format LDAP :

Il est également possible de filtrer les objets affichés sans passer par la case requête LDAP, directement via un menu déroulant, typiquement, la liste des objets utilisateurs désactivés est très simple à afficher :

Avec la barre de filtre des attributs, on peut spécifier les attributs affichés : uniquement les attributs avec des valeurs, les attributs multi-value ou non – il existe aussi un système de filtre avancé sur les attributs affichés :

Bien évidemment, les attributs modifiables sont éditables depuis l’explorateur LDAP :

Un bon exemple des particularités de LEX par rapport à un éditeur LDAP classique est la gestion de l’attribut « nTSecurityDescriptor ». Cet attribut contient la liste des ACE (AccessControlEntry) posés sur l’objet, pour faire simple, c’est ce que vous voyez dans l’onglet sécurité de l’objet. Cet attribut n’est pas affiché dans ADSIEDIT, car Microsoft considère que l’onglet Sécurité suffit au bonheur des administrateurs :

Peu de personnes le savent, mais ces informations sur les ACEs sont stockées au sein de l’objet lui-même, dans cet attribut. Si l’on requête cet attribut depuis un explorateur LDAP classique, on reçoit une valeur en binaire ; inexploitable. LEX a donc intégré un convertisseur hexadécimal et un parseur afin de présenter l’attribut et le rendre éditable :

C’est tout bonnement génial.

Un autre très bon exemple des caractéristiques avancées de LEX est l’attribut « userAccountControl ». Quand on requête cet attribut via un explorateur LDAP classique, voilà ce que l’on peut trouver :

L’attribut userAccountControl est en fait construit avec une somme de valeurs qui décrivent certaines options sur le compte utilisateur, par exemple le fait qu’un utilisateur doit changer son mot de passe à la prochaine ouverture de session est contrôlé par cet attribut.

Pour comprendre comment cet attribut est construit et à quoi il peut bien servir, je vous conseille la lecture de ces articles :

https://blogs.technet.microsoft.com/askpfeplat/2014/01/15/understanding-the-useraccountcontrol-attribute-in-active-directory/

https://msdn.microsoft.com/fr-fr/library/ms680832(v=vs.85).aspx

https://support.microsoft.com/fr-fr/help/305144/how-to-use-the-useraccountcontrol-flags-to-manipulate-user-account-pro

A nouveau LEX se démarque en présentant non pas la valeur brute de l’attribut mais une interface permettant de paramétrer individuellement les différents paramètres de comptes, le calcul de la valeur finale (=la valeur de l’attribut via LDAP) sera fait automatiquement par LEX avant enregistrement des choix de l’administrateur au niveau de l’attribut :

Comme nous venons de le voir, LEX est bien plus qu’un explorateur LDAP, il intègre des fonctions qui lui permette quasiment de se substituer à la console ADUC !

Dans la suite de cette série d’articles, nous irons encore plus loin dans la découverte de LEX, croyez-moi, vous n’êtes pas au bout de vos surprises…