Présentation

Historique

Le logiciel libre Service Desk a été créé en 2020 pour donner un accès simple aux comptes d’un annuaire OpenLDAP afin de pouvoir rapidement les débloquer ou modifier leur mot de passe. L’outil est principalement destiné aux équipes de support N1 qui doivent répondre aux utilisateurs ayant des problèmes pour accéder à leurs outils informatiques.

Capture d'écran de Service Desk 0.6

Il fait partie de la suite d’outils du projet LDAP Tool Box :

  • Self Service Password : interface destinée aux utilisateurs pour qu’ils modifient ou réinitialisent leur mot de passe
  • White Pages : recherche et affichage des informations de l’annuaire, avec trombinoscope et carte géographique
  • Service Desk : outil dédié aux administrateurs et support utilisateur pour vérifier le statut des comptes et les débloquer ou réinitialiser leur mot de passe

Désormais ces logiciels peuvent être utilisés à la fois avec OpenLDAP et avec Active Directory, offrant une solution simple de sécurisation de ce dernier en évitant d’ouvrir des accès trop permissifs (l’actualité des récentes failles de sécurité d’Active Directory confirme bien ce besoin)..

Quel est le problème ?

Comme souvent en informatique, les questions simples (mon compte est-il utilisable pour m’authentifier ?) sont en fait complexes (mon compte a-t-il été désactivé par un administrateur ? A-t-il été bloqué suite à de mauvaises tentatives d’authentification ? Le mot de passe a-t-il expiré ? Le compte a-t-il dépassé sa date de validité ? Est-ce que je possède le bon mot de passe ?)

Si l’utilisateur final constate facilement qu’il n’arrive pas à se connecter, il est parfois difficile pour le support d’en comprendre la raison.

C’est là le principal problème auquel répond Service Desk, et pour bien comprendre son utilité, il faut connaître les différents statuts d’un compte dans un annuaire LDAP :

  • Compte bloqué : un compte peut être bloqué si trop de tentatives d’authentification ont échoué. Dans OpenLDAP, il est possible pour un administrateur de bloquer manuellement le compte, mais pas dans Active Directory
  • Compte désactivé : la notion de compte activé/désactivé est native dans Active Directory, mais pas encore dans OpenLDAP (qui a besoin pour le moment d’une modification de schéma pour avoir cette fonctionnalité)
  • Mot de passe expiré : le mot de passe a été changé il y a trop longtemps, l’utilisateur doit le modifier
  • Compte inactif : l’utilisateur ne s’est pas authentifié depuis un certain temps
  • Compte invalide : un compte est invalide s’il a une date de début située dans le futur ou une date de fin située dans le passé

Bien entendu il existe des paramétrages dans chaque annuaire pour configurer ces statuts (nombre de tentatives avant blocage, durée de validité d’un mot de passe, …), qui sont propres à chaque solution. En sus la façon dont le statut du compte est traduit dans les attributs de l’utilisateur n’a rien à voir entre OpenLDAP et Active Directory.

On comprend donc l’intérêt d’avoir un logiciel qui présente ces informations de façon conviviale et identique quel que soit l’annuaire utilisé !

Nouveautés de la version 0.6

Support Active Directory

C’est l’une des améliorations les plus attendues sur ce logiciel : pouvoir se connecter directement à un Active Directory.

Logo Active Directory

C’est désormais possible dans la nouvelle version tout en conservant les fonctionnalités existantes du produit.

D’un point de vue technique, un nouveau paramètre de configuration a été ajouté pour indiquer le type d’annuaire utilisé :

$ldap_type = "activedirectory";

L’utilisation d’Active Directory nécessite aussi d’utiliser la pagination si l’annuaire contient plus de 1000 comptes. En effet si ce paramètre n’est pas renseigné, Active Directory ne renverra jamais plus de 1000 comptes (limite par défaut). Pour renvoyer l’ensemble des comptes, il faut donc activer la pagination :

$ldap_page_size = 1000;

Enfin Service Desk peut récupérer dynamiquement les critères de sécurité des mots de passe (durée de validité, temps de blocage, …), ceux-ci étant stockés dans le contexte de nommage, il faut déclarer celui-ci dans la configuration :

$ldap_default_ppolicy = "DC=example,DC=com";

Il faut également s’assurer d’utiliser LDAPS pour la connexion à l’annuaire car Active Directory refusera le changement d’un mot de passe sur une connexion LDAP en clair.

Amélioration du support OpenLDAP

Que les aficionados d’OpenLDAP se rassurent, Service Desk continue de fonctionner avec cet annuaire et améliore même sa prise en charge :

  • Affichage du nom de la politique appliquée à l’utilisateur
  • Gestion des nouveautés de la ppolicy (Behera Draft 10) apparues dans OpenLDAP 2.5, en particulier la modification des dates de validité du compte
  • Recherche d’un mot de passe dans l’historique des mots de passe pour indiquer à l’utilisateur si le mot de passe qu’il possède a été changé récemment

Pour cette dernière fonctionnalité, l’activation se fait par le paramètre :

$use_checkpasswordhistory = true;

Audit

La fonctionnalité d’audit existait déjà dans la version précédente, elle permet de tracer dans un fichier toutes les actions effectuées dans l’interface, en renseignant qui en est l’auteur et quel est le compte concerné.

Cet audit peut maintenant être consulté directement au sein de l’application, en activant cette option :

$use_showauditlog = true;

Un bouton apparaîtra alors dans le menu.

Commentaires

Service Desk réalisant des opérations sensibles pouvant impacter la sécurité des systèmes, il est possible de demander ou d’exiger la saisie d’un commentaire lors de certaines actions : blocage/déblocage d’un compte, activation/désactivation d’un compte.

Par exemple, pour demander un commentaire lors du déblocage d’un compte :

$use_unlockcomment = true;

Cela ouvrira une pop-up lors de l’appui sur le bouton.

Pour rendre ce commentaire obligatoire (ce qui empêchera de valider l’action tant que le commentaire n’aura pas été saisi) :

$use_unlockcomment_required = true;

Ce commentaire sera enregistré dans le fichier d’audit.

Hooks

Le système de hooks n’existait que pour la réinitialisation du mot de passe : celui-ci permettait d’appeler un script avant ou après le changement pour propager l’action à d’autres composants.

Ce système peut être maintenant activé pour les autres actions, par exemple pour exécuter un script après la désactivation d’un compte :

$posthook_disable = "/usr/share/service-desk/posthook_disable.sh";
$display_posthook_disable_error = true;

Affichage de la politique des mots de passe

Pour faciliter le travail des équipes de support, un panneau reprenant les critères de robustesse du mot de passe peut être affiché au niveau du formulaire de réinitialisation. Ce composant indiquera directement si les critères sont respectés lors de la saisie du nouveau mot de passe.

Par exemple pour exiger 12 caractères, au moins une minuscule, au moins une majuscule et afficher la barre de calcul d’entropie du mot de passe :

$pwd_min_length = 12;
$pwd_min_lower = 1;
$pwd_min_upper = 1;
$pwd_check_entropy = true;
$pwd_show_policy = "always";

Service Desk 0.6 - Affichage de la politique des mots de passe

IGA et tableaux de bord

La notion d’IAM (Identity and Access Management) est présente depuis longtemps mais ces dernières années c’est le terme d’IGA qui prend de l’importance. Il signifie Identity Governance and Administration et correspondrait aux processus autour de la gestion des identités comme la gestion des rôles, l’audit des accès, la revue des comptes, … Cela reste une notion générique dont les contours sont encore un peu flous.

Est-ce que Service Desk est un logiciel d’IGA ? Ce ne serait pas exact de dire qu’il couvre tous les aspects de l’IGA mais il est certain qu’il possède déjà de nombreuses fonctionnalités qui y sont liées, en particulier les tableaux de bord.

Service Desk fournit les tableaux de bord suivants :

  • Liste des comptes bloqués
  • Liste des comptes désactivés
  • Liste des comptes dont le mot de passe va bientôt expirer (période d’alerte configurable)
  • Liste des comptes inactifs (période d’inactivité configurable)
  • Liste des comptes invalides (dates de validité dépassées)

L’utilisation du composant technique datatables rend ces tableaux assez simples à manipuler, avec des filtres et des tris. Il est ainsi facile d’identifier la liste des comptes “fantômes” et de faire le nécessaire pour les supprimer.

Service Desk 0.6 - Tableau de bord des comptes inactifs

D’autres fonctionnalités d’IGA sont prévues pour les prochaines versions !

Pour en savoir plus

Un résumé de cet article est à retrouver sur le site LinuxFR.org ainsi que l’annonce officielle de la sortie de la version 0.6 de Service Desk sur le site OW2.

Autres liens :