Einleitung
grommunio 2026.06.2 ist aus Betriebssicht nicht nur ein Paketupdate. Spannend wird das Release dort, wo bestehende Komponenten nach dem Upgrade wieder als zusammenhängende Plattform funktionieren müssen: Web, Files, Chat, Archive, Admin und die zentrale Anmeldung über grommunio Auth und Keycloak.
Dieser Beitrag ist deshalb als praktische Upgrade-Anleitung aufgebaut: Was vor dem Upgrade gesichert werden muss, wie der Lauf von 2026.06.1 auf 2026.06.2 nachvollziehbar dokumentiert wird, welche SSO-/Keycloak-Punkte nachgezogen werden mussten und welche Tests danach verpflichtend in die Abnahme gehören. Die Kernbotschaft ist einfach: Ein funktionierendes Paketupdate ist noch kein vollständig verifiziertes Plattform-Upgrade.
Testumgebung und Annahmen
Datum: 2. Oktober 2026.
Umgebung: isolierte Test-Appliance mit grommunio 2026.06.1 als Ausgangspunkt.
Upgrade-Pfad: grommunio 2026.06.1 auf grommunio 2026.06.2.
Keine Produktion: Test-Host, Test-Domain und reproduzierbarer Ausgangszustand.
Ziel: Upgrade, zentrale Keycloak-SSO-Flows und Betriebszustand so prüfen, dass daraus eine nutzbare Admin-Checkliste entsteht.
Upgrade-Ablauf als Runbook
Der sichere Ablauf besteht aus drei Phasen: vor dem Upgrade den Zustand beweisbar festhalten, das Upgrade kontrolliert durchführen und danach nicht nur Dienste, sondern echte Benutzer- und Client-Flows prüfen.
Snapshot oder Backup prüfen und Wiederherstellungsweg kennen.
Paketstände, aktive Dienste, SSO-Baseline und zentrale Endpoints erfassen.
Offiziellen Upgrade-Pfad der eingesetzten Appliance-Version prüfen.
Upgrade durchführen und Ausgabe vollständig sichern.
Reboot-Empfehlung ernst nehmen und kontrolliert neu starten.
Nach dem Reboot systemctl --failed und zypper ps -s prüfen.
Files, Chat, Archive, Admin und Keycloak nicht nur als Dienst, sondern per Login-Flow prüfen.
Autodiscover, Autoconfig, SMTP, IMAP, DAV, ActiveSync und EWS zumindest endpoint-seitig kontrollieren.
Auffälligkeiten klar als PASS, FAIL, SKIPPED, NOT TESTED oder NOT APPLICABLE dokumentieren.
Was beim Upgrade von 2026.06.1 auf 2026.06.2 besonders wichtig war
| Prüfpunkt | Warum wichtig |
|---|---|
| Files occ status | DB-Schema kann nach Paketupdate noch offen sein |
| Files OIDC Discovery | Server muss Keycloak-Zertifikat vertrauen |
| Files OIDC Callback | /files/index.php/apps/user_oidc/... muss korrekt geroutet werden |
| Chat SSO Migration | bestehende Chat-Accounts brauchen SSO-Zuordnung |
| Archive/Admin Adapter | OIDC-Adapter müssen tatsächlich vorhanden sein |
| Admin preferred_username | Keycloak-User muss zum grommunio Admin User passen |
| MFA Required Action | Admin darf erst nach TOTP/MFA ins Dashboard |
| Autodiscover/Autoconfig | Clients brauchen funktionierende Discovery |
| SMTP/IMAP | Web-Login allein beweist keinen Mailflow |
| Meet/Jitsi | HTTP 200 reicht nicht, Backend-Dienste müssen laufen |
Files occ status
- Warum wichtig
- DB-Schema kann nach Paketupdate noch offen sein
Files OIDC Discovery
- Warum wichtig
- Server muss Keycloak-Zertifikat vertrauen
Files OIDC Callback
- Warum wichtig
- /files/index.php/apps/user_oidc/... muss korrekt geroutet werden
Chat SSO Migration
- Warum wichtig
- bestehende Chat-Accounts brauchen SSO-Zuordnung
Archive/Admin Adapter
- Warum wichtig
- OIDC-Adapter müssen tatsächlich vorhanden sein
Admin preferred_username
- Warum wichtig
- Keycloak-User muss zum grommunio Admin User passen
MFA Required Action
- Warum wichtig
- Admin darf erst nach TOTP/MFA ins Dashboard
Autodiscover/Autoconfig
- Warum wichtig
- Clients brauchen funktionierende Discovery
SMTP/IMAP
- Warum wichtig
- Web-Login allein beweist keinen Mailflow
Meet/Jitsi
- Warum wichtig
- HTTP 200 reicht nicht, Backend-Dienste müssen laufen
Vor dem Upgrade: Baseline schaffen
Ohne Baseline ist ein Upgrade-Test schnell wertlos. Wenn nachher etwas nicht funktioniert, muss klar sein, ob der Fehler neu ist oder vorher schon vorhanden war. Vor dem Upgrade sollten deshalb Paketstände, Dienste, relevante Endpoints und der vorhandene SSO-Zustand gesichert werden.
rpm -qa | sort | grep -E '^(grommunio|gromox)'systemctl --failedzypper ps -sopenssl s_client -connect mail.example.test:443 -servername mail.example.test -verify_return_errorcurl --fail https://mail.example.test/web/curl --fail https://mail.example.test/files/status.phpcurl --fail https://mail.example.test/auth/realms/grommunio/.well-known/openid-configuration
Upgrade auf 2026.06.2
Das eigentliche Paketupdate kann je nach Appliance-Stand und Herstellerempfehlung unterschiedlich dokumentiert sein. In der geprüften Umgebung war zusätzlich der Helper grommunio-update vorhanden, während die geprüfte Operations-Dokumentation Package Updates weiterhin über zypper ref und zypper up beschreibt. Für Runbooks gehört deshalb beides in die Prüfung: offizieller Upgrade-Pfad der eingesetzten Version und tatsächlich ausgeführte Befehle.
zypper --non-interactive --gpg-auto-import-keys refzypper --non-interactive --gpg-auto-import-keys up# Nach dem Reboot:zypper ps -ssystemctl --failed
Für eine produktive Anleitung ist der konkrete Befehl nicht der einzige relevante Punkt. Entscheidend ist, dass der gewählte Upgrade-Pfad zur Appliance-Version passt, dass die Ausgabe gesichert wird und dass danach eine fachliche Abnahme folgt. Ein Runbook sollte daher neben dem Paketbefehl immer auch die Tests unten enthalten.
Paket Version nach dem Upgradegrommunio-release 2026.06.2grommunio-web 5.1.20grommunio-files 34.0.4grommunio-keycloak 26.7.4grommunio-auth 0.2.37gromox 3.11.136grommunio-admin-api 1.21.23grommunio-chat-v10 10.5.8grommunio-archive 1.4.9
Wie vollständig haben wir die Appliance getestet?
Der finale Abnahmelauf wurde produktionsnah aufgebaut: nicht nur 127.0.0.1, sondern der echte Lab-FQDN mail.example.test mit SNI, Hostname-Prüfung und explizit vertrautem Lab-Zertifikat. Der Report trennt echte PASS-Ergebnisse klar von nicht getesteten oder nicht anwendbaren Bereichen.
Für Partner und Kunden ist daraus ein Runbook ableitbar: erst Baseline, dann Upgrade-Pfad prüfen, dann Update ausführen, danach System Health, Files, Keycloak/OIDC, Browser-SSO, Mailflow, Autodiscover, Autoconfig, DAV, EWS und EAS prüfen. Clients wie Thunderbird, Outlook oder ActiveSync bleiben nur dann PASS, wenn sie wirklich mit frischem Profil oder kontrolliertem Testclient durchlaufen wurden.
Technische Abnahme
Die Ergebniskontrolle folgt dem einheitlichen grommunio-Format. PASS bedeutet, dass der konkrete Prüfpunkt aktiv ausgeführt und belegt wurde. FAIL, SKIPPED und NOT TESTED bleiben bewusst sichtbar, damit aus einem Paketupdate keine Scheinsicherheit wird.
| Prüfbereich | Prüfung | Ergebnis |
|---|---|---|
| System Health | Failed Units, Reboot-State und zentrale Dienste prüfen | PASS |
| Upgrade Evidence | Paketstand und tatsächlichen zypper-Lauf dokumentieren | PASS |
| TLS | FQDN, SNI und Zertifikatsprüfung mit vertrauter Lab-CA prüfen | PASS |
| OIDC Discovery | Realm-Metadaten mit issuer, auth, token und JWKS prüfen | PASS |
| Web SSO | Keycloak-Login bis zur grommunio Web UI durchführen | PASS |
| Files SSO | occ status, serverseitige OIDC Discovery und UI-Login prüfen | PASS |
| Chat SSO | SSO-Login bis zur Kanalansicht verifizieren | PASS |
| Archive SSO | Unauthentifizierten Einstieg bis zum Keycloak-OIDC-Redirect prüfen | PASS |
| Admin SSO/MFA | preferred_username Mapping, TOTP und Dashboard prüfen | PASS |
| Cross-App SSO | Verhalten im gemeinsamen Browser-Kontext messen | PASS |
| Autodiscover | V1 und V2 für EWS, ActiveSync und AutoDiscoverV1 prüfen | PASS |
| Autoconfig | Thunderbird XML mit IMAP/SMTP-Informationen abrufen | PASS |
| SMTP/IMAP | Submission, STARTTLS, AUTH, Zustellung und IMAP-Fetch prüfen | PASS |
| DAV/EWS | DAV PROPFIND 207 und EWS GetFolder 200 prüfen | PASS |
| EAS Endpoint | ActiveSync URL, Discovery und erwartete Auth-Challenge prüfen | PASS |
| EAS Client Sync | Kontrollierten ActiveSync-Client mit Provisioning, FolderSync und initialem Sync ausführen | PASS WITH CONDITIONS |
| EAS Endgerät | Echtes iOS-/Android-Gerät mit Kunden-Policy und Push-Verhalten prüfen | NOT TESTED |
| Meet | Webroute und Jitsi-Backend-Dienste getrennt prüfen | PASS |
| Thunderbird GUI | Frisches IMAP/SMTP-Profil, Screenshots, SMTP mit Attachment und IMAP-Zustellnachweis | PASS WITH CONDITIONS |
System Health
- Prüfung
- Failed Units, Reboot-State und zentrale Dienste prüfen
- Ergebnis
- PASS
Upgrade Evidence
- Prüfung
- Paketstand und tatsächlichen zypper-Lauf dokumentieren
- Ergebnis
- PASS
TLS
- Prüfung
- FQDN, SNI und Zertifikatsprüfung mit vertrauter Lab-CA prüfen
- Ergebnis
- PASS
OIDC Discovery
- Prüfung
- Realm-Metadaten mit issuer, auth, token und JWKS prüfen
- Ergebnis
- PASS
Web SSO
- Prüfung
- Keycloak-Login bis zur grommunio Web UI durchführen
- Ergebnis
- PASS
Files SSO
- Prüfung
- occ status, serverseitige OIDC Discovery und UI-Login prüfen
- Ergebnis
- PASS
Chat SSO
- Prüfung
- SSO-Login bis zur Kanalansicht verifizieren
- Ergebnis
- PASS
Archive SSO
- Prüfung
- Unauthentifizierten Einstieg bis zum Keycloak-OIDC-Redirect prüfen
- Ergebnis
- PASS
Admin SSO/MFA
- Prüfung
- preferred_username Mapping, TOTP und Dashboard prüfen
- Ergebnis
- PASS
Cross-App SSO
- Prüfung
- Verhalten im gemeinsamen Browser-Kontext messen
- Ergebnis
- PASS
Autodiscover
- Prüfung
- V1 und V2 für EWS, ActiveSync und AutoDiscoverV1 prüfen
- Ergebnis
- PASS
Autoconfig
- Prüfung
- Thunderbird XML mit IMAP/SMTP-Informationen abrufen
- Ergebnis
- PASS
SMTP/IMAP
- Prüfung
- Submission, STARTTLS, AUTH, Zustellung und IMAP-Fetch prüfen
- Ergebnis
- PASS
DAV/EWS
- Prüfung
- DAV PROPFIND 207 und EWS GetFolder 200 prüfen
- Ergebnis
- PASS
EAS Endpoint
- Prüfung
- ActiveSync URL, Discovery und erwartete Auth-Challenge prüfen
- Ergebnis
- PASS
EAS Client Sync
- Prüfung
- Kontrollierten ActiveSync-Client mit Provisioning, FolderSync und initialem Sync ausführen
- Ergebnis
- PASS WITH CONDITIONS
EAS Endgerät
- Prüfung
- Echtes iOS-/Android-Gerät mit Kunden-Policy und Push-Verhalten prüfen
- Ergebnis
- NOT TESTED
Meet
- Prüfung
- Webroute und Jitsi-Backend-Dienste getrennt prüfen
- Ergebnis
- PASS
Thunderbird GUI
- Prüfung
- Frisches IMAP/SMTP-Profil, Screenshots, SMTP mit Attachment und IMAP-Zustellnachweis
- Ergebnis
- PASS WITH CONDITIONS
Pflichttests nach dem Upgrade
Die folgende Liste ist der eigentliche Abnahmekern. Ein grommunio-Upgrade sollte erst dann als abgeschlossen gelten, wenn diese Punkte entweder bestanden oder bewusst als nicht getestet dokumentiert sind.
System: Paketstand, failed Units, Reboot-State, zentrale Dienste.
Identity: Keycloak Realm, OIDC Discovery, Clients, Redirect URIs, Callback-Verhalten.
MFA: Required Actions, TOTP-Setup, Admin-Zugriff erst nach MFA.
Web: Login, Reload, Mailbox sichtbar, keine Auth-Fehler.
Files: occ status, needsDbUpgrade false, serverseitige OIDC Discovery, Files UI.
Chat: SSO-Login, Benutzerzuordnung, Kanalansicht.
Archive: SSO-Login, Suchoberfläche, keine OIDC-Fehler.
Admin: SSO Button, preferred_username Mapping, Rolle, Dashboard.
Mail: SMTP Submission, STARTTLS, AUTH, IMAP-Zustellung.
Discovery: Autodiscover und Autoconfig für Clients.
Protokolle: DAV per PROPFIND, EWS per echter SOAP-Anfrage, ActiveSync mindestens mit erwarteter Auth-Challenge und anschließend mit echtem Client, falls produktiv genutzt.
Meet: Webroute und Jitsi-Backend-Dienste getrennt prüfen.
Negative Tests: falsches Passwort darf keine Anwendungssession erzeugen.
Logout/Session: lokaler Logout und Keycloak-Session-Verhalten getrennt betrachten.
Was bedeutet PASS in diesem Test?
Bei Browser-SSO bedeutet PASS nicht einfach HTTP 200. Ein Flow wurde erst dann als erfolgreich gewertet, wenn die Anwendung aufgerufen wurde, der Redirect zum richtigen Identity Provider führte, die Authentifizierung funktionierte, erforderliche MFA-Schritte abgeschlossen wurden, der OIDC-Callback zurückkam, eine Anwendungssession entstand und ein eindeutiges authentifiziertes UI-Element sichtbar war.
Für native Protokolle ist PASS enger definiert: SMTP/IMAP wurde als Mailflow mit Zustellung geprüft, DAV mit authentifiziertem PROPFIND und EWS mit einer echten SOAP-GetFolder-Anfrage auf die Inbox. ActiveSync wurde zusätzlich mit einem kontrollierten Testclient für Provisioning, FolderSync und initialen Sync geprüft. Ein echtes iOS- oder Android-Gerät mit Kunden-Policy und Push-Verhalten bleibt ein separater Pflichtschritt, wenn genau diese Endgeräte produktiv genutzt werden.
Client- und MFA-Matrix
Zentrale Browser-Anmeldung und native Clients müssen getrennt bewertet werden. Keycloak, OIDC und MFA sichern die Web- und Browser-Flows. IMAP, SMTP, DAV, EWS und ActiveSync können je nach Client und Konfiguration andere Authentifizierungswege verwenden. Deshalb darf ein erfolgreicher Browser-MFA-Test nicht automatisch als Thunderbird-, Outlook- oder Mobile-Sync-Abnahme gewertet werden.
| Client/Protokoll | Discovery | Authentifizierung | MFA-Einordnung | Abnahmestatus |
|---|---|---|---|---|
| Web, Files, Chat, Archive, Admin | OIDC Redirects und Callbacks | Keycloak/OIDC | Browser-MFA geprüft, Admin bis Dashboard | PASS |
| Thunderbird AutoConfig | Mozilla AutoConfig XML | frisches Thunderbird-Profil zusätzlich geprüft | Browser-MFA nicht anwendbar | PASS für Discovery |
| Thunderbird IMAP/SMTP | AutoConfig-Daten plus frisches Profil | Native Mail-Authentifizierung | nicht durch Browser-MFA belegt | PASS WITH CONDITIONS |
| IMAP/SMTP | aus AutoConfig ableitbar | Native Mail-Authentifizierung | nicht durch Browser-MFA belegt | PASS für Mailflow |
| CalDAV/CardDAV | Well-known Redirects zu /dav | DAV Basic/Auth im Test | nicht durch Browser-MFA belegt | PARTIAL |
| EWS | AutoDiscover V1/V2 | SOAP GetFolder mit Mailbox-Zugriff | Modern Auth/MFA nicht belegt | PASS für EWS-Endpoint |
| ActiveSync | AutoDiscover V2 ActiveSync | Provisioning, FolderSync und initialer Sync mit kontrolliertem Client | Browser-MFA nicht anwendbar | PASS WITH CONDITIONS |
| iOS/Android EAS | kundenspezifisches Gerätesetup | nicht ausgeführt | Push/Policy separat testen | NOT TESTED |
| Outlook/MAPI | nicht ausgeführt | nicht ausgeführt | nicht bewertet | NOT TESTED |
Web, Files, Chat, Archive, Admin
- Discovery
- OIDC Redirects und Callbacks
- Authentifizierung
- Keycloak/OIDC
- MFA-Einordnung
- Browser-MFA geprüft, Admin bis Dashboard
- Abnahmestatus
- PASS
Thunderbird AutoConfig
- Discovery
- Mozilla AutoConfig XML
- Authentifizierung
- frisches Thunderbird-Profil zusätzlich geprüft
- MFA-Einordnung
- Browser-MFA nicht anwendbar
- Abnahmestatus
- PASS für Discovery
Thunderbird IMAP/SMTP
- Discovery
- AutoConfig-Daten plus frisches Profil
- Authentifizierung
- Native Mail-Authentifizierung
- MFA-Einordnung
- nicht durch Browser-MFA belegt
- Abnahmestatus
- PASS WITH CONDITIONS
IMAP/SMTP
- Discovery
- aus AutoConfig ableitbar
- Authentifizierung
- Native Mail-Authentifizierung
- MFA-Einordnung
- nicht durch Browser-MFA belegt
- Abnahmestatus
- PASS für Mailflow
CalDAV/CardDAV
- Discovery
- Well-known Redirects zu /dav
- Authentifizierung
- DAV Basic/Auth im Test
- MFA-Einordnung
- nicht durch Browser-MFA belegt
- Abnahmestatus
- PARTIAL
EWS
- Discovery
- AutoDiscover V1/V2
- Authentifizierung
- SOAP GetFolder mit Mailbox-Zugriff
- MFA-Einordnung
- Modern Auth/MFA nicht belegt
- Abnahmestatus
- PASS für EWS-Endpoint
ActiveSync
- Discovery
- AutoDiscover V2 ActiveSync
- Authentifizierung
- Provisioning, FolderSync und initialer Sync mit kontrolliertem Client
- MFA-Einordnung
- Browser-MFA nicht anwendbar
- Abnahmestatus
- PASS WITH CONDITIONS
iOS/Android EAS
- Discovery
- kundenspezifisches Gerätesetup
- Authentifizierung
- nicht ausgeführt
- MFA-Einordnung
- Push/Policy separat testen
- Abnahmestatus
- NOT TESTED
Outlook/MAPI
- Discovery
- nicht ausgeführt
- Authentifizierung
- nicht ausgeführt
- MFA-Einordnung
- nicht bewertet
- Abnahmestatus
- NOT TESTED
Thunderbird und echte Endgeräte als letzter Abnahmeschritt
Für Kunden, die Thunderbird produktiv einsetzen, endet die Abnahme nicht beim XML. Der Clientpfad wurde deshalb mit Thunderbird 156.0 und frischem Profil erneut geprüft: IMAP/SMTP-Konto, Inbox, SMTP Submission mit Attachment und Zustellnachweis per IMAP. Die vertiefte Native-Clients-Abnahme ist als eigener Folgebeitrag dokumentiert: /de/tech/grommunio-native-clients-keycloak-sso-2026.
Bewusst nicht als vollständiger Thunderbird-PASS gewertet sind Kalender- und Kontakte-CRUD über CalDAV/CardDAV sowie ein vollständiger EWS-GUI-Pfad. Diese Punkte gehören in eigene Clienttests, wenn sie beim Kunden produktiv relevant sind.
Für ActiveSync wurde der Schritt nachgezogen: Ein kontrollierter EAS-Testclient hat Connectivity, Provisioning, FolderSync mit 14 Ordnern und einen initialen Sync über 11 Collections erfolgreich durchgeführt. Das ist ein belastbarer Server- und Protokollnachweis. Was es nicht ersetzt, ist ein kundenspezifischer iOS- oder Android-Test mit echten Policies, Push-Verhalten, Geräteverwaltung und Benutzerabläufen.
Erster Stolperstein: Files auf HTTP 503
Nach dem Paketupdate war grommunio Files zunächst nicht vollständig betriebsbereit. Die Anwendung antwortete mit HTTP 503, obwohl das Paketupdate selbst erfolgreich war. Die Ursache war kein globaler Plattformausfall, sondern ein ausstehendes Datenbank-Upgrade von Files.
sudo -u grofiles php -d memory_limit=1024M /usr/share/grommunio-files/occ upgrade
Das ist eine wichtige Betriebserkenntnis: Ein erfolgreiches Paketupdate bedeutet nicht automatisch, dass alle datenbankgestützten Komponenten bereits auf dem neuen Schema laufen. Files sollte nach einem Upgrade aktiv mit occ status, Logs und einem echten Login geprüft werden.
Zentrale Authentifizierung mit grommunio Auth und Keycloak
Die stärkere Zentralisierung der Anmeldung ist der eigentliche Schwerpunkt dieses Tests. grommunio Auth stellt die Keycloak-Integration bereit, die einzelnen Anwendungen verwenden eigene OIDC-Clients beziehungsweise Adapter, und Keycloak wird zur zentralen Stelle für Login, Required Actions und MFA.
Keycloak|grommunio Auth|+---------------+----------------+| | |v v vWeb Files Admin| | |+-------+-------+-------+--------+| |v vChat Archive
Meet wird bewusst getrennt betrachtet: Die Webroute /meet/ antwortete im finalen Endpoint-Test mit HTTP 200, und die relevanten Dienste jitsi-jicofo, jitsi-videobridge und prosody waren aktiv. Für eine Kundenfreigabe sollte zusätzlich ein echter Zwei-Browser- oder Zwei-Client-Raumtest erfolgen, weil ein erreichbares Frontend allein noch keine Medienpfad-Abnahme ist.
Welche SSO-Flows tatsächlich funktioniert haben
Komponente Ergebnis BesonderheitWeb erfolgreich Keycloak-Login bis in die WeboberflächeFiles erfolgreich DB-Upgrade, TLS-Vertrauen und Callback geprüftChat erfolgreich bestehende Accounts auf SSO migriertArchive erfolgreich Adapter-Konfiguration nachgezogenAdmin erfolgreich preferred_username-Mapping plus MFA bis Dashboard
SSO-Login-Belege pro Modul
Für die Abnahme reicht es nicht, am Ende nur ein Dashboard zu zeigen. Pro Modul muss sichtbar sein, wie der SSO-Einstieg funktioniert: direkte Weiterleitung zu Keycloak oder lokale Login-Seite mit Keycloak-Schaltfläche. Die folgenden Screenshots zeigen genau diesen Einstiegspunkt je Anwendung.
Screenshot: Web: Der unauthentifizierte Zugriff führt direkt zur Keycloak Login-Maske.
Screenshot: Files: Die lokale Login-Seite bietet den Einstieg über grommunio Keycloak.
Screenshot: Files: Nach Klick auf grommunio Keycloak wird die zentrale Keycloak Login-Maske geöffnet.
Screenshot: Chat: Die Login-Seite zeigt den Keycloak-Einstieg neben dem lokalen Login.
Screenshot: Chat: Nach Auswahl von Keycloak landet der Browser im zentralen Realm.
Screenshot: Archive: Der unauthentifizierte Zugriff führt zur Keycloak Login-Maske.
Screenshot: grommunio Web ist nach dem Keycloak-Login mit einer Test-Mailbox erreichbar.
Screenshot: grommunio Files lädt nach OIDC-Callback und abgeschlossenem Files-Datenbankupgrade.
Screenshot: grommunio Chat erreicht nach SSO eine angemeldete Kanalansicht.
Screenshot: Der Admin-Login bietet nach dem Upgrade den SSO-Einstieg an.
Screenshot: Nach dem Klick auf SSO landet der Browser bei Keycloak im grommunio-Realm.
Screenshot: Nach Authentifizierung und MFA-Setup ist das grommunio Admin Dashboard erreichbar.
Chat: bestehende Accounts auf SSO umstellen
Bei bestehenden Installationen ist Chat besonders wichtig, weil vorhandene Accounts nicht automatisch bedeuten, dass der neue Login-Pfad schon sauber verwendet wird. Bestehende Chat-Accounts sollten deshalb gezielt auf SSO geprüft und bei Bedarf migriert werden.
grommunio-admin chat sso enable
Danach gehören Chat-Dienst, Login-Button und Kanalansicht in die Abnahme.
Archive und Admin: fehlende Adapter nachziehen
In bestehenden Umgebungen sollte nach dem Upgrade geprüft werden, ob die Adapter-Konfigurationen für Archive und Admin tatsächlich vorhanden sind. Falls sie fehlen oder nicht zum Realm passen, müssen sie gezielt nachgezogen werden. Das ist kein pauschaler Fehler von grommunio Auth, sondern ein sinnvoller Kontrollpunkt für Upgrades.
/usr/share/grommunio-auth/setup-grommunio-auth-clients.sh archive admin
Wichtig ist die Unterscheidung: Was stellt der Hersteller bereit, was sollte automatisch passieren, und was ist in einer konkreten Umgebung tatsächlich passiert? Genau diese Trennung macht einen Upgrade-Test verwertbar.
Files: TLS und OIDC Discovery
Files benötigt die OpenID-Provider-Metadaten nicht nur im Browser, sondern auch serverseitig. Wenn interne oder selbstsignierte Zertifikate verwendet werden, müssen OS Trust Store und Files-Umgebung diese CA kennen.
In einer sauber aufgebauten produktiven PKI sollte dieser Sonderfall normalerweise nicht auftreten. Die Architekturlektion bleibt trotzdem wichtig: OIDC ist nicht nur Browser-Kommunikation, sondern betrifft auch serverseitige Discovery und TLS-Vertrauen.
Stolperstein: OIDC Callback und PATH_INFO
Der Files-OIDC-Callback unter /files/index.php/apps/user_oidc/... ist ein guter Kandidat für Upgrade-Probleme, wenn nginx, PHP-FPM oder Rewrite-Regeln angepasst wurden. Statt eine komplette Nginx-Konfiguration zu veröffentlichen, ist die Prüfliste wichtiger.
Kommt der Browser nach Keycloak wirklich auf die erwartete Callback-URL zurück?
Wird index.php als Script erkannt und der Rest als PATH_INFO übergeben?
Sieht PHP-FPM denselben Pfad wie Nginx?
Gibt es 403, 404 oder 500 im Callback statt einer Anwendungssession?
Sind Nginx-Errorlog, PHP-FPM-Log und Files-Log zum gleichen Zeitpunkt geprüft?
Admin SSO: Identity Mapping ist wichtiger als das Passwort
Ein besonders wichtiger Befund betrifft grommunio Admin. Die Admin API löst den OIDC-Claim preferred_username gegen die grommunio Admin User Datenbank auf. Ein lokales Admin-Passwort allein macht daher noch keinen funktionierenden SSO-Login.
Keycloak|| preferred_usernamevgrommunio Admin API|| User lookupvgrommunio Admin Database
Welche föderierte Identität bekommt Adminzugang?
Welcher Username wird als preferred_username übertragen?
Gibt es dazu einen passenden grommunio Admin User?
Welche Rolle besitzt dieser User?
Soll der lokale admin-Account überhaupt für SSO verwendet werden?
Welche MFA-Policy gilt für Admin-Zugänge?
MFA bis zum Dashboard getestet
Der Admin-Test war kein oberflächlicher Button-Test. Der Browser wurde von Admin zu Keycloak geleitet, Keycloak erzwang die Required Action für TOTP, das MFA-Setup wurde abgeschlossen, und erst danach kam der Browser zurück ins Admin Dashboard. Genau so soll ein sicherer Flow aussehen.
Admin SSO auswählen.
Redirect zu Keycloak.
Authentifizierung durchführen.
TOTP-Setup als Required Action abschließen.
MFA verifizieren.
Zurück ins grommunio Admin Dashboard.
Warum Browser-SSO wirklich geprüft werden muss
Ein HTTP 200 sagt wenig darüber aus, ob ein Identity Flow funktioniert. SSO besteht aus Redirects, Cookies, OIDC-Callbacks, Anwendungssessions, MFA-Required-Actions und UI-Zuständen. Deshalb sollte die Abnahme immer als echter Browserablauf durchgeführt werden.
Application↓Redirect↓Keycloak↓Authentication↓MFA / Required Actions↓OIDC Callback↓Application Session↓Authenticated UI
Für eine belastbare Abnahme sollte der Browserlauf protokolliert werden: aufgerufene Anwendung, Redirect-Ziel, Callback, sichtbarer Login-Zustand und Fehler aus Browser-Konsole oder Serverlogs. So bleibt nachvollziehbar, ob Web, Files, Chat, Archive und Admin wirklich über SSO funktionieren.
Eine Anmeldung, mehrere Anwendungen
SSO bedeutet nicht zwingend, dass eine Anwendung ohne jeden Redirect sofort eine eigene Session besitzt. In der Praxis kann der Ablauf weiterhin über Keycloak laufen, aber die bestehende Identity-Session wird wiederverwendet. Genau dieses Verhalten wurde zusätzlich in einem gemeinsamen Browser-Kontext gemessen.
Wechsel im selben Browser-Kontext BeobachtungWeb Login erfolgreich als alice@example.testWeb -> Archive transparente Keycloak-Session wiederverwendetWeb -> Files Files zeigte den eigenen Login/SSO-EinstiegWeb -> Chat Chat zeigte den eigenen Login/SSO-EinstiegWeb -> Admin nicht im selben User-Kontext getestet
Screenshot: Cross-App-Test: Files zeigte beim direkten Einstieg weiterhin den eigenen Login mit Keycloak-Schaltfläche.
Das ist kein Widerspruch zu SSO, sondern eine wichtige Abnahme-Erkenntnis: Manche Anwendungen starten den OIDC-Flow transparent, andere erwarten zuerst den expliziten SSO-Einstieg innerhalb der Anwendung.
Autodiscover gehört zur Abnahme
Eine Groupware-Plattform besteht nicht nur aus Weboberflächen. Nach dem Upgrade wurden deshalb auch Autodiscover, Mozilla Autoconfig und zentrale Protokollpfade geprüft. Autodiscover V1 und V2 lieferten verwertbare Antworten, Autoconfig lieferte XML mit IMAP- und SMTP-Informationen, DAV antwortete authentifiziert mit 207 Multi-Status, EWS beantwortete eine SOAP-GetFolder-Anfrage auf die Inbox mit HTTP 200, und ActiveSync wurde bis Provisioning, FolderSync und initialem Sync geprüft.
Mailflow und Protokolle
Zusätzlich wurde SMTP Submission mit STARTTLS, Authentifizierung und lokaler Zustellung in eine Test-Mailbox geprüft. Per IMAPS wurde kontrolliert, dass die Nachricht in der Inbox angekommen ist. Webmail-Versand, Reply und Sent Items bleiben eigene Browser-Tests; ActiveSync-FolderSync wurde mit kontrolliertem Client geprüft, echte Mobilgeräte bleiben bei produktiver Nutzung ein eigener Abnahmeschritt.
Finaler Health Check
Keine fehlgeschlagenen systemd Units.
zypper ps -s meldete keinen notwendigen Reboot mehr.
Keycloak aktiv.
Admin API aktiv.
Nginx aktiv.
PHP-FPM aktiv.
MariaDB aktiv.
Redis aktiv.
Gromox aktiv.
Chat aktiv.
Archive aktiv.
Meet-Webroute erreichbar, jitsi-jicofo, jitsi-videobridge und prosody aktiv.
Upgrade-Checkliste
Vor dem Upgrade Paketstände, Services, Endpoints und SSO-Baseline sichern.
Offiziellen Upgrade-Pfad der eingesetzten Appliance-Version prüfen; zusätzlich kontrollieren, ob grommunio-update vorhanden ist und welche Paketbefehle die Herstellerdokumentation für genau diese Version beschreibt.
Paketupgrade durchführen und Reboot-Anforderung ernst nehmen.
Nach dem Reboot zypper ps -s und systemctl --failed prüfen.
Files mit occ status prüfen und nötigenfalls occ upgrade ausführen.
Chat-Accounts auf SSO migrieren, wenn bestehende Accounts vorhanden sind.
grommunio-auth-Adapter für alle relevanten Anwendungen prüfen.
TLS-Vertrauen für serverseitige OIDC-Discovery prüfen.
OIDC-Callbacks im Browser und in Logs prüfen.
Admin-Identity-Mapping über preferred_username bewusst festlegen.
MFA für Admin-Zugänge bis zum Dashboard testen.
Browser-Smoke-Test für Web, Files, Chat, Archive und Admin dokumentieren.
Native Protokolle mit realem FQDN, gültiger Trust Chain und synthetischen Testdaten prüfen.
Desktop- und Mobil-Clients nur dann als PASS werten, wenn ein frisches Profil beziehungsweise ein echter Testclient eingerichtet wurde.
Partner-Runbook: Reihenfolge für eigene Umgebungen
Wer den Beitrag als Vorlage für Kundenumgebungen nutzt, sollte die Schritte in dieser Reihenfolge ausführen. Die Werte aus dem Lab wie mail.example.test sind Platzhalter und müssen durch den echten FQDN, die echte Maildomain und die produktive oder interne CA ersetzt werden.
| Phase | Schritt | Warum |
|---|---|---|
| 1 | Wartungsfenster, Backup und Rollback prüfen | Ohne Rückweg ist ein Upgrade kein kontrollierter Betriebsvorgang. |
| 2 | Paketstand, Dienste, Files-Status, OIDC und Discovery vor dem Upgrade sichern | Nur so ist später klar, was neu kaputt ist und was vorher schon abwich. |
| 3 | Offiziellen Upgrade-Pfad der konkreten Appliance-Version prüfen | grommunio-update, Admin UI oder Zypper dürfen nicht aus Gewohnheit gewählt werden. |
| 4 | Upgrade ausführen und Ausgabe vollständig speichern | Fehler dürfen nicht im Terminalscroll verloren gehen. |
| 5 | Reboot-Bedarf und failed Units prüfen | Ein grüner Paketlauf ersetzt keinen System-Health-Check. |
| 6 | Files mit occ status und gegebenenfalls occ upgrade prüfen | Schema-Migrationen können nach Paketupdates offen bleiben. |
| 7 | Keycloak/OIDC, Clients, Redirect URIs und MFA prüfen | SSO-Probleme zeigen sich oft erst beim Callback. |
| 8 | Browser-Apps einzeln testen: Web, Files, Chat, Archive, Admin, Meet | Jede Anwendung hat eigene Session- und Callback-Pfade. |
| 9 | Mailflow testen: SMTP Submission, IMAPS, Zustellung, Attachment | Groupware ist erst brauchbar, wenn echte Mailpfade funktionieren. |
| 10 | Discovery testen: AutoDiscover V1/V2, AutoConfig, DAV | Clients hängen an diesen Endpoints, nicht nur an Weboberflächen. |
| 11 | Native Protokolle testen: DAV PROPFIND, EWS SOAP, EAS Client falls genutzt | HTTP 200 allein ist kein Client-Nachweis. |
| 12 | Desktop- und Mobilclients mit frischem Profil testen | Thunderbird, Outlook und EAS dürfen nur mit echter Client-Evidence PASS werden. |
1
- Schritt
- Wartungsfenster, Backup und Rollback prüfen
- Warum
- Ohne Rückweg ist ein Upgrade kein kontrollierter Betriebsvorgang.
2
- Schritt
- Paketstand, Dienste, Files-Status, OIDC und Discovery vor dem Upgrade sichern
- Warum
- Nur so ist später klar, was neu kaputt ist und was vorher schon abwich.
3
- Schritt
- Offiziellen Upgrade-Pfad der konkreten Appliance-Version prüfen
- Warum
- grommunio-update, Admin UI oder Zypper dürfen nicht aus Gewohnheit gewählt werden.
4
- Schritt
- Upgrade ausführen und Ausgabe vollständig speichern
- Warum
- Fehler dürfen nicht im Terminalscroll verloren gehen.
5
- Schritt
- Reboot-Bedarf und failed Units prüfen
- Warum
- Ein grüner Paketlauf ersetzt keinen System-Health-Check.
6
- Schritt
- Files mit occ status und gegebenenfalls occ upgrade prüfen
- Warum
- Schema-Migrationen können nach Paketupdates offen bleiben.
7
- Schritt
- Keycloak/OIDC, Clients, Redirect URIs und MFA prüfen
- Warum
- SSO-Probleme zeigen sich oft erst beim Callback.
8
- Schritt
- Browser-Apps einzeln testen: Web, Files, Chat, Archive, Admin, Meet
- Warum
- Jede Anwendung hat eigene Session- und Callback-Pfade.
9
- Schritt
- Mailflow testen: SMTP Submission, IMAPS, Zustellung, Attachment
- Warum
- Groupware ist erst brauchbar, wenn echte Mailpfade funktionieren.
10
- Schritt
- Discovery testen: AutoDiscover V1/V2, AutoConfig, DAV
- Warum
- Clients hängen an diesen Endpoints, nicht nur an Weboberflächen.
11
- Schritt
- Native Protokolle testen: DAV PROPFIND, EWS SOAP, EAS Client falls genutzt
- Warum
- HTTP 200 allein ist kein Client-Nachweis.
12
- Schritt
- Desktop- und Mobilclients mit frischem Profil testen
- Warum
- Thunderbird, Outlook und EAS dürfen nur mit echter Client-Evidence PASS werden.
FAQ
Reicht zypper up als Upgrade-Test?
Nein. zypper prüft Pakete, aber nicht, ob Files-Datenbankmigration, OIDC-Discovery, Callback, MFA und Anwendungssessions funktionieren.
Sollte man grommunio-update verwenden?
Auf der getesteten Appliance ist grommunio-update vorhanden und bietet check, update und upgrade an. Gleichzeitig beschreibt die aktuell geprüfte grommunio Operations-Dokumentation Package Updates über zypper ref und zypper up. Für Runbooks heißt das: nicht raten, sondern pro Version die Herstellerdokumentation und das installierte Werkzeug prüfen.
War MFA ein Fehler im Admin-Login?
Nein. Wenn Keycloak eine TOTP-Required-Action erzwingt, ist das erwartetes Security-Verhalten. Wichtig ist, den Flow bis zum abgeschlossenen MFA-Setup und zurück ins Admin Dashboard zu testen.
Muss jeder diese manuellen Schritte ausführen?
Nicht pauschal. Der Artikel trennt Herstellerverhalten, erwartete Automatisierung, mögliche Nacharbeiten in bestehenden Umgebungen und umgebungsspezifische Sonderfälle. Genau deshalb sollten Upgrades vor Produktion reproduzierbar getestet werden.
Fazit
Ein Upgrade auf grommunio 2026.06.2 ist erst nach vollständiger technischer Abnahme wirklich aussagekräftig. Entscheidend sind nicht nur Pakete und Dienste, sondern DB-Migrationen, Identity-Konfiguration, TLS-Vertrauen, Callback-Verhalten, MFA und echte Browser-Flows.
Für produktive Umgebungen ist genau das der Unterschied zwischen einem Update und einem belastbaren Plattform-Upgrade.
grommunio-Upgrades reproduzierbar testen
ForgeOne unterstützt bei grommunio-Upgrades, zentralem SSO, Keycloak, MFA, Migration, Betrieb, Monitoring und dokumentierten Abnahmetests.






