Objectif : générer de façon autonome les identifiants de connexions de chaque utilisateur pour un domaine (LDAP ou Active Directory) grâce à un formulaire en jQuery.
Essayer la démo.
Seule la partie de nommage sera abordée, la partie de traitement du formulaire ne fait pas partie de l'objet de ce billet.
Que vos utilisateurs soient gérés depuis un serveur LDAP Linux ou depuis un serveur Windows avec Active Directory (qui de toutes façons cache un serveur LDAP), vous devez adopter un nommage strict pour la définition des identifiants et adresses emails des utilisateurs de l'entreprise.
En effet, il n'y a rien de plus ennervant que de constater que certains identifiants (login) sont créés sur la base de prenom.nom puis d'autres sous p.nom ou encore pnom. Tout système informatique se doit d'être organisé et cohérent.
Dans mon cas, les utilisateurs sont crées sur un serveur LDAP au moyen d'une page intranet sécurisée derrière laquelle se trouve un script PHP. Ce n'est pas la partie PHP qui nous intéresse mais le nommage automatique en fonction des noms et prénoms.
Voici tout de même un exemple si vous êtes également intéressé par la partie PHP.
Contexte de nommage
Voici les règles de nommage utilisées dans mon cas :
- Email : prenom.nom@monentreprise.fr
- Identifiant : pnom
Ainsi, l'utilisateur Michael Hurni (décidément il est partout) disposera de l'adresse email : michael.hurni@blogmotion.fr et son identifiant de connexion (LDAP/AD) sera : "mhurni".
Dans le cas d'un prénom et / ou d'un nom composé, chaque première lettre des prénoms est sélectionnées puis toutes les parties du nom sont collées. Ainsi pour Jean-Marc De La Mort :
- Email : jean-marc.delamort@blogmotion.fr
- Identifiant : jmdelamort
Le formulaire
Le formulaire génère en même temps que la frappe (souvent appelé à tord ajax) et de façon automatique les champs email et identifiant, et ce dès lors qu'une première lettre du nom est entrée.
Une liste d'opération est effectuée par jQuery :
- Suppression des accents (n'hésitez pas à compléter la liste s'il en manque)
- Passer en minuscule tout ce qui est en majuscule
- Suppressions des espaces et tirets
Pour vous faire une idée du fonctionnement, essayez la démonstration.
Bien que la génération de l'email (comprendre la syntaxe) et de l'identifiant soient autonomes, il est cependant tout à faire possible de saisir ou de modifier ces valeurs manuellement. Cette possibilité permet la création de nom d'utilisateur générique ou temporaire (je préfère le terme temporaire pour des questions de sécurité).
Les sources
Je diffuse ce formulaire sous licence Creative Commons, comme tous les billets du blog. Vous pouvez biensûr librement le modifier en respectant les conditions associées.
Télécharger les sources (.zip)
Ce script est fourni à titre informatif, il vous faudra probablement l'adapter à votre infrastructure mais également le mettre en phase avec le contexte de nommage de vos utilisateurs.
Toute amélioration, correction , suggestion ou feedback sont les bienvenus.
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
3 commentaires
Merci pour le script mais j'ai une petite question, il n'y a pas la gestion du cas ou il y a déjà une personne avec le même login dans lannuaire ?
@Greg: De mon côté je contrôle après coup (donc en PHP) si le user existe ou non en interrogeant LDAP. Tu peux facilement faire une boucle qui ajoute un chiffre et l'incrémente tant que l'alias existe. Après j'ai fait au plus simple, mais tu pourrais vérifier en ajax si le compte existe ou non. C'est une bonne évolution possible 🙂
Merci bcp pour le script. Mais j'aimerais savoir comment l'introduire dans l'annuaire LDAP et surtout quel fichier doit on modifier ou créer. C'est l'une de partie de mon travail de memoire.Et en plus, est-ce que quelqun peut m'aider pour la modification de mot de passe sur roundcubemail-0.3.1?