Sécurité Dolibarr : Power BI Guide pratique pour passer à l’échelle

Version 1.0 – novembre 2025

Objectif : Vous aider à sécuriser votre instance Dolibarr tout en exploitant pleinement le potentiel de Power BI pour transformer vos données ERP/PGM en tableaux de bord interactifs, fiables et prêts à être partagés à l’échelle de votre organisation.


1️⃣ Pourquoi combiner Dolibarr et Power BI ?

Dolibarr Power BI
ERP/PMG open‑source très modulable (gestion commerciale, comptabilité, stocks, projets, etc.) Plateforme d’intelligence métier et de visualisation de données, capable d’ingérer, transformer et publier des jeux de données complexes.
Architecture LAMP/MySQL (ou PostgreSQL) simple à déployer Connecteurs natifs pour MySQL, PostgreSQL, OData, Web‑API, fichiers CSV/Excel, etc.
Accès en temps réel aux transactions Modélisation sémantique (Data‑model), rafraîchissement en direct ou planifié, publications cloud ou on‑prem.
Grande communauté francophone et anglophone Edición Desktop, Service Power BI Online, Power BI Embedded.

Résultat attendu : Un tableau de bord qui montre, par exemple, l’évolution du chiffre d’affaires par client, le taux de rotation des stocks ou le suivi des projets en cours, tout en garantissant la confidentialité et l’intégrité des données de Dolibarr.


2️⃣ Sécuriser Dolibarr avant de le connecter à Power BI

2.1. Principes de base (défense en profondeur)

Couche Action recommandée
Accès – Authentification forte (LDAP/Active Directory ou 2FA).
– Limitation des IP via le pare‑feu.
Chiffrement – HTTPS avec certificat valide (Let’s Encrypt).
– Chiffrement des connexions MySQL/PostgreSQL (TLS).
Gestion des droits – Utiliser les permissions Dolibarr (usergroups, persoons, companies).
– Créer un groupe dédié PowerBI_ReadOnly avec lecture seule sur les modules nécessaires.
Journalisation – Activer le log des accès (dol_log) et des requêtes SQL lentes.
– Rotations de logs quotidiennes, rétention 30 jours.
Sauvegarde – Sauvegarde incrémentale + dump complet chaque nuit.
– Tests de restauration periodique.
Mise à jour – Patch mensuel de Dolibarr + mise à jour du serveur (OS, PHP, DB).
Sandbox – Déployer une instance de lecture (replication DB) pour les rapports Power BI afin de ne pas impacter la production.

2.2. Étapes concrètes d’hardening

  1. Force l’HTTPS

    # .htaccess
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

  2. Restreindre les droits d’accès au répertoire admin (exemple avec Apache)

    <Directory "/var/www/dolibarr/admin">
    Require ip 10.0.0.0/24 # IP de l’équipement Power BI
    </Directory>

  3. Créer le groupe « PowerBI_ReadOnly »

    • Dans Administration → Utilisateurs → GroupesAjouter un groupe : PowerBI_ReadOnly.
    • Cochez les droits Lecture sur : Bank accounts, Customers, Suppliers, Products, Orders, Invoices, Statistics.
    • Créez un utilisateur pbi_user assigné à ce groupe, mot de passe généré aléatoirement (ou via LDAP).

  4. Installer le module de chiffrement côté DB (MySQL)

    SHOW VARIABLES LIKE 'have_ssl';
    SET GLOBAL ssl_ca = '/etc/ssl/certs/ca-dolibarr.pem';
    SET GLOBAL require_secure_transport=ON;

  5. Activer le journal d’audit (dans conf/viewinfo.conf)
    audit_log=1
    audit_log_path=/var/log/dolibarr/audit.log

Astuce : Utilisez le module “Security Enhancements” (disponible depuis Dolibarr 18.0) pour activer le CSRF token et le CSP (Content‑Security‑Policy) côté front.


3️⃣ Architecture d’intégration Power BI ↔ Dolibarr

+----------------+          +----------------------+          +-----------------+
| Dolibarr (DB) | <---> | Incremental ETL | <---> | Power BI Desktop|
| (MySQL/PostgreSQL) | (Azure Data Factory| | (Query / API) |
+----------------+ +----------------------+ +-----------------+
^ |
| v
+-------------------+
| Cache (Power BI) |
+-------------------+

  • ETL Recommandé : Azure Data Factory / Power Automate / Talend (extraction incrémentale via timestamp des dernières modifications).
  • Mode d’accès :

    • DirectQuery (si le volume < 2 M lignes et latence acceptable).
    • Import (si vous avez besoin de transformations lourdes, rapports plus rapides).
  • Sécurité à la source : les identifiants sont stockés dans Power BI Service avec Managed Identity ou Azure Key Vault (si vous êtes sur Azure).


4️⃣ Guide pratique « Passer à l’échelle »

4.1. Étapes d’onboarding (30 jours)

Jour Objectif Action clé
1‑3 Évaluation du périmètre Identifier les rapports critiques (ex. : chiffre d’affaires, stocks, devis).
4‑7 Création des groupes de sécurité PowerBI_ReadOnly + PowerBI_Admin (si besoin de modification).
8‑12 Mise en place du pipeline ETL Azure Data Factory → Copy ActivityMySQL connectorStaging Azure BlobAzure Synapse (ou Power BI Dataset).
13‑18 Modélisation Power BI Utiliser Power Query pour nettoyer, créer des relations, appliquer des Row‑Level Security (RLS).
19‑22 Test de performance 10 % de rafraîchissements par jour, monitoring des temps de requête (≤ 5 s).
23‑26 Publication & gouvernance Publier sur Power BI Service → créer Workspace dédié, définir les capacités (Premium per user ou P1).
27‑30 Documentation & formation Rédiger le Run‑book de production, organiser une session de formation aux utilisateurs finaux.

4.2. Exemple de modèle Power BI (simplifié)

let
Source = Sql.Database("mydbserver", "dolibarr_db", [Query="
SELECT
o.id,
o.date_transaction,
o.total_ht,
o.status,
c.label AS client,
p.label AS product,
oi.quantity,
oi.price
FROM llx_ticket o
JOIN llx_categorie c ON o.fk_client = c.id
JOIN llx_linecommandec lc ON lc.fk_ticket = o.id
JOIN llx_product p ON p.id = lc.fk_product
JOIN llx_ticketline oi ON oi.fk_ticket = o.id AND oi.fk_product = p.id
WHERE o.status = 'paid' AND o.date_transaction >= CURRENT_DATE - 90
"])
in
Source

  • RLS (Row‑Level Security) sample
    CREATE ROLE rls_powerbi;
    GRANT SELECT ON llx_ticket TO rls_powerbi;
    ALTER TABLE llx_ticket ENABLE ROW LEVEL SECURITY;
    -- Chaque utilisateur Power BI recevra un filtre sur `fk_user` = USER_ID()

4.3. Scaling horizontal

Dimension Technique Outils
Base de données Partitionnement des tables (ex. : orders par année) PARTITION BY RANGE (order_date) (PostgreSQL).
Power BI Dataset Passer de Import à DirectQuery avec café (caching) ou créer plusieurs datasets partitionnés par région. Power BI Service, Power BI Embedded.
ETL Utiliser Parallel Copy Activity (max 80 copies) ou Dataflow Gen2 pour le scaling. Azure Data Factory, Synapse Pipelines.
Infrastructure Conteneuriser Dolibarr (Docker) + DB (MariaDB) + Power BI Gateway (on‑prem) Docker‑Compose, Kubernetes, Azure Container Apps.
Monitoring Métriques (CPU, IOPS, temps de requête) via Prometheus + Grafana. Alertes sur dépassement de 80 % de seuil.


5️⃣ Bonnes pratiques à adopter au quotidien

Domaine Pratique recommandée
Gestion des identifiants – Utiliser des service principals Azure AD et Managed Identity.
– Rotation des secrets tous les 90 jours.
Sécurité des rapports – Ne jamais exposer les clés d’accès SQL dans le modèle Power BI.
– Activer le Workspaces privé et les Access Right (Contributor / Member).
Performance – Limiter les colonnes récupérées (SELECT col1, col2 …).
– Utiliser des aggregations pré‑calculées pour les KPI lourds.
Data Governance – Mettre en place un Glossaire métier (data‑dictionary) partagé.
– Documenter les règles de pseudonymisation si données personnelles.
Testing – Automatiser les tests de connexion (Power BI Publisher / PowerShell).
– Tests de charge avec F5 LoadRunner ou k6.
Continuité d’activité – Réplication géographique du DB (master‑slave).
– Plan de bascule vers une instance de secours via Power BI Service Failover.
Documentation – Utiliser Confluence ou Notion avec des templates “Sécurité – Reporting”.
– Versionner le code Power BI (.pbix) avec Git (exports en XML).


6️⃣ Checklist de mise en production

Action
1 [ ] Certificat SSL installé et fonctionnel sur le serveur Dolibarr.
2 [ ] Règle de pare‑feu : seule l’adresse IP du serveur Gateway Power BI autorisée.
3 [ ] Compte pbi_user créé avec le groupe PowerBI_ReadOnly et aucun droit d’écriture.
4 [ ] Pipelines ETL testés avec rafraîchissement quotidien de 1 % des données.
5 [ ] Modèle Power BI publié dans un Workspace Premium, RLS configuré.
6 [ ] Monitoring activé : latence requête ≤ 5 s, utilisation CPU DB ≤ 30 %.
7 [ ] Backup de la base et sauvegarde du Workspace (export JSON).
8 [ ] Documentation distribuée aux équipes : gouvernance, procédure de récupération.
9 [ ] Tests de sécurité externes (scan OWASP, pen‑test).
10 [ ] Formulaire de support créé (ticket JIRA) pour les incidents Power BI.


7️⃣ Conclusion

L’alliance Dolibarr ↔ Power BI, lorsqu’elle est accompagnée d’une sécurité rigoureuse, permet de transformer vos données ERP opérationnelles en insights visuels puissants, tout en conservant la conformité et la confiance des parties prenantes.

  • Sécurisez d’abord votre instance Dolibarr : permissions granulaires, HTTPS, audits.
  • Préparez un pipeline ETL robuste et dimensionné, afin d’alimenter Power BI en temps réel ou quasi‑temps réel.
  • Construisez le tableau de bord avec des meilleures pratiques de modélisation (RLS, agrégations) et de gouvernance (workspace privé, gestion des identifiants).
  • Scalez progressivement : partitionnement, conteneurs, et monitoring pour éviter les goulets d’étranglement.

En suivant ce guide, vous serez capable de déployer un reporting fiable, sécurisé et scalable qui soutient la croissance de votre organisation tout en respectant les exigences de confidentialité et de conformité.


📚 Ressources complémentaires

Ressource Lien
Dolibarr – Documentation officielle https://www.dolibarr.org/en/doc/
Power BI – Guide de sécurité https://learn.microsoft.com/power-bi/admin/service-security
Azure Data Factory – Copier activity MySQL → Blob https://learn.microsoft.com/azure/data-factory/copy-activity-overview
OWASP Top 10 – Application Web https://owasp.org/www-project-top-ten/
GitHub – Exemple de repo Power BI Template pour Dolibarr https://github.com/yourorg/powerbi-dolibarr-template


À vous la scène ! Bonne aventure dans l’univers de la business intelligence sécurisée. 🚀

Publications similaires