Handbuch · Kapitel 18

Microsoft 365 sichern (bkp_m365)

Zum Inhaltsverzeichnis

bkp_m365 sichert Exchange-Postfächer (Mails aller Ordner als MIME, Kalender mit Anhängen, Kontakte, To-Do-Aufgaben), OneDrive und SharePoint-Dokumentbibliotheken über Microsoft Graph. Ein Job umfasst einzelne Konten bzw. Sites (scope=single) oder einen ganzen Tenant (scope=tenant). Jeder Lauf ist ein vollständiger Zeitpunkt; geladen wird nur, was sich seit dem vorigen Lauf geändert hat.

18.1 App-Registrierung in Entra ID#

  1. Im Entra-Admin-Center eine App registrieren (nur dieser Tenant).
  2. Unter API-Berechtigungen die Anwendungsberechtigungen von Microsoft Graph hinzufügen: User.Read.All, Mail.Read, Calendars.Read, Contacts.Read, Tasks.Read.All, Files.Read.All, Sites.Read.All – und die Administratorzustimmung erteilen.
  3. Ein Zertifikat erzeugen und die .crt-Datei unter Zertifikate & Geheimnisse hochladen (siehe unten).
  4. Tenant-ID bzw. Domäne und die Anwendungs-ID (Client-ID) für die Konfiguration notieren.

Zertifikat für die Anmeldung

openssl req -x509 -newkey rsa:3072 -nodes -days 730 -subj "/CN=AegisGrid-m365" -keyout m365.key -out m365.crt
cat m365.crt m365.key > /etc/bkp/m365-contoso.pem && chmod 600 /etc/bkp/m365-contoso.pem

Tipp: Bei scope=single sollte die App nur die gesicherten Konten sehen: in Exchange Online mit RBAC for Applications, in SharePoint mit Sites.Selected statt Sites.Read.All und einer Freigabe je Site.

18.2 Job einrichten#

/etc/bkp/bkp_m365.cfg (Vorlage: packaging/bkp_m365.cfg.example)

[m365-contoso]
tenant=contoso.onmicrosoft.com
client-id=00000000-0000-0000-0000-000000000000
client-cert=/etc/bkp/m365-contoso.pem
scope=tenant
content=all
exclude=*@ext.contoso.com, svc-*
target=srv1
target-dir=m365
api-key=file:/etc/bkp/m365.key
encryption=aes-256-gcm
encryption-key=file:/etc/bkp/m365-contoso.enc
retention=90d

Mit --dry-run meldet sich bkp_m365 nur an und listet die Konten und Sites, die gesichert würden. Danach sichert bkp_m365 --name m365-contoso; regelmäßig per Cron oder bkp_sched (command=m365, profile=m365-contoso).

ExitcodeBedeutung
0alles gesichert
2teilweise: einzelne Konten, Ordner oder Dateien behielten den Stand des vorigen Laufs (Meldungen im Log)
1nichts gesichert (Anmeldung, Ziel, Konfiguration)

18.3 Ablage, Aufbewahrung und Prüfung#

Jeder Job hat einen eigenen Objektspeicher (<out>/<job>.m365 oder auf dem Server <storage>/<target-dir>/<job>.m365). Gleiche Inhalte werden nur einmal gespeichert; verschlüsselt wird beim Client, der Server sieht keinen Schlüssel. bkp_maintenance prune --search-dir <verzeichnis> löscht abgelaufene Läufe (der neueste bleibt) und danach die Objekte, die kein Lauf mehr braucht; bkp_maintenance scrub --store <dir>/<job>.m365 prüft einen Store. repair, mirror und export gehen wie bei Block-Stores (Kapitel 10).

18.4 Exportieren#

Läufe, Inhalte und Export

bkp_m365_restore --name m365-contoso --list
bkp_m365_restore --name m365-contoso --browse alice@contoso.com/mail/Inbox
bkp_m365_restore --name m365-contoso --export /srv/export --user 'alice*' --section mail --from 2026-09-01

Mails werden als .eml exportiert, Dateien als Dateibaum mit Änderungszeit, Termine und Aufgaben als .ics, Kontakte als .vcf (mit Foto) für Outlook, Thunderbird, Apple und Google; --export-format json liefert das Graph-JSON. --item/--item-file beschränken den Export auf bestimmte Ordner und Elemente. Zurück nach Microsoft 365: Kapitel 19.