Ma première contribution à OpenStack : intégrer TOTP dans Horizon
Lorsque j’étais stagiaire chez Infomaniak en 2023, j’ai eu l’opportunité incroyable de contribuer à un projet open-source majeur : OpenStack, et plus précisément au tableau de bord web Horizon.
Mon objectif était de rajouter la prise en charge de l’authentification à double facteur avec TOTP (Time-based One-Time Password) dans Horizon, en m’appuyant sur la fonctionnalité déjà existante dans Keystone. C’était une demande directe de nos clients du cloud public chez Infomaniak, qui souhaitaient renforcer la sécurité de leurs accès via l’interface web.
J’ai commencé par travailler sur des maquettes pour bien intégrer la fonctionnalité dans l’expérience utilisateur d’Horizon. Une fois satisfait du rendu, j’ai soumis mon premier patch le 6 juin 2023. Le patch a finalement été fusionné le 29 août, après 29 itérations. Cela a pris du temps notamment à cause d’un blocage du CI d’Horizon durant plus d’un mois, lié à des problèmes de dépendances avec JQuery. Mais l’équipe Horizon a été très réactive et transparente, ce qui m’a beaucoup appris sur la communication dans les projets open-source.
Tout au long du processus, j’ai été accompagné et soutenu par Thomas Goirand, un véritable mentore qui faisait partie de l'équipe infrastructure chez Infomaniak, mais aussi par des contributeurs expérimentés comme Vishal Manchanda (NEC), Akihiro Motoki et Radomir Dopieralski (Red Hat), qui ont beaucoup aidé lors des revues de code.
J’ai appris que pour qu’un patch soit accepté dans OpenStack, il faut bien documenter, ajouter des tests et rédiger une note de version. Ce cadre rigoureux assure une grande qualité du code et une bonne intégration dans l’ensemble du projet. Et tous ces éléments m'ont permis de comprendre l'importance de la rigueur, de la collaboration et du respect des standards dans un projet.
Le résultat final : une fonctionnalité activable facilement via local_settings.py
, qui est désactivée par défaut pour faciliter les mises à jour. Elle permet aux utilisateurs qui activent TOTP dans Keystone d’avoir également cette sécurité dans Horizon. Ce travail permet désormais aux opérateurs d’OpenStack de ne plus être bloqués hors de leur interface graphique en cas de vol de mot de passe.
Aujourd’hui, je suis très fier d’avoir contribué à la sortie d’OpenStack 2023.2 Bobcat avec cette fonctionnalité. Et comme le veut la politique chez Infomaniak, le patch a été poussé upstream et peut même être utilisé via les backports Debian non-officiels, assurant ainsi un vrai chemin de migration.
Cette expérience m’a permis de mieux comprendre les enjeux de la contribution open-source, l’importance du travail collaboratif et la patience qu’il faut parfois avoir dans les processus communautaires. C’est une aventure que je recommande à tous ceux qui veulent apprendre en faisant !
Pour aller plus loin
- 🔍 Review Gerrit du patch : https://review.opendev.org/c/openstack/horizon/+/885570
- 📰 Article officiel sur le blog OpenStack : New in OpenStack Bobcat: Horizon team introduces time-based one-time password (TOTP) authentication support