Zusammenarbeit in Echtzeit in Word- oder Excel-Dokumenten – direkt im Browser. Wer Nextcloud oder Seafile betreibt, stolpert schnell über OnlyOffice.
Wenn man den OnlyOffice Document Server (via Docker) ohne weitere Vorkehrungen ins Netz stellt, entsteht jedoch ein gefährliches Setup: Jeder im Internet, der deine OnlyOffice-URL kennt, könnte theoretisch seinen eigenen Nextcloud-Server mit deinem Document Server verbinden und deine Rechenleistung kapern.
Hier kommt JWT (JSON Web Token) ins Spiel.
Was ist JWT und wie funktioniert es mit OnlyOffice?
Ein JSON Web Token ist vereinfacht gesagt ein digitaler “Stempel”, der kryptographisch signiert ist.
Wenn du JWT zwischen deiner Nextcloud und OnlyOffice aktivierst, basiert die Sicherheit auf einem gemeinsamen Geheimnis (Shared Secret), das nur von dir konfiguriert wurde – sowohl in Nextcloud (oder Seafile) als auch im OnlyOffice Document Server.
Der Ablauf:
- Ein User in Nextcloud klickt auf ein
.docxDokument. - Nextcloud schickt eine Anfrage an deinen OnlyOffice-Server: “Bitte render dieses Dokument für meinen User.”
- Der Trick: Nextcloud signiert diese Anfrage mittels des
JWT_SECRET. Die Signatur fungiert quasi als VIP-Passwort. - OnlyOffice empfängt den Request, berechnet die Signatur mit demselben geheimen Schlüssel überprüfen und merkt: “Aha, die Anfrage kommt wirklich von meinem legitimen Nextcloud-Server. Ich darf das Dokument öffnen.”
- Eine unberechtigte Instanz (die dieses Secret nicht hat) wird von OnlyOffice sofort mit einem Error 403 (Forbidden) geblockt.
Einrichtung via Docker Compose
Das Einbinden von JWT im OnlyOffice Document Server ist spielend einfach. Du definierst das Secret lediglich als Umgebungsvariable beim Start deines Dockers:
version: '3.8'
services:
onlyoffice:
image: onlyoffice/documentserver:latest
restart: always
ports:
- "9090:80"
environment:
- JWT_ENABLED=true
- JWT_SECRET=DeinAbsolutGeheimerUndLangerSchluessel!
# Optional: Manche Cloud-Plattformen verlangen einen JWT_HEADER (Standard ist Authorization)
- JWT_HEADER=Authorization
Starte den Container mit docker compose up -d.
Das Secret in Nextcloud/Seafile eintragen
Sobald OnlyOffice läuft (und idealerweise über einen Reverse Proxy ein SSL-Zertifikat bekommen hat), musst du deiner Cloud noch das Geheimnis verraten:
In Nextcloud:
Gehe in die Einstellungen (Verwaltung) -> ONLYOFFICE.
Dort trägst du neben der Server-Adresse auch den geheimen Schlüssel (DeinAbsolutGeheimerUndLangerSchluessel!) ein und speicherst.
In Seafile (seahub_settings.py):
ONLYOFFICE_JWT_SECRET = 'DeinAbsolutGeheimerUndLangerSchluessel!'
Fazit
Lass niemals einen OnlyOffice-Server ohne aktives JWT öffentlich im Internet stehen. Die Aktivierung dauert – wie wir gesehen haben – nur zwei Minuten in der docker-compose.yml und sichert deine wertvollen Systemressourcen sowie deine Daten extrem zuverlässig ab.
Falls du Unterstützung bei der Absicherung deiner internen Kommunikation, Software Setups oder bei Corporate IT Fragen suchst, kannst du mich jederzeit als Freelancer kontaktieren!