Kapitel 16b Clients, Groupware & CLI Admin: #pIdentity

OAuth 2.1 für Mail-Programme: Thunderbird, Outlook, Geräte und Kommandozeile

nextxch ist ein eigener OAuth-2.1-Autorisierungsserver: Mail-Programme melden sich im Browser über das normale Webmail-Login an (inklusive 2FA und Passkeys), der Benutzer bestätigt den Zugriff auf einer Zustimmungsseite, das Programm erhält kurzlebige Zugriffstoken und ein rotierendes Refresh-Token. IMAP, SMTP, POP3 und ManageSieve nehmen die Token per SASL XOAUTH2 und OAUTHBEARER (RFC 7628) an, ActiveSync, EWS und MAPI als Bearer. Geräte ohne Browser nutzen den Gerätecode-Flow (RFC 8628). Zusätzlich können Zugriffstoken von Entra ID oder Keycloak angenommen werden. Jede Anmeldung ist für Benutzer und Admin sichtbar und sofort widerrufbar.

Praxis-Tipp & Architektur-Hinweis

Mit "Nur OAuth / Kerberos pro Protokoll" (Admin > Identitätsquellen) lassen sich Passwörter und App-Passwörter für einzelne Protokolle und Domains abschalten, z. B. IMAP und SMTP nur noch mit OAuth. Ein lokaler Server-Admin ohne Quelle bleibt als Notfall-Zugang ausgenommen.

Kommandozeile: Gerätecode-Flow und IMAP mit XOAUTH2

Vorregistrierter öffentlicher Client nextxch-cli. Der Benutzer öffnet die angezeigte Adresse, meldet sich an und bestätigt den Code.

Referenz / Konfiguration
# 1. Gerätecode anfordern
curl -s https://mail.firma.de/oauth/device_authorization \
  -d client_id=nextxch-cli -d "scope=mail offline_access"
# -> {"device_code":"...","user_code":"BCDF-GHJK","verification_uri":"https://mail.firma.de/oauth/device",...}

# 2. Im Browser https://mail.firma.de/oauth/device öffnen, anmelden, Code BCDF-GHJK bestätigen

# 3. Alle 5 Sekunden abfragen, bis das Token kommt (authorization_pending / slow_down)
curl -s https://mail.firma.de/oauth/token -d client_id=nextxch-cli \
  -d grant_type=urn:ietf:params:oauth:grant-type:device_code -d device_code=...

# 4. IMAP mit dem Zugriffstoken
curl -v --login-options AUTH=XOAUTH2 --oauth2-bearer "$ACCESS_TOKEN" \
  -u anna@firma.de imaps://mail.firma.de/INBOX

# 5. Erneuern (das alte Refresh-Token wird ungültig) und widerrufen
curl -s https://mail.firma.de/oauth/token -d client_id=nextxch-cli \
  -d grant_type=refresh_token -d refresh_token=nxrt_...
curl -s https://mail.firma.de/oauth/revoke -d client_id=nextxch-cli -d token=nxrt_...

Einstellungen, Standardwerte & Best Practices

Einstellung / Ort Funktion Standardwert Best Practice im Betrieb
Einschalten Admin > Identitätsquellen > OAuth 2.1: "OAuth-Anmeldung aktiv". Der Issuer ist die öffentliche Adresse des Servers. Discovery unter /.well-known/oauth-authorization-server und /.well-known/openid-configuration, Signaturschlüssel (ES256) unter /oauth/jwks. Aus Zugriffstoken 60 Minuten, Refresh-Token 90 Tage ungenutzt, Höchstdauer 365 Tage. Ein zweimal benutztes Refresh-Token widerruft die ganze Anmeldung (Diebstahlschutz).
Thunderbird Vorregistrierter öffentlicher Client "thunderbird" mit PKCE und Loopback-Redirect. Die Autoconfig (/.well-known/autoconfig) bietet OAuth2 als zweite Methode nach dem Passwort an. client_id thunderbird Thunderbird nutzt OAuth2 nur für Anbieter, die in seiner eingebauten Liste stehen; für den eigenen Server hängt das von der Version ab. Bis dahin Kerberos/GSSAPI oder App-Passwort verwenden.
Outlook und Entra ID Mit einer Entra-Quelle und "Zugriffstoken für Protokolle akzeptieren" nimmt nextxch Entra-Zugriffstoken an (Signatur per JWKS, aud, iss inklusive v1-Aussteller sts.windows.net, Ablauf, Verzeichnis). ActiveSync, EWS und MAPI melden "WWW-Authenticate: Bearer". aud = api://mail.firma.de Entra: eigene App-Registrierung "nextxch Mail API" mit Anwendungs-ID-URI api://mail.firma.de und einem Scope (z. B. Mail.Access). Ob Outlook für Windows Modern Auth gegen einen eigenen Server nutzt, hängt von Version und Autodiscover ab; im Firmennetz ist Kerberos der verlässliche Weg.
Eigene Anwendungen Admin-verwaltete Clients: öffentlich (PKCE) oder vertraulich mit Geheimnis (nur einmal angezeigt), Redirect-URIs exakt oder Loopback mit beliebigem Port, Flows Code, Refresh und Gerätecode, optional ohne Zustimmungsseite. PKCE S256 Pflicht Scopes: mail (alle Protokolle), einzelne Protokolle (imap, smtp, pop3, sieve, eas, ews, mapi, dav, jmap), offline_access, openid, email, profile.
Übersicht und Widerruf Benutzer sehen ihre verbundenen Programme im Webmail unter Einstellungen > Sicherheit, Admins alle Anmeldungen unter Admin > Identitätsquellen und im Kontodialog. Widerrufen beendet auch bereits ausgegebene Zugriffstoken sofort. - Beim Zurücksetzen eines AD-Kennworts durch den Admin werden alle OAuth-Anmeldungen des Kontos automatisch widerrufen.