Capitolo 16b Client, groupware & CLI Admin: #pIdentity

OAuth 2.1 per app di posta: Thunderbird, Outlook, dispositivi e riga di comando

nextxch è un proprio server di autorizzazione OAuth 2.1: le app di posta accedono nel browser tramite il normale login della Webmail (incluse 2FA e passkey), l'utente conferma l'accesso in una pagina di consenso e l'app riceve token di accesso di breve durata e un refresh token a rotazione. IMAP, SMTP, POP3 e ManageSieve accettano i token tramite SASL XOAUTH2 e OAUTHBEARER (RFC 7628), ActiveSync, EWS e MAPI come bearer. I dispositivi senza browser usano il device code flow (RFC 8628). Possono essere accettati anche token di accesso di Entra ID o Keycloak. Ogni autorizzazione è visibile all'utente e all'amministratore e può essere revocata immediatamente.

Suggerimento operativo & nota sull'architettura

Con "Solo OAuth / Kerberos per protocollo" (Admin > Origini identità) password e password per app possono essere disattivate per singoli protocolli e domini, ad es. IMAP e SMTP solo con OAuth. Un amministratore locale del server senza origine resta escluso come accesso di emergenza (break-glass).

Riga di comando: device code flow e IMAP con XOAUTH2

Client pubblico preregistrato nextxch-cli. L'utente apre l'indirizzo mostrato, accede e conferma il codice.

Riferimento / configurazione
# 1. Request a device code
curl -s https://mail.example.com/oauth/device_authorization \
  -d client_id=nextxch-cli -d "scope=mail offline_access"
# -> {"device_code":"...","user_code":"BCDF-GHJK","verification_uri":"https://mail.example.com/oauth/device",...}

# 2. Open https://mail.example.com/oauth/device in a browser, sign in, confirm code BCDF-GHJK

# 3. Poll every 5 seconds until the token arrives (authorization_pending / slow_down)
curl -s https://mail.example.com/oauth/token -d client_id=nextxch-cli \
  -d grant_type=urn:ietf:params:oauth:grant-type:device_code -d device_code=...

# 4. IMAP with the access token
curl -v --login-options AUTH=XOAUTH2 --oauth2-bearer "$ACCESS_TOKEN" \
  -u anna@example.com imaps://mail.example.com/INBOX

# 5. Refresh (the old refresh token becomes invalid) and revoke
curl -s https://mail.example.com/oauth/token -d client_id=nextxch-cli \
  -d grant_type=refresh_token -d refresh_token=nxrt_...
curl -s https://mail.example.com/oauth/revoke -d client_id=nextxch-cli -d token=nxrt_...

Impostazioni, valori predefiniti e best practice

Impostazione / posizione Descrizione Valore predefinito Best practice per la produzione
Einschalten Admin > Origini identità > OAuth 2.1: "Accesso OAuth attivato". L'issuer è l'indirizzo pubblico del server. Discovery su /.well-known/oauth-authorization-server e /.well-known/openid-configuration, chiave di firma (ES256) su /oauth/jwks. Aus Access token 60 minuti, refresh token 90 giorni se inutilizzato, al massimo 365 giorni. Un refresh token usato due volte revoca l'intera autorizzazione (protezione contro il furto).
Thunderbird Client pubblico preregistrato "thunderbird" con PKCE e redirect loopback. Autoconfig (/.well-known/autoconfig) offre OAuth2 come secondo metodo dopo la password. client_id thunderbird Thunderbird usa OAuth2 solo per i provider presenti nel suo elenco integrato; per il proprio server dipende dalla versione. Fino ad allora usare Kerberos/GSSAPI o una password per app.
Outlook und Entra ID Con una fonte Entra e "accetta token di accesso per i protocolli", nextxch accetta i token di accesso Entra (firma tramite JWKS, aud, iss incluso l'issuer v1 sts.windows.net, scadenza, directory). ActiveSync, EWS e MAPI annunciano "WWW-Authenticate: Bearer". aud = api://mail.firma.de Entra: registrazione app propria "nextxch Mail API" con URI ID applicazione api://mail.example.com e uno scope (ad es. Mail.Access). Se Outlook per Windows utilizzi l'autenticazione moderna verso il proprio server dipende dalla versione e da Autodiscover; nella rete aziendale Kerberos è la soluzione affidabile.
Eigene Anwendungen Client gestiti dall'amministratore: pubblici (PKCE) o confidenziali con un segreto (mostrato una sola volta), redirect URI esatti o loopback con qualsiasi porta, flussi code, refresh e device code, facoltativamente senza pagina di consenso. PKCE S256 Pflicht Ambiti: mail (tutti i protocolli), singoli protocolli (imap, smtp, pop3, sieve, eas, ews, mapi, dav, jmap), offline_access, openid, email, profile.
Übersicht und Widerruf Gli utenti vedono le proprie app connesse nella Webmail in Impostazioni > Sicurezza, gli amministratori tutte le autorizzazioni in Admin > Origini identità e nella finestra dell'account. La revoca termina immediatamente anche i token di accesso già emessi. - Quando un amministratore reimposta una password AD, tutte le concessioni OAuth dell'account vengono revocate automaticamente.