Guide complet pour sécuriser votre ERP/CRM open‑source avec une authentification à deux facteurs en un mois
1️⃣ Contexte & Objectifs
| Qui | Pourquoi | Objectif 30 jours |
|---|---|---|
| Équipes DevOps | Le nombre croissant de comptes administrateur et de portails métiers rend la sécurité d’accès indispensable. | Déployer 2FA (authentification à deux facteurs) sur tous les accès à Dolibarr (Web, API, SSH, Git). |
| Sécurité | Les vulnérabilités d’authentification (phishing, credential stuffing) augmentent. | Réduire le risque de prise de compte de plus de 80 % selon les études OWASP. |
| Expérience utilisateur | La sécurité ne doit pas freiner la productivité. | Garantir une implémentation fluide, sans interruption de service pendant 30 jours. |
2️⃣ Road‑map : 30 jours pour la 2FA sur Dolibarr
| Jour | Action | Livrable / KPI |
|---|---|---|
| 1‑2 | Kick‑off & audit (inventaire des comptes, des flux d’accès, des versions de Dolibarr). | Diagramme d’architecture + matrice des comptes. |
| 3‑5 | Choix du fournisseur 2FA (ex. : Duo Security, Keycloak, Google Authenticator – en mode open‑source). | Décision + documentation de configuration. |
| 6‑8 | Prototype : mise en place d’un sandbox (Docker / VM) avec la 2FA activée sur un sous‑ensemble de comptes administrateur. | Test de connexion réussi → Rapport de bugs éventuels. |
| 9‑12 | Intégration au niveau Web (module hhook ou plugin Dolibarr 2FA). |
Page de connexion demandant le code OTP → Log d’audit. |
| 13‑15 | Intégration API & CLI (tokenisation des appels REST, configuration des clés SSH). | Scripts de connexion API validés avec 2FA. |
| 16‑18 | Déploiement progressif via feature toggle : 10 % des utilisateurs → 30 % → 60 % → 100 %. | Monitoring des taux de connexion réussie / abandon. |
| 19‑22 | Support & formation (tutoriels internes, FAQ, hotline). | 100 % des utilisateurs formés, tickets ≤ 2 jours. |
| 23‑26 | Tests de charge & résilience (stress‑test de l’infrastructure 2FA, failover). | Rapport de performance (latence < 200 ms). |
| 27‑30 | Go‑live complet et bilan 30 jours (KPIs, retours, plan d’évolution). | Dashboard de suivi 30 jours + recommandations pour la prochaine version. |
3️⃣ Prise en main technique
3.1. Choisir le mécanisme 2FA
| Mécanisme | Points forts | Intégration avec Dolibarr |
|---|---|---|
| OTP via authentificateur mobile (Google Authenticator, Authy, Microsoft Authenticator) | Simple, gratuit, aucun serveur externe requis | Utilisation du plugin totp du repository officiel ou du module hhook pour rediriger vers /auth/tfa. |
| WebAuthn / FIDO2 (clé USB/BIOMétrique) | Résistant au phishing, expérience transparente | Implémentation via Keycloak Authenticator intégré à Dolibarr (module keycloak). |
| SMS / Email OTP | Accessible aux utilisateurs qui n’utilisent pas d’app mobile | Nécessite un service externe ( Twilio, SendGrid ) – à éviter en production pour la conformité RGPD. |
| TOTP intégré à l’API (JWT signé) | Idéal pour les scripts CI/CD | Générer un JWT contenant le claim tfa_verified=true. |
Pour la version 30 jours, on recommande le OTP via authentificateur mobile (TOTP) avec le plugin Dolibarr 2FA (compatible Dolibarr 19+). C’est le plus simple à retirer si besoin et fonctionne avec la plupart des clients mobiles.
3.2. Installation du plugin Dolibarr 2FA (exemple)
# 1️⃣ Connectez‑vous au serveur Dolibarr
ssh user@dolibarr-server
# 2️⃣ Placez le plugin dans le répertoire des plugins
cd /var/www/dolibarr/plugins/
git clone https://github.com/Dolibarr/dolibarr-2fa.git twilio_2fa # (exemple)
# 3️⃣ Activez le plugin via l’interface d’administration
# > Administrer > Plugins > Gestion des plugins → "Activer"
# 4️⃣ Configurez le secret partagé (clé partagée) :
php /var/www/dolibarr/htdocs/admin/plugins.php
3.2.1. Paramétrage du secret TOTP
| Champ | Valeur recommandée |
|---|---|
2FA_TOTP_SECRET |
256‑bits aléatoires (ex. openssl rand -hex 32) |
2FA_TOTP_ISSUER |
Nom de votre service (ex. MyCompany ERP) |
2FA_TOTP_REMEMBER_ME |
30 jours (pour éviter la saisie à chaque connexion) |
2FA_TOTP_LOCKOUT_TIME |
15 min après 5 échecs |
Note DevOps : stockez le secret dans le vault (HashiCorp, Azure Key Vault) et injectez‑le dans le fichier
.envdu conteneur Docker.
3.3. Configuration du serveur d’authentification central (ex. : Keycloak)
# docker‑compose.yml (extrait)
services:
keycloak:
image: quay.io/keycloak/keycloak:24.0
environment:
- KEYCLOAK_ADMIN=admin
- KEYCLOAK_ADMIN_PASSWORD=**********
- KC_HTTP_ENABLED=true
volumes:
- keycloak_data:/opt/keycloak/data
ports:
- "8080:8080"
command: start-dev --auto-build
volumes:
keycloak_data:
- Créez un realm
dolibarr. - Ajoutez un client
dolibarr-webavec Standard Flow + OTP Authenticator. - Configurez le client secret et Mappage des attributs (
email,username). - Activez le Realm role mapper
offline_accesspour les API.
Intégration : dans
dolibarr.conf.php, définissez$conf['dol_auth'] = 'keycloak';
et pointez vers le URL du serveur Keycloak.
4️⃣ FAQ – 2FA sur Dolibarr (30 jours)
| N° | Question | Réponse |
|---|---|---|
| 1 | Dois‑je installer un plugin ou ajouter un module spécifique ? | Oui. Pour une implémentation simple, utilisez le plugin officiel dolibarr-2fa (TOTP). Il s’ajoute dans plugins/ et active la demande d’OTP dès la première connexion. |
| 2 | Quel secret faut‑il stocker et où ? | Un secret aléatoire de 256 bits (ex. openssl rand -hex 32). Conservez‑le dans le vault du CI/CD et injectez‑le via variable d’environnement 2FA_TOTP_SECRET. |
| 3 | Les utilisateurs doivent‑ils disposer d’une appli mobile ? | Oui, pour le TOTP. Recommandez des applications standard (Google Authenticator, Authy, Microsoft Authenticator). L’utilisateur scanne le QR‑code affiché à la configuration du profil. |
| 4 | Comment gérer les comptes d’administration qui ne possèdent pas de téléphone ? | – Autorisez le mode “application password” (un token long envoyé par e‑mail). – Ou créez un token d’API avec un timeout de 30 jours, utilisé seulement par les scripts CI/CD. |
| 5 | Quel impact sur la performance du serveur ? | Minimal : le calcul du TOTP est effectué côté serveur en < 5 ms. Le vrai goulot d’étranglement peut être la latence réseau vers le service d’authentification (ex. : Keycloak). Utilisez le load‑balancer et le caching du token OTP. |
| 6 | Comment tester le flux 2FA sans impacter la prod ? | En mode sandbox (Docker compose avec dolibarr_test). Déployez le plugin, configurez un compte test, et simulez la connexion via curl -c cookie.txt -d "login=admin&passwd=xxxxx&otp=123456" . |
| 7 | Comment désactiver la 2FA si le serveur d’OTP tombe ? | Activez le fallback : dans dolibarr.conf.php, ajoutez $conf['2fa_fallback'] = true; qui permet la connexion uniquement après 7 jours d’inactivité ou après 3 tentatives OTP échouées. |
| 8 | Est‑ce compatible avec le mode “CLI / cron jobs” ? | Oui. Générez un token d’API à l’étape d’enregistrement du compte. Utilisez‑le dans le script curl -H "Authorization: Bearer $API_TOKEN" . Le token possède déjà le flag tfa_verified=true. |
| 9 | Quelles sont les exigences en conformité (RGPD, ISO 27001) ? | – Consentement : informer les utilisateurs qu’ils sont soumis à 2FA. – Conservation du secret : chiffrez le secret dans le vault. – Journalisation : chaque événement 2FA doit être loggé avec user_id, timestamp, source_ip. |
| 10 | Quel délai pour passer de 0% à 100% de couverture ? | La roadmap de 30 jours propose une montée en charge progressive (10 % → 30 % → 60 % → 100 %). La plupart des organisations atteignent 100 % sans interruption en 3‑4 semaines. |
| 11 | Comment automiser la création de comptes avec 2FA ? | Via l’API de Dolibarr : POST /admin/user.php?txcmd=add + paramètre 2fa_secret généré dynamiquement et renvoyé dans le e‑mail d’invitation. |
| 12 | Quelle est la procédure de récupération en cas de perte de l’app mobile ? | 1️⃣ Ouvrez l’onglet “Gestion des clés 2FA” dans l’interface admin. 2️⃣ Réinitialisez le secret (un nouveau QR‑code apparaît). 3️⃣ Envoyez‑le par mail sécurisé. 4️⃣ L’utilisateur doit confirmer par question de sécurité ou token de réinitialisation délivré par l’équipe Ops. |
| 13 | Est‑il possible de lier la 2FA à l’authentification SSO (SAML) ? | Oui. Configurez Keycloak comme IdP SAML et activez le “Browser SSO + OTP”. Le flux devient : 1️⃣ Redirection vers IdP → authentification SSO → challenge OTP → retour à Dolibarr. |
| 14 | Quelles métriques monitorer en production ? | – tfa_success_rate (taux de succès OTP) – tfa_failure_rate (taux d’échec) – tfa_avg_latency_ms – user_2fa_enrollment (nombre d’utilisateurs inscrits) – lockout_events (détections de tentatives suspectes) |
| 15 | Quand faut‑il envisager une migration vers WebAuthn/FIDO2 ? | Dès que les postes de travail prennent en charge les clés de sécurité (USB/BIOMétrique) et que vous souhaitez éliminer totalement les applis mobiles. Cette migration peut être prévue au 3ème trimestre suivant le déploiement 30 jours. |
5️⃣ Bonnes pratiques DevOps (Checklist)
| ✅ | Pratique | Comment l’appliquer |
|---|---|---|
| 1 | Versionner le code du plugin | Git‑flow : feature/2fa-implementation, release/2fa-30d. |
| 2 | IaC (Infrastructure as Code) | Utilisez Terraform/Ansible pour créer le conteneur Docker contenant le plugin et les variables d’environnement. |
| 3 | Secrets Management | HashiCorp Vault ou Azure Key Vault → injectez 2FA_TOTP_SECRET via env au démarrage du conteneur. |
| 4 | Health‑checks | Ajoutez un endpoint /healthz qui renvoie 200 si tfa_status=ok. |
| 5 | Canary Deployment | kubectl rollout pause → kubectl set image → surveiller les métriques pendant 24 h avant de passer à la prochaine vague. |
| 6 | Rollback | Conservez le Docker image tag dolibarr:2fa-rollback. En cas d’erreur, docker compose down && docker compose up -d avec le tag précédent. |
| 7 | Documentation | README.md incluant les étapes d’onboarding, les FAQ et les contactes Ops. |
| 8 | Monitoring (Prometheus + Grafana) | Scrape les métriques tfa_success_total, tfa_failure_total, tfa_latency_ms. |
| 9 | Alerting | Alertes Slack/Teams quand failure_rate > 5% ou latency > 300ms. |
| 10 | Post‑mortem mensuel | Analyse des tickets 2FA, amélioration du processus de sur‑prise des utilisateurs. |
6️⃣ Conclusion – Bilan 30 jours
| Élément | Résultat attendu |
|---|---|
| Couverture 2FA | 100 % des comptes administrateur et 80 % des comptes utilisateurs finaux. |
| Disponibilité | 99,9 % de disponibilité du service d’authentification (SLA interne). |
| Temps moyen de connexion | + 150 ms (OTP) – acceptable pour les processus internes. |
| Sécurité | Réduction du risque de compromission d’identifiants de plus de 70 % (selon simulation OWASP). |
| Adoption interne | 94 % des utilisateurs formés, taux de réinitialisation OTP < 5 %. |
| Livrable final | Document « 2FA‑Dolibarr‑30‑jours » (diagrammes, scripts IaC, FAQ) + tableau de bord Grafana partagé. |
En résumé : En suivant cette roadmap de 30 jours, vous pouvez intégrer une authentification à deux facteurs solide, conforme et évolutive à votre plateforme Dolibarr, tout en gardant le contrôle total via vos pratiques DevOps (IaC, monitoring, rollback, secret‑management).
🚀 Prêt à passer à la 2FA ? Lancez le day‑1 kickoff dès aujourd’hui et transformez la sécurité de votre ERP !
Rédigé par l’équipe DevOps & Sécurité – November 2025
Version 1.0 – Documentation interne à destination des équipes d’exploitation.