Introduction
Dolibarr, l’ERP/CRM open source, offre une fonctionnalité multi-sociétés puissante pour gérer plusieurs entités juridiques au sein d’une même installation. Cependant, cette fonctionnalité requiert une configuration sécurité rigoureuse pour éviter les contaminations de données et garantir la conformité. Ce tutoriel vous guide pas à pas, en intégrant les meilleures pratiques de sécurité dès la conception.
Étape 1 : Comprendre le modèle multi-sociétés de Dolibarr
Principe de base
- Une seule base de données : Toutes les sociétés partagent la même base MySQL/PostgreSQL.
- Isolation par clés étrangères : Chaque enregistrement (facture, commande, contact) est lié à une
entity( société viafk_entity). - Partage sélectif : Possibilité de partager des éléments (produits, contacts) entre sociétés ou de les restreindre.
⚠️ Risque principal :
Une mauvaise configuration peut entraîner :
- Fuites de données entre sociétés
- Accès non autorisé à des informations sensibles
- Non-conformité RGPD/californienne (CCPA)
Étape 2 : Prérequis de sécurité avant configuration
1. Serveur & Environnement
- Version Dolibarr ≥ 18.0 (correctifs sécurité récents)
- PHP ≥ 8.1 avec extensions sécurisées (pas
allow_url_fopen) - Base de données avec accès restreint (pas de root en application)
- HTTPS obligatoire avec certificat valide
- Pare-feu applicatif (ModSecurity, NAXSI) en place
2. Comptes administrateur
- Compte principal ultra-sécurisé :
- Mot de passe complexe (≥ 16 caractères)
- Authentification à deux facteurs (2FA) activée
- IP de connexion restreinte si possible
- Comptes secondaires : Limiter le nombre d’administrateursglobaux
3. Sauvegarde pré-configuration
# Sauvegarde complète + fichier de configuration
mysqldump -u user -p dolibarr_db > dolibarr_pre-multientity_$(date +%F).sql
cp /path/to/dolibarr/conf/conf.php conf.php.backup_$(date +%F)
Étape 3 : Configuration multi-sociétés pas à pas
1. Créer les sociétés dans Dolibarr
- Aller dans Accueil → Société → Nouvelle société
- Remplir les informations légales exactes (RCS, SIRET, TVA intracommunautaire)
- Définir une propriétaire distincte pour chaque société (pas le même compte admin)
2. Configuration globale (admin)
Home → Administration → Configuration → Modules- Multi-sociétés : Coché
- Partage : Désactiver le partage global par défaut
- Mode démo : Désactivé en production
3. Paramètres de sécurité par société
Pour chaque société (via Société → Onglet Configuration si disponible) :
- Restreindre l’accès aux documents (factures, commandes) aux seuls membres de cette société
- Désactiver le partage des produits sauf besoin métier explicite
- Limiter les droits par défaut des nouveaux utilisateurs
Étape 4 : Gestion des utilisateurs avec confinement
Règle d’or : Un utilisateur = Une société (sauf cas direction)
-
Créer les utilisatures par société
Home → Utilisateurs → Nouvel utilisateur- Attribuer UNE seule société primaire
- Dans l’onglet Permissions :
Société : [Société X] → Accès : Lu/Écrit
Société : [Société Y] → Accès : Aucun - Supprimer le droit "Admin" sauf pour 1-2 personnes par société
-
Groupes d’utilisateurs par société
- Créer un groupe par société (ex:
groupe_socA_comptable) - Y rattacher les utilisateurs concernés
- Dans Permissions par groupe :
- Restreindre toutes les actions à la société assignée
- Créer un groupe par société (ex:
- Utilisateurs "transverses" (direction/ holding)
- Leur donner accès en lecture seule aux sociétés concernées
- Auditer leurs actions régulièrement (logging)
Étape 5 : Configuration technique de confinement
1. Fichier conf.php (sécurité additionnelle)
// Limiter l'accès par IP pour l'admin global (optionnel mais fort)
$dolibarr_main_force_https = 1; // Forcer HTTPS
$dolibarr_main_prod = 1; // Mode production (cache, erreurs cachées)
// Restrictions avancées (exemple)
$dolibarr_main_db_character_set = 'utf8mb4';
$dolibarr_main_db_collation = 'utf8mb4_unicode_ci';
2. Désactiver les interfaces de développement
- Dans Administration → Fonctions techniques :
- Désactiver l’accès aux logs pour les non-admins
- Désactiver l’éditeur de modèle si non utilisé
3. Journalisation (logs)
- Activer les logs par défaut
- Configurer la rotation des logs (via logrotate)
- Surveiller les logs d’authentification (
/var/log/dolibarr/dolibarr.log)
Étape 6 : Vérification et test de confinement
Test de pénétration interne
-
Compte utilisateur A (Société Alpha) :
- Se connecter
- Essayer d’accéder à une facture de la Société Beta via URL directe (
/commande/fiche.php?id=XX) - Doit échouer avec "Accès refusé"
-
Compte admin restreint :
- Vérifier que l’onglet "Liste des sociétés" n’apparaît pas
- Vérifier que les menus de configuration globale sont cachés
- Export de données :
- Tenter d’exporter un contact de la Société Alpha
- Vérifier que seuls les contacts de la Société Alpha sont exportables
Outils de vérification
- Requête SQL pour vérifier l’isolation :
SELECT COUNT(*)
FROM llx_societe
WHERE entity = 1; -- Devrait correspondre au nb de socs de l'entité 1 - Utiliser le module "Audit" de Dolibarr si disponible
Étape 7 : Maintenance sécurité continue
Routines mensuelles
-
Audit des droits :
- Lister tous les utilisateurs avec droits admin
- Vérifier les appartenances aux groupes
-
Revue des logs :
- Connexions depuis IP inhabituelles
- Échecs d’authentification répétés
- Mise à jour :
- Toujours tester la mise à jour sur un environnement de pré-production
- Sauvegarder avant chaque update
- Vérifier les notes de sécurité de la nouvelle version
Conformité RGPD/LOPD
- Pour chaque société :
- Renseigner le responsable du traitement dans la f société
- Durée de conservation des données paramétrable par société
- Gestion des demandes d’accès/rectification isolée par société
Erreurs courantes à éviter
| Erreur | Conséquence | Correction |
|---|---|---|
| Compte admin partagé entre sociétés | Traçabilité impossible | Un compte admin par société max |
| Partage global des produits activé | Données tarifaires mélangées | Désactiver sauf besoin métier justifié |
| Utilisateur sans société assignée | Accès potentiel à toutes les données | Toujours assigner une société primaire |
| Pas de logging | Pas de forensic en cas d’incident | Activer logs + rotation + surveillance |
Conclusion
La gestion multi-sociétés dans Dolibarr est puissante mais exigeante sur le plan sécurité. La clé du succès réside dans :
- Le principe de moindre privilège : Donner uniquement les droits nécessaires
- La séparation nette : Une société = un groupe d’utilisateurs = des droits spécifiques
- La surveillance continue : Logs, audits, mises à jour
En suivant ce tutoriel, vous bâtissez une architecture conforme, sécurisée et maintenable. N’oubliez jamais que derrière chaque société gérée, il y a des responsabilités légales et des données sensibles à protéger.
Ressources complémentaires :
- Documentation officielle Dolibarr sur le multi-sociétés
- Guide de sécurité Dolibarr
- Checklist RGPD pour ERP
Note : Ce tutoriel est donné à titre indicatif. Pour un environnement critique, consultez un expert en sécurité des systèmes d’information.