Capítulo 16b Clientes, groupware & CLI Administración: #pIdentity

OAuth 2.1 para apps de correo: Thunderbird, Outlook, dispositivos y la línea de comandos

nextxch es su propio servidor de autorización OAuth 2.1: las aplicaciones de correo inician sesión en el navegador mediante el inicio de sesión normal del Webmail (incluidos 2FA y llaves de acceso), el usuario confirma el acceso en una página de consentimiento y la aplicación recibe tokens de acceso de corta duración y un token de actualización rotativo. IMAP, SMTP, POP3 y ManageSieve aceptan los tokens mediante SASL XOAUTH2 y OAUTHBEARER (RFC 7628); ActiveSync, EWS y MAPI, como bearer. Los dispositivos sin navegador usan el flujo de código de dispositivo (RFC 8628). También se pueden aceptar tokens de acceso de Entra ID o Keycloak. Cada concesión es visible para el usuario y el administrador y puede revocarse de inmediato.

Consejo operativo y nota de arquitectura

Con "Solo OAuth / Kerberos por protocolo" (Admin > Fuentes de identidad), las contraseñas y las contraseñas de aplicación pueden desactivarse para protocolos y dominios concretos, p. ej., IMAP y SMTP solo con OAuth. Un administrador local del servidor sin fuente queda exento como acceso de emergencia (break-glass).

Línea de comandos: flujo de código de dispositivo e IMAP con XOAUTH2

Cliente público prerregistrado nextxch-cli. El usuario abre la dirección mostrada, inicia sesión y confirma el código.

Referencia / configuración
# 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_...

Configuración, valores predeterminados y buenas prácticas

Ajuste / ubicación Descripción Valor predeterminado Buena práctica de producción
Einschalten Admin > Fuentes de identidad > OAuth 2.1: "Inicio de sesión OAuth activado". El emisor es la dirección pública del servidor. Discovery en /.well-known/oauth-authorization-server y /.well-known/openid-configuration, clave de firma (ES256) en /oauth/jwks. Aus Token de acceso 60 minutos, token de actualización 90 días sin uso, máximo 365 días. Un token de actualización usado dos veces revoca toda la concesión (protección contra robo).
Thunderbird Cliente público prerregistrado "thunderbird" con PKCE y redirección loopback. Autoconfig (/.well-known/autoconfig) ofrece OAuth2 como segundo método después de la contraseña. client_id thunderbird Thunderbird usa OAuth2 solo para los proveedores de su lista integrada; para su propio servidor depende de la versión. Mientras tanto, use Kerberos/GSSAPI o una contraseña de aplicación.
Outlook und Entra ID Con una fuente Entra y "aceptar tokens de acceso para protocolos", nextxch acepta tokens de acceso de Entra (firma mediante JWKS, aud, iss incluido el emisor v1 sts.windows.net, caducidad, directorio). ActiveSync, EWS y MAPI anuncian "WWW-Authenticate: Bearer". aud = api://mail.firma.de Entra: registro de aplicación propio "nextxch Mail API" con el URI de ID de aplicación api://mail.example.com y un ámbito (p. ej., Mail.Access). Que Outlook para Windows use la autenticación moderna contra su propio servidor depende de la versión y de Autodiscover; en la red corporativa, Kerberos es la vía fiable.
Eigene Anwendungen Clientes gestionados por el administrador: públicos (PKCE) o confidenciales con un secreto (se muestra una vez), URI de redirección exactos o loopback con cualquier puerto, flujos code, refresh y device code, opcionalmente sin página de consentimiento. PKCE S256 Pflicht Ámbitos: mail (todos los protocolos), protocolos individuales (imap, smtp, pop3, sieve, eas, ews, mapi, dav, jmap), offline_access, openid, email, profile.
Übersicht und Widerruf Los usuarios ven sus aplicaciones conectadas en el webmail, en Configuración > Seguridad; los administradores ven todas las concesiones en Admin > Fuentes de identidad y en el diálogo de la cuenta. La revocación también invalida de inmediato los tokens de acceso ya emitidos. - Cuando un administrador restablece una contraseña de AD, todas las autorizaciones OAuth de la cuenta se revocan automáticamente.