Dolibarr : réussir l’intégration WhatsApp avec une approche sécurité – Guide complet en français
Par [Votre Nom] – Expert Dolibarr & Sécurité des données
1. Pourquoi intégrer WhatsApp à Dolibarr ?
| Besoin métier | Apport de l’intégration |
|---|---|
| Communication instantanée avec prospects, clients et partenaires | Réduction des délais de réponse, amélioration de la satisfaction. |
| Gestion centralisée des contacts | Toutes les conversations sont rattachées à un tiers (client, fournisseur, lead). |
| Historisation des échanges pour le suivi commercial et le support | Traçabilité complète dans le CRM/ERP. |
| Automatisation des tâches (rappels, creation de devis, mise à jour de stocks) | Gains de productivité et réduction des erreurs manuelles. |
Mais chaque message WhatsApp contient des données personnelles (nom, numéro, historique de conversation). La sécurité ne peut donc pas être un après‑pensée : elle doit être au cœur du projet dès la conception.
2. Cadre juridique & conformité (France & UE)
| Règle | Implication pour l’intégration |
|---|---|
| RGPD (Article 5‑32) | Mettre en place des mesures techniques et organisationnelles (chiffrement, contrôle d’accès, journalisation). |
| Loi Informatique et Libertés | Nommer un DPO si nécessaire, réaliser une DPIA (Data Protection Impact Assessment) lorsqu’on traite des données sensibles via WhatsApp. |
| Clause de confidentialité (WhatsApp Business API) | Ne pas exploiter les conversations à des fins de prospection non sollicitée. |
| Respect des conditions d’utilisation de la API | Utiliser uniquement les endpoints officiels, ne pas stocker les messages dans des services non conformes. |
3. Architecture recommandée (sécurisée)
graph TD
A[Front‑end client (Web, Mobile)] -->|HTTPS| B[API WhatsApp (official) ]
B -->|TLS 1.3| C[Serveur Dolibarr (PHP/Apache)]
C -->|Chiffrement AES‑256| D[Base de données Dolibarr]
C -->|OAuth2 / JWT| E[Provider d’identité (ex. Azure AD)]
D -->|Journal d’audit| F[SIEM / Logs de sécurité]
3.1. Utiliser l’API officielle WhatsApp Business
- Pas d’accès direct aux comptes personnels.
- Nécessite d’obtenir un Meta Certified Solution Provider (ou passer par un partenaire agréé). – Les messages sont transmis via HTTPS avec chiffrement TLS 1.3.
3.2. Authentification mutuelle
- OAuth2 avec client‑credentials pour les appels serveur‑à‑serveur.
- Utiliser des tokens à courte durée (15‑30 min) et les rafraîchir via le refresh‑token.
- Stocker le secret dans un Vault (ex. HashiCorp Vault, Azure Key Vault).
3.3. Chiffrement des échanges internes
- Tous les appels entre le serveur Dolibarr et l’API WhatsApp doivent se faire en HTTPS avec certificat let’s encrypt ou interne signé.
- Les messages sont chiffrés de bout‑en‑bout uniquement entre le téléphone du client et le serveur WhatsApp ; côté serveur, les données sont chiffrées en repos (AES‑256) et en transit (TLS).
3.4. Stockage sécurisé des conversations
| Option | Avantages | Inconvénients |
|---|---|---|
| Journalise uniquement les métadonnées (date, ID tiers) | Conformité minimale, faible empreinte | Pas d’historique de texte complet |
| Sauvegarde cryptée côté serveur (AES‑256, clé dans Vault) | Historique complet, recherche possible | Nécessite gestion de la conservation (max 30 jours recommandé) |
| Ne pas sauvegarder (seulement en temps réel) | Conformité maximale | Pas de suivi post‑session, perte de valeur analytique |
4. Étapes de mise en œuvre pas à pas
4.1. Pré‑requis
- Compte WhatsApp Business (via l’application ou le Partner Solution)
- Accès à la WhatsApp Business API (token d’accès, numéro de téléphonie)
- Serveur Dolibarr (version ≥ 14, PHP 8.x, base de données MySQL ≥ 5.7 ou MariaDB)
- Certificat SSL/TLS valide sur le serveur (obligatoire pour les webhook).
- Espace de stockage sécurisé (chiffré si possible) et un Vault pour les secrets.
4.2. Installation du module « WhatsApp » (open‑source ou interne)
| Étape | Action | Détails de sécurité |
|---|---|---|
| 1 | Installer le module (ex. dolibarr_waba via Git ou marketplace) |
Vérifier le checksum (SHA‑256) du zip avant déploiement. |
| 2 | Configurer le fichier conf.php |
– WABA_API_URL = endpoint officiel– WABA_TOKEN = stocké dans le Vault, jamais en clair dans le repo.– WABA_WEBHOOK_SECRET = clé aléatoire 32 bits, stockée en dehors du code source. |
| 3 | Définir les droits d’accès | L’utilisateur Linux exécutant Apache doit appartenir à un groupe dédié (waba) avec les permissions read sur le répertoire du module et write uniquement sur le répertoire de logs (chmod 750). |
| 4 | Activer HTTPS sur le domaine Dolibarr et activer HSTS. | Ajouter Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" dans le .htaccess. |
| 5 | Tester le webhook via curl -X POST -H "X-Hub-Signature: sha256=..." |
Le payload doit contenir un signature HMAC‑SHA256 basée sur le secret partagé. Vérifier que la signature est bien présente avant traitement. |
4.3. Cartographie des contacts
- Création ou synchronisation des contacts dans le module CRM → Tier de Dolibarr.
- Association du numéro WhatsApp au champ “Phone” du tiers.
- Gestion du consentement : ajouter un champ “Consentement WhatsApp” (Oui/Non) qui doit être validé par le client (ex. via formulaire d’onboarding).
ISO 27001 – A.8.2.1 : « Les procédures de gestion des données personnelles doivent inclure la collecte du consentement explicite. »
4.4. Scénarios d’automatisation
| Scénario | Triggers (Webhook/WhatsApp) | Actions automatisées dans Dolibarr |
|---|---|---|
| Nouveau message reçu | incoming_message webhook |
– Création d’une tâche « Suivi de lead » – Ajout d’un événement dans le calendrier du commercial. |
| Message contenant une phrase clé | message_body + regex |
– Génération automatique d’un devis pré‑rempli (template). – Envoi d’une notification par e‑mail au manager. |
| Statut de lecture | message_status |
– Mise à jour du champ whatsapp_read dans la fiche du tiers. |
| Message de type « template » (ex. confirmation de commande) | type=template |
– Création d’une commande ou mise à jour du stock. |
| Erreur de transmission | status=fail |
– Enregistrement d’une alerte dans le SIEM et notification au support. |
4.5. Journalisation & audit
- Log d’événements (
php://syslog) avec niveau INFO pour chaque appel API. - Enrichir les logs avec
X-User-Id,X-Client-IP,X-Widget-Version. - Rotation des logs avec
logrotate(ex. 7 jours, compression gzip). - Conservation des messages : max 30 jours (ou selon votre politique de rétention) après suppression automatique.
4.6. Tests de sécurité
| Test | Outils | Objectif |
|---|---|---|
| Pen‑test OWASP Top‑10 | OWASP ZAP, Burp Suite | S’assurer qu’il n’y a pas de injection, XSS ou CSRF. |
| Scanning de vulnérabilités | Nessus, OpenVAS | Identifier failles dans les dépendances PHP. |
| Tests d’authentification | Postman avec token expiré | Vérifier le mécanisme de rafraîchissement et le verrouillage après X tentatives. |
| Audit de configuration TLS | SSL Labs | Vérifier que TLS 1.3 est obligatoire, que les ciphers faibles sont désactivés. |
| DPIA (Data Protection Impact Assessment) | Modèle CNIL | Documenter le traitement des données WhatsApp, les mesures d’atténuation et les droits des personnes concernées. |
5. Bonnes pratiques de sécurité au quotidien
| Domaine | Action concrète |
|---|---|
| Gestion des secrets | Utiliser HashiCorp Vault ou le Secret Manager du cloud ; interdire les variables d’environnement en clair dans les dépôts Git. |
| Mises à jour | Appliquer les patchs de Dolibarr et de PHP dans les 48 h suivant leur sortie. |
| Contrôle d’accès | Implémenter le principe du least privilege : le rôle « waba‑user » ne doit avoir que les droits « read » sur les tables tier et « write » sur la table whatsapp_log. |
| Sauvegardes | Chiffrer les backups (mysqldump --encrypt) et les stocker hors site (ex. stockage objet S3 avec SSE‑KMS). |
| Formation | Sensibiliser les équipes commerciales au phishing WhatsApp : ne jamais cliquer sur des liens suspects reçus via la plateforme. |
| Monitoring | Configurer des alertes sur les spikes d’activité (ex. > 100 messages/minutes) via le SIEM (Splunk, Elastic). |
| Tests de conformité | Réaliser une DPIA avant chaque mise en production majeure. |
6. Exemple de configuration sécurisée (extrait de conf.php)
<?php// ------- WHATSAPP BUSINESS API -------
define('WABA_API_URL', 'https://graph.facebook.com/v19.0');
define('WABA_TOKEN', $_ENV['WABA_TOKEN']); // Valeur injectée par le Vault
define('WABA_SECRET', $_ENV['WABA_WEBHOOK_SECRET']);
define('WABA_VERIFY_TOKEN', 'my_very_secret_verify');
// ------- SECURITY SETTINGS -------
define('LOG_SECURE', true); // Logs uniquement via syslogdefine('WEBHOOK_SIGNATURE_ALGO', 'sha256'); // HMAC‑SHA256
define('API_RATE_LIMIT', 60); // 60 req/min max par IP
// ------- RETENTION POLICY -------
define('WHATSAPP_MESSAGE_RETENTION_DAYS', 30); // Suppression automatisée après N jours
?>
Note : le fichier
conf.phpest exclu du dépôt Git (gitignore). Il est généré à chaque déploiement par le pipeline CI/CD qui récupère les secrets depuis le Vault.
7. Conclusion
Intégrer WhatsApp à Dolibarr peut transformer la relation client‑fournisseur, mais cette puissance ne doit pas se faire au détriment de la sécurité et de la conformité. En suivant les étapes ci‑dessus :
- Utiliser exclusivement l’API officielle WhatsApp Business, protégée par OAuth2 et TLS 1.3.
- Stocker les secrets hors code (Vault) et appliquer le principe du moindre privilège. 3. Chiffrer les données en repos et en transit, tout en limitant la durée de conservation à ce qui est strictement nécessaire.
- Mettre en place une journalisation robuste, un monitoring continu et des tests d’intrusion pour anticiper les vulnérabilités.
- Documenter les traitements via une DPIA et veiller à obtenir le consentement explicite des utilisateurs.
En adoptant cette approche « security‑by‑design », vous bénéficiez d’une communication instantanée sans compromettre la confidentialité de vos données ni celle de vos clients. Vous êtes alors prêt à exploiter tout le potentiel de WhatsApp dans votre ERP/CRM Dolibarr, tout en respectant les exigences du RGPD et des meilleures pratiques de cybersécurité.
Ressources complémentaires
| Type | Lien |
|---|---|
| Documentation officielle WhatsApp Business API | https://developers.facebook.com/docs/whatsapp/cloud-api |
| Guide de sécurité Dolibarr | https://www.dolibarr.org/doc/en/faq/security |
| Modèle de DPIA CNIL | https://www.cnil.fr/fr/modeles-de-dpias |
| HashiCorp Vault – Secrets Engine | https://www.vaultproject.io/docs/secrets |
| OWASP ASVS – Niveau 2 | https://owasp.org/www-project-application-security-verification-standard/ |
Bon développement ! 🚀