grommunio’s Exchange Web Services mit Linux-Clients

22. April 2024 | Blog

grommunio’s Exchange Web Services mit Linux-Clients

Bereits seit letztem Jahr unterstützt grommunio Exchange Web Services, kurz EWS. Diese von Microsoft erstmals in Exchange 2007 eingeführten Dienste stellen eine weitere, wichtige API dar, über die Clients mit Exchange-Servern (und Office 365, heute MS 365) kommunizieren können.

Und auch hier zeigt sich die Kraft des Open-Source-Entwicklungsmodells: Neben dem hauseigenen grommunio Desktop, sowie den vollständig unterstützten Standardanwendungen auf Windows und Mac (Outlook) sowie Android und iPhones stehen dank EWS aber auch Anwendungen bereit, deren EWS-Integration von der Community gepflegt wird. Außerdem zeigt sich am Beispiel eines etwas wackeligen Kandidaten, wie mächtig grommunio als Server ist und welche überragenden Möglichkeiten fürs Debugging es mitbringt, vor allem im Vergleich zu Microsofts Exchange.

Exchange Web Services: Ab grommunio 2023.11.3 voll supported

Der Reihe nach: Mit der neuesten Version 2023.11.3 von grommunio ist EWS dem Beta-Status entwachsen und wird ab sofort vollständig supported. Das ist vor allem für Apple-Clients hilfreich, nicht nur Outlook for Mac sondern auch Apps wie Apple Mail und Calender unterstützt grommunio fortan. Die EWS-Dienste sind seit 2023.11.3 in der Standardeinstellung aktiv – siehe Release Notes.

Die EWS-API ist von Microsoft detailliert spezifiert und erlaubt umfangreiche Funktionen, bis hin zu Administration und Datenverwaltung. Reizvoll ist EWS aber auch vor allem deshalb, weil der Hersteller die Entwicklung eigener Clients wünscht und fördert. EWS sollte quasi die Schnittstelle zu anderen Clients, Tools und zur Datenverarbeitung von Exchange-Daten werden, eben auch für Werkzeuge wie Sharepoint oder Skype. Wer sich für mehr Details interessiert, findet diese gut aufbereitet auf Blogs wie bei TechGenix.

Groupware, Remote-Administration und mehr – Eigene Clients ausdrücklich gewünscht!

Für Exchange Web Services gibt es schon länger clientseitige Implementierungen aus der Open-Source-Welt: Sowohl Mozilla Thunderbird als auch GNOMEs Evolution und KDE Kontact bieten die Anbindung an EWS an, allerdings mit unterschiedlicher Qualität und mit anderen Prämissen. Dass man da keine Wunder erwarten darf, sollte nicht überraschen: Auch wenn mehr und mehr Anwender auf dem Arbeitsplatz auf freie Software setzen, bleibt der Linux-Desktop dennoch ein Exot, nur knapp hinter MacOS als Client-System.

Schlimmer noch: Unter den Linux-Desktop-Anwendern sind die mit Bedarf für einen ausgewachsenen Groupware-Client a la Outlook eine Ausnahme, meist reichen den Anwendern Web-Tools völlig aus, dazu gibt es Implementierungen wie grommunio Desktop, die das Look and Feel der Webseite stets einheitlich, sicher und browserunabhängig auf alle Betriebssysteme bringen. Das schöne an solchen Electron-Varianten ist, dass sie alle Features in einer GUI vereint, genau so wie sie auch im Webinterface daherkommen.

grommunio Desktop Mail
Geht einen eigenen Weg: Der grommunio Desktop ist ebenfalls auf allen Linux-Betriebssystemen verfügbar, benötigt aber kein EWS.

Aber auch wenn die Zielgruppe eines nativen EWS-Clients oder -Plugin auf dem Linux-Desktop vermeintlich winzig ist, und die Entwicklercommunity dafür dementsprechend klein, so überrascht es dennoch, was die Linux-Gemeinschaft hier auch ohne grommunio-Support bereits auf die Beine gestellt hat und wie weit man im Alltag damit kommt.

EWS-Testsieger: Evolution

Unter den echten EWS-Clients für Linux schneidet das Gnome-Programm Evolution am besten ab. In Stil und Benutzerführung eher klassisch-einfach gehalten, hat es mit Abstand die beste EWS-Integration, die im Test auch auf Anhieb funktionierte und alle notwendigen Settings automatisch erkannte, auch im Zusammenspiel mit grommunio.

Unter openSUSE kommt Evolution mit seiner EWS-Erweiterung übrigens am einfachsten mit einem „zypper in evolution-ews“ auf die Platte, das installiert das EWS-Plugin gleich mit. Seit Evolution 3.27.91 geht da auch Oauth 2 mit MS 365, aktuell bringt Tumbleweed schon evolution-ews 3.52.

grommunio Exchange Web Services: Installation-Evolution-EWS
Ein Zypper-Befehl, und Evolution mit EWS ist auf dem SUSE-System angekommen.

Besonders schön: Nach der Installation, beim ersten Start, nimmt Evolution dem Benutzer alle Arbeit ab: Ein Wizard fragt nach der E-Mail-Adresse, die reicht dank Autodiscover aus, um alle Daten zu finden – Zack!, schon ist der grommunio- (oder Exchange-)Account eingerichtet. Wer das erst später erledigen will, erreicht das Gleiche mit dem Menüeintrag „Konten | Hinzufügen | Sammelkonto“.

grommunio Exchange Web Services: Evolution
Evolution kommt mit einer sauberen, vollständigen Integration und einem schicken Setup-Wizard.

Heute proprietär, morgen frei: EWS in Mozilla Thunderbird

Auch bei Mozilla arbeitet man an den Web Services. Angesichts der weiteren Pläne Microsofts sei EWS „unser bester Weg, Support sowohl für Exchange Online und On-Premise-Installationen zu gewährleisten.“, zitiert das Linux-Portal Howtogeek den Entwickler Sean Burke. Der Post ist noch recht neu, vom Februar 2024, ein genaues Datum gibt es noch nicht für Mozillas Pläne, doch immerhin ist ein Commitment ist da. Auch auf der FOSDEM in Brüssel, nach Jan Engelhardt’s Vortrag über grommunio, solle es Gesrpäche zwischen Entwicklern über EWS gegeben haben.

Wie auch immer, bis dahin müssen sich die Thunderbird-Liebhaber mit dem Addon ExQuilla zufrieden geben (manche Stimmen schreiben „herumschlagen“), dass mit recht durchwachsenen Bewertungen aufweist. Von der Webseite kommt eine .xpi-Datei, die der Anwender in Thunderbirds Erweiterungsmanagement lädt.

Kein Kalender?

Nach dem beherzten Klick auf das dramatisch klingende „Erlaube ExQuilla den vollständigen Zugriff auf diesen Computer“ muss der User dort noch einen Exchange-Account konfigurieren. Nicht irritieren lassen: Die nun angezeigte Dokumentation von Exquilla zeigt noch das schon lange veraltete Thunderbird-Interface (über das Hauptmenü, „Tools | Exquilla for Microsoft Exchange | Add Microsoft Exchange Account“). Im modernen Donnervogel ist eine eigene Schaltfläche für die EWS-Anbindung vorgesehen, nachdem man die Xpi-Erweiterung installiert hat, direkt auf der Startseite.

Wie bei Evolution klappt auch hier die automatische Discovery der grommunio-Daten problemlos, Kontakte und Mails gelangen in Thunderbird. Aber einen den Kalender sucht der Anwender vergebens, den zu synchronisieren gehört nicht zum Funktionsumfang von ExQuilla.

grommunio Exchange Web Services: ExQuilla
Kostenpflichtig und ohne Kalender: ExQuila for Exchange ist ein Plugin für Mozilla Thunderbird.

Dritter im Bunde: KDE Kontact mit Exchange Web Services

Auch KDEs Kontact – oder „Kmail“ – hat EWS schon länger „an Bord“, ein Plugin ist nicht notwendig, auf den gängigen Linux-Distributionen steht EWS als eigener Servertyp für die Accounts zur Auswahl. Schade nur, dass die Integration etwas verwaist scheint, wie schon das Copyright im „Info-Dialog“ zeigt, das stammt von 2020. Dementsprechend wackelig verläuft die Integration mancherorts. Auf dem heutigen Stand funktioniert EWS mit KDE Kontact, scheint aber noch nicht empfehlenswert, manuelles Debuggen ist bisweilen notwendig.

grommunio Exchange Web Services: Kontact
Auch KDE Kontact bringt einen Einrichtungsassistenten, scheitert aber (Stand April 2024) an der Autodetection der EWS-URL und verursacht Fehlermeldungen.

An sich gelingt die Installation sehr schnell: Es reicht ein Klick auf die Schaltfläche, um einen neuen Account hinzuzufügen. Wer dort unter „Einrichten | Zugänge | Empfang“ auf „Hinzufügen | Benutzerdefiniertes Postfach“ klickt und den Eintrag „Microsoft Exchange Server (EWS)“ auswählt, erhält einen ähnlich mächtigen Setup-Wizard wie bei Evolution.

In der Theorie schenken sich die Open-Source-Groupware-Clients nicht viel: Oauth, NTLMv2, mit oder ohne Domäne, viele nützliche Einstellungen kann der Anwender auswählen. Das funktioniert meist out-of-the-box, nur Kontact strauchelt (mit grommunio) am Autodetect der Server-URL. Wer die manuell einträgt, kommt auch in den Genuss von EWS mit KDE auf dem Linux-Desktop – mit Abstrichen und Fehlermeldungen. Die grommunio-Entwickler untersuchen noch, woran das genau liegt, im Test mussten wir einfach die URL „https://$SERVERNAME/EWS/Exchange.asmx“ manuell eintragen. ($SERVERNAME natürlich ersetzt durch den zuständigen Mailserver) und die NTLMv2-Authentifizierung deaktivieren.

Hier die für Kontact notwendigen Schritte der Reihe nach:

  • Öffnen Sie den Einrichtungsdialog indem Sie im Hauptmenü von Kontact Auf „Einstellungen | Kmail einrichten klicken. Wählen Sie den Reiter „Zugänge | Empfang“ und klicken Sie auf „Hinzufügen | Benutzerdefiniertes Postfach“.
  • Vergeben Sie einen Namen und tragen Sie eine E-Mail-Adresse, deaktivieren sie für grommunio das Häkchen vor „Domäne“.
  • Geben Sie erneut den Benutzernamen (er ist identisch mit der E-Mail-Adresse) und das Passwort ein
  • Das Häkchen vor „Automatische Erkennung des Servers müssen Sie für grommunio deaktivieren und als „EWS-URL“ folgenden Wert eintragen: „https://$SERVERNAME/EWS/Exchange.asmx“. Ersetzen Sie $SERVERNAME durch ihren Mailserver.
  • Betätigen Sie die Schaltfläche „Verbindung testen“. Sollte keine Fehlermeldung kommen, können Sie mit „Durchführen“ fortfahren und die Konfiguration mit „OK“ abschließen. Nach dem nächsten „Aktualisieren“ ihrer Mails und dem Aktivieren der Häkchen im Kalender und Adressbuch stehen Ihnen die Exchange-Daten (bzw. die Daten aus grommunio oder MS365 zur Verfügung. Wie bei Evolution bieten die weiteren Reiter im Einstellungsdialog umfangreiche Möglichkeiten zum Fine Tuning. Doch Vorsicht ist geboten.

grommunio hilft beim Debuggen

Besonders ärgerlich im Test war ein Fehler im EWS-Plugin, der das Testsystem unter unnötig hohe Last zu setzen schien: im Message Journal des Linux-Clients erschien alle halbe Sekunde (sic!) die Fehlermeldung „org.kde.pim.ews.client: Failed to read EWS request – expected GetEventsResponseMessage element“, die darauf hindeutet, dass das KDE-Plugin noch „GetEvents“ nutzt, während die anderen Clients heute das funktionierende „GetStreamingEvents“ nutzen. Auch vereinzelte Abstürze konnten beobachtet werden.

Doch auch hier kann grommunio dem Interessierten helfen: Die Transparenz und Admin-Freundlichkeit von Open Source Software erlaubt es, den Programmen genauer auf die Finger zu schauen. Wer auf dem Server das EWS-Debugging einschaltet, bekommt im Admin-Webfrontend von grommunio detaillierte Informationen über die Requests von Clients – nicht nur beim Anbinden von unsupporteten Linux-Groupwareprogrammen oder auch jenseits von Exchange Web Services eine hilfreiche Sache.

grommunio Exchange Web Services: grommunio-server-log
Im Protokoll des Servers zeigen sich die fehlerhaften Anfragen von Kontacts EWS-Client.

Wer dem Fehlverhalten so selbst auf die Spur kommen will, der setzt in grommunios Konfigurationsdatei „/etc/gromox/http.cfg“ das „http_log_level“ auf den Wert 7 sowie in „/etc/gromox/ews.cfg“ die Parameter ews_request_logging=2 und ews_response_logging=2. Dann protokolliert grommox sämtliche EWS Requests und Responses vollständig in den gromox-http log. Achtung: Diese Einstellungen sollten nicht im produktiven Betrieb behalten werden, da sie große Mengen an Protokolldaten erzeugen können.

grommunio Exchange Web Services: Debugging
Die Debugging-Einstellungen des EWS-Traffics auf dem grommunio-Server sollten im Betrieb auskommentiert werden.

Fazit: Evolution ja, Kontact jein, Thunderbird bald

Die in grommunio mittlerweile standardmäßig aktiven und vollständig integrierten EWS-Dienste sind nicht nur für Apple-Clients interessant. Das Versprechen, damit beliebige Clients zuzulassen, hat Microsoft gehalten, und auch grommunio wie auch die ganze Open-Source-Welt profitieren davon. Aber mit grommunio steht jetzt der erste vollständig funktionsfähige Open-Source-Groupware-Server mit Exchange Web Services zur Verfügung, zahlreiche Kunden nutzen ihn bereits und dank der Transparenz und Nachvollziehbarkeit von Open-Source und der vielen Einstellungsmöglichkeiten kann grommunio da auch in Fällen helfen, wo Exchange-Admins sich selbst überlassen sind.