Dolibarr : comment réussir WhatsApp avec une approche sécurité

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

  1. Compte WhatsApp Business (via l’application ou le Partner Solution)
  2. Accès à la WhatsApp Business API (token d’accès, numéro de téléphonie)
  3. Serveur Dolibarr (version ≥ 14, PHP 8.x, base de données MySQL ≥ 5.7 ou MariaDB)
  4. Certificat SSL/TLS valide sur le serveur (obligatoire pour les webhook).
  5. 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

  1. Création ou synchronisation des contacts dans le module CRM → Tier de Dolibarr.
  2. Association du numéro WhatsApp au champ “Phone” du tiers.
  3. 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.php est 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 :

  1. Utiliser exclusivement l’API officielle WhatsApp Business, protégée par OAuth2 et TLS 1.3.
  2. 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.
  3. Mettre en place une journalisation robuste, un monitoring continu et des tests d’intrusion pour anticiper les vulnérabilités.
  4. 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 ! 🚀

Publications similaires