Ce que vous allez mettre en place
BackupZit lit un tenant Microsoft 365 via Microsoft Graph avec une inscription d’application qui n’a que des droits en lecture seule : rien n’est modifié ni supprimé dans le tenant. N’importe quel agent BackupZit ayant accès à Internet télécharge les données — par exemple l’agent de la machine de la console — et les enregistre comme toute autre sauvegarde : dédupliquées, chiffrées, avec rétention, tâches de copie et tests de restauration. BackupZit est gratuit et open source (AGPLv3), sans licence par utilisateur.
Pourquoi une copie séparée de Microsoft 365 ?
Microsoft assure le fonctionnement du service, mais les données qu’il contient sont sous votre responsabilité : une boîte aux lettres supprimée par erreur, des fichiers chiffrés via un OneDrive synchronisé, un compte supprimé au départ d’un employé. Les corbeilles et les paramètres de rétention se trouvent dans le même tenant et expirent. Une sauvegarde sur votre propre stockage est une copie indépendante que vous contrôlez, hors du tenant et de ses comptes d’administration.
Microsoft et d’autres éditeurs vendent aussi la sauvegarde Microsoft 365 en service cloud, généralement facturé par utilisateur ou par gigaoctet. BackupZit est l’option auto-hébergée : les données arrivent sur votre NAS, votre serveur ou votre bucket S3, et le seul coût est le stockage.
Prérequis
- Une console BackupZit — une petite VM Linux (2 vCPU, 2–4 Go de RAM, disque de 16–20 Go) issue de l’image prête de la page de téléchargement, ou le script d’installation sur un serveur Debian, Ubuntu, AlmaLinux ou Rocky Linux existant.
- Un agent qui télécharge les données : Windows ou Linux, avec un accès HTTPS à
login.microsoftonline.com,graph.microsoft.comet, pour les fichiers OneDrive et SharePoint,*.sharepoint.com. L’agent de la machine de la console suffit. - Un stockage de sauvegarde : SFTP, un partage SMB, un bucket compatible S3, Azure Blob Storage ou un dépôt renforcé BackupZit.
- Un administrateur général du tenant, une seule fois, pour inscrire l’application et donner le consentement.
Étape 1 — Inscrire une application dans Microsoft Entra ID
Une fois par tenant, dans le centre d’administration Microsoft Entra :
- App registrations → New registration : nommez-la par exemple
BackupZit, choisissez Accounts in this organizational directory only, sans URI de redirection. Notez l’Application (client) ID et le Directory (tenant) ID sur sa page de présentation. - Certificates & secrets → New client secret : choisissez une durée (par ex. 24 mois) et copiez immédiatement la Value du secret — elle n’est affichée qu’une fois. Le Secret ID n’est pas le secret.
- API permissions → Add a permission → Microsoft Graph → Application permissions (pas déléguées) :
À sauvegarder Autorisations Messagerie et OneDrive User.Read.All,Mail.Read,Files.Read.AllCalendriers et contacts en plus Calendars.Read,Contacts.ReadSites SharePoint en plus Sites.Read.All - Cliquez sur Grant admin consent for …. Jusque-là, le statut indique Not granted et les sauvegardes sont refusées.
Ce sont uniquement des droits de lecture. Pour limiter l’application à certaines boîtes aux lettres, un administrateur Exchange peut ajouter une stratégie d’accès aux applications ou une étendue RBAC for Applications ; les comptes en dehors sont alors signalés comme illisibles.
Étape 2 — Ajouter une cible de stockage
Dans la console, ouvrez Stockage et ajoutez une cible — par exemple un partage SMB sur un NAS pour la première copie et un bucket S3 avec Object Lock pour la copie externe. Laissez Chiffrer les sauvegardes (AES-256) activé (par défaut) : mails et fichiers sont chiffrés en AES-256 sur l’agent avant de le quitter. Conservez la clé de récupération affichée par la console loin des sauvegardes, par exemple imprimée ou dans un gestionnaire de mots de passe.
Étape 3 — Créer la tâche Microsoft 365
- Sous Tâches de sauvegarde, créez une tâche de type Microsoft 365 et choisissez l’agent qui télécharge.
- Saisissez le Directory (tenant) ID, l’Application (client) ID et le Client secret de l’étape 1. Le secret est stocké chiffré.
- Choisissez quoi sauvegarder : Messagerie, OneDrive, Calendriers et contacts, Sites SharePoint — dans n’importe quelle combinaison.
- Choisissez les comptes : Tous les comptes avec une boîte aux lettres ou OneDrive (les comptes ajoutés plus tard sont inclus automatiquement ; exceptions sous Sauf, une par ligne) ou Uniquement ces comptes. Les comptes sans licence sont ignorés. Pour SharePoint, le même choix vaut pour les sites : tous les sites avec exceptions, ou seulement les adresses listées comme
https://contoso.sharepoint.com/sites/sales. - Au lieu de saisir des adresses, cliquez sur Choisir dans la liste : la console lit les comptes et sites du tenant avec l’application saisie et vous permet de les cocher.
- Choisissez la cible de stockage, une planification (par ex. chaque nuit) et la rétention.
À l’enregistrement, la console se connecte en tant qu’application et vérifie les autorisations, les comptes et les sites : un mauvais secret ou un consentement manquant apparaît immédiatement.
La première sauvegarde télécharge tout. Chaque sauvegarde suivante liste de nouveau les dossiers, mais ne télécharge que les messages et fichiers nouveaux ou modifiés (lus, marqués, déplacés ou modifiés comptent comme modifiés) ; les données inchangées sont reprises de la sauvegarde précédente. Microsoft limite la vitesse de lecture d’une application — BackupZit attend quand Microsoft le demande puis continue, si bien qu’une première sauvegarde de grosses boîtes aux lettres peut prendre des heures.
Ce qui est sauvegardé
| Données | Stockées sous forme de |
|---|---|
| Messagerie | Tous les dossiers et sous-dossiers ; chaque message complet avec pièces jointes en fichier .eml, nommé d’après la date et l’objet. Outlook, Thunderbird et la plupart des logiciels de messagerie l’ouvrent. |
| OneDrive | Tous les fichiers et dossiers avec leur date de modification. |
| Calendriers | Chaque calendrier ; chaque événement en fichier iCalendar (.ics) avec heure, lieu, participants, rappel et récurrence. Outlook, Google Agenda et Thunderbird l’importent. |
| Contacts | Contacts et dossiers de contacts en vCards (.vcf). |
| SharePoint | Chaque bibliothèque de documents de chaque site, avec tous les dossiers et fichiers. Les fichiers Teams sont dans SharePoint et sont inclus. |
Une sauvegarde contient un dossier par compte — ana@contoso.com/Mail/Inbox/…, …/OneDrive/…, …/Calendar/…, …/Contacts/… — et SharePoint/<site>/<bibliothèque>/…. Comme ce sont des formats standard, les fichiers restent lisibles sans BackupZit.
Étape 4 — Garder une copie externe (3-2-1)
Ajoutez une tâche de type Copie de sauvegarde avec la tâche Microsoft 365 comme source et une seconde cible ailleurs — un bucket S3 avec Object Lock ou un dépôt renforcé rend cette copie immuable. Seules les données absentes de la destination sont envoyées, et la copie a sa propre rétention. Les tests de restauration automatiques (hebdomadaires par défaut, sous Paramètres → Tests de restauration) restaurent un échantillon aléatoire de la sauvegarde la plus récente et vérifient chaque octet par rapport aux sommes de contrôle enregistrées.
Restauration
- Parcourir et télécharger : dans une exécution de sauvegarde, ouvrez les dossiers de messagerie, OneDrive, calendriers ou contacts d’un compte, ou un site SharePoint ; cochez des messages, événements, fichiers ou dossiers et téléchargez-les — un fichier tel quel, plusieurs en ZIP. Ouvrez les fichiers
.emldans Outlook ou faites-les glisser dans une boîte aux lettres. - Restaurer dans un dossier sur n’importe quel agent : messages en
.eml, événements en.ics, contacts en.vcf, fichiers OneDrive et SharePoint tels qu’ils étaient, sous<dossier>/<compte>/…et<dossier>/SharePoint/….
Limites à connaître
- La restauration directe dans une boîte aux lettres ou un OneDrive n’existe pas encore (prévue ; elle n’écrira que dans un nouveau dossier, sans jamais écraser). Pour l’instant, vous téléchargez ou restaurez dans un dossier.
- Non inclus : conversations et messages de canaux Teams, listes et pages SharePoint (seulement les bibliothèques de documents), pièces jointes d’événements, photos de contacts, occurrences modifiées isolément d’une série et boîtes partagées sans compte utilisateur.
- Les heures des événements de calendrier sont stockées en UTC.
Dépannage
- AADSTS7000215 / invalid client secret : c’est l’ID du secret qui a été copié au lieu de sa Value, ou le secret a expiré — créez-en un nouveau et saisissez-le dans la tâche.
- Missing application permissions / Authorization_RequestDenied : ajoutez les autorisations en tant qu’autorisations Application et cliquez sur Grant admin consent.
- The account has no Exchange Online mailbox : le compte n’a pas de licence Exchange (ou c’est un contact) ; retirez-le de la tâche.
- Une exécution avec avertissements liste les messages ou fichiers illisibles (par ex. un bloc-notes OneNote) ; le reste de la sauvegarde est complet.
Et ensuite
Téléchargez BackupZit, découvrez toutes les fonctions Microsoft 365 ou lisez le chapitre Microsoft 365 du guide intégré à la console. La même console sauvegarde aussi serveurs et machines virtuelles — voir les guides Proxmox VE et Hyper-V. Les questions sont les bienvenues dans les GitHub Discussions. Les entreprises peuvent obtenir un support commercial de MaxZit (en anglais uniquement).