← alle beiträge

TYPO3 + SharePoint: eine Integration, die nicht weh tut

TYPO3 + SharePoint: eine Integration, die nicht weh tut
titelbild · KI-generiert

Im Kirchhoff-Intranet sollten Dokumente aus SharePoint direkt im TYPO3-Frontend auftauchen — aktuell, durchsuchbar, ohne dass jemand etwas doppelt pflegt. Die Verbindung läuft über Microsoft Graph. Klingt geradlinig, hat aber drei Stolpersteine, die man besser vorher kennt.

Auth: App-only, nicht im Namen eines Users

Ein Intranet liest Inhalte serverseitig — also App-only-Authentifizierung über den Client-Credentials-Flow, nicht delegiert. Token holen, im Cache halten, vor Ablauf erneuern. Wichtig: die App-Registrierung nur mit den Berechtigungen ausstatten, die wirklich gebraucht werden (Sites.Read.All reicht meist).

Der Trick mit den Drive-IDs

Graph adressiert Dateien nicht über Pfade, sondern über Site- und Drive-IDs. Diese IDs sind stabil, aber nicht offensichtlich — man löst sie einmal aus dem Site-Namen auf und legt sie in die Konfiguration. Wer bei jedem Request die ID neu auflöst, verschenkt einen kompletten Roundtrip.

GET /sites/{hostname}:/sites/{site-path}
→ liefert die site-id
GET /sites/{site-id}/drives
→ liefert die drive-id (einmal merken!)

Caching ist hier kein Bonus, sondern Pflicht

Graph hat Rate Limits, und ein Intranet-Aufmacher, der bei jedem Seitenaufruf live abfragt, wird langsam und fragil. Wir cachen die Datei-Listen mit kurzer TTL und invalidieren gezielt, wenn sich etwas ändert. Das Frontend bleibt schnell, die API entspannt.

  • Token im Server-Cache, Erneuerung mit Puffer vor Ablauf
  • Drive-IDs als Konfiguration, nicht als Laufzeit-Lookup
  • Datei-Listen mit kurzer TTL cachen, Fehlerfälle leise abfangen

Das Ergebnis: SharePoint-Dokumente erscheinen im Intranet, als wären sie schon immer dort gewesen — und niemand muss zwei Systeme pflegen.

Fragen oder ein Projekt im Kopf?projekt besprechen →