Automatisation complète de la gestion des utilisateurs
Contexte du projet
Dans le cadre de ma formation en BTS SIO, option SISR, j’ai eu l’opportunité de participer à un projet centré sur la gestion et la manipulation de bases de données. L’objectif était de mettre en pratique les compétences acquises en SQL et en Python afin de concevoir une chaîne d’automatisation complète, permettant de manipuler, administrer et stocker efficacement des données.
Python, en tant que langage informatique portable est, et sera de plus en plus utilisé pour assurer des tâches d’administration système de part sa multi-compatibilité.
L’objectif était de construire une solution cohérente permettant :
- La normalisation d’identités utilisateurs
- La génération de logins conformes aux standards d’entreprise
- La création automatisée de comptes et bases MariaDB
- L’application stricte du principe du moindre privilège
- L’intégration à un environnement Active Directory
- La génération de mots de passe robustes
Les différentes étapes du projet :
I – Lecture et écriture de fichiers CSV – Base du projet
Le point de départ repose sur la lecture d’un fichier CSV contenant :
Prenom;NOMAlain;LambertJean-Baptiste;Le Floc’hSophie;O’ConnorFrançois Xavier;DE LA VILLETANAYÉmilie;DUPONT-THIBERTAnaïs;MARTÍNEZ-GÓMEZPierre-Paul;D’ALEMBERTMarie-Josée;ST-PIERRE
Le script loginNormalizer.py génère automatiquement des logins au format normalisé :
loginalambertjbleflochsoconnorfxdelavilletanayedupontthibertamartinezgomezppdalembertmjstpierre
Le projet a ensuite été complexifié pour gérer des cas réels d’entreprise :
- Prénoms composés → utilisation des initiales
- Noms à particules (de, du, le…)
- Accents
- Apostrophes
- Tirets
- Caractères spéciaux
II – Création d’une base MariaDB
Le projet a ensuite intégré une dimension base de données. Il ne s’agissait plus seulement de générer des logins, mais de créer un environnement sécurisé pour chaque utilisateur.
Une base dédiée est créée, un utilisateur associé est configuré, et les privilèges sont strictement limités à sa propre base. Le principe du moindre privilège est appliqué : aucun accès aux autres bases, aucune opération administrative possible.
Accès distant
Maintenant nous allons permettre un accès distant à partir de l’adresse ipv4 d’une machine de sorte à simuler un cas d’utilisation depuis un réseau externe: pour cela nous devrons éditer les fichier de configuration de mariadb et du serveur Apache :


III – Intégration au domaine et extraction Active Directory
Pour rapprocher le projet d’un environnement professionnel, une station Windows 10 a été intégrée au domaine stesio.jol. Les scripts PowerShell extractUsersPerpignan.ps1 puis extractUsersToulouse.ps1 ont permis d’extraire des utilisateurs depuis différentes unités d’organisation vers des fichiers CSV structurés. À partir de ce moment, les données utilisées provenaient d’un véritable annuaire Active Directory, ce qui ancre le projet dans une logique d’infrastructure réelle.

IV – Génération et validation de mots de passe robustes
La sécurisation des accès constitue une étape essentielle. Le script createPassword.py génère automatiquement des mots de passe respectant une politique stricte de complexité et d’unicité.
extrait du fichier de sortie :
passwordgVeu9.&*Y6w/z.fBPC2-4Bnw:P2yQ:*@5vqffJV7xxeX=2+RKdj9@9Us-9=t.H4?/=vHnu4+Lpz45aR6-I<x9m>.MCC7jz$W3#41ITw%!kqGx+5@&7PlR4T4
V – Consolidation des données utilisateurs
Une fois les utilisateurs extraits et les mots de passe générés, le script genererLoginToulouse.py centralise les informations, applique la normalisation et produit un fichier consolidé prêt pour la création des comptes MariaDB. On passe alors d’une succession de traitements isolés à une véritable chaîne de transformation cohérente.
VI – Génération automatisée des scripts SQL de création
Afin d’industrialiser le déploiement, genererScriptSqlCreate.py produit automatiquement un script SQL permettant de créer les utilisateurs MariaDB, leurs bases dédiées et leurs privilèges associés.
Chaque utilisateur dispose de sa propre base, préfixée pour identifier l’environnement, et ne peut manipuler que ses propres données. Cette automatisation permet un déploiement rapide, homogène et sécurisé.

VII – Génération automatisée des scripts SQL de suppression
La gestion du cycle de vie ne s’arrête pas à la création. Le script genererScriptSqlDrop.py génère les instructions nécessaires pour supprimer proprement les utilisateurs et leurs bases associées. Cette étape garantit qu’aucun accès résiduel ne subsiste et complète l’approche d’automatisation industrielle.

Conclusion :
Ce projet démontre l’évolution d’un simple script Python vers une automatisation complète de la gestion des utilisateurs dans un environnement structuré. En reliant Active Directory, la normalisation des identités et l’administration MariaDB, j’ai construit un workflow cohérent, sécurisé et reproductible.
Au-delà de l’aspect technique, il reflète ma capacité à penser un projet dans sa globalité, à automatiser intelligemment et à appliquer des principes professionnels de gestion des accès.
Laisser un commentaire