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

Fuentes de identidad: Active Directory, LDAP, Entra ID, Keycloak y SCIM

En Admin > Fuentes de identidad conecta un inquilino o dominios concretos a Active Directory o LDAP (inicio de sesión mediante bind, sincronización de usuarios, grupos anidados y contactos) o a Microsoft Entra ID, Keycloak y otros proveedores de OpenID Connect (inicio de sesión mediante SSO, aprovisionamiento mediante SCIM 2.0). Las cuentas locales siguen siendo plenamente utilizables junto a ellas (funcionamiento mixto). Cada cuenta tiene exactamente una fuente; la correspondencia se basa en el ExternalId (AD objectGUID, Entra objectId, LDAP entryUUID), nunca solo en la dirección de correo. Los campos que gestiona la fuente son de solo lectura en la administración y en "Mi cuenta".

Consejo operativo y nota de arquitectura

Mantenga al menos un administrador del servidor local sin origen como acceso de emergencia (break glass). Nunca se toma de AD, nunca inicia sesión mediante la correspondencia de correo de SSO y funciona incluso cuando AD o Entra no están accesibles. Configure el umbral de bloqueo de nextxch (predeterminado 5 fallos) por debajo del umbral de bloqueo de cuentas de AD: así los atacantes nunca bloquean una cuenta de AD, porque nextxch se detiene antes del bind.

Entra ID: registro de aplicación para el inicio de sesión y SCIM

Inicio de sesión: registro de aplicación propio (plataforma web) con el URI de redirección de Admin > Orígenes de identidad. Aprovisionamiento: aplicación empresarial ajena a la galería con modo de aprovisionamiento "Automático", URL del inquilino y token secreto de nextxch.

Referencia / configuración
1. Entra admin center > App registrations > New registration
   Name:            nextxch Webmail
   Account types:   Accounts in this organizational directory only (single tenant)
   Redirect URI:    Web  https://mail.example.com/api/auth/sso/callback
2. Certificates & secrets > New client secret  -> enter it in nextxch as client secret
3. Token configuration > Add optional claim: ID token "email" (otherwise preferred_username = UPN is used)
4. App roles (optional): e.g. create "Nextxch.TenantAdmins", assign users,
   in nextxch: claim "roles", value "Nextxch.TenantAdmins" -> role TenantAdmin
5. nextxch Admin > Identity sources > Add Entra ID / OIDC
   Authority:  https://login.microsoftonline.com/<directory id>/v2.0
   Client id:  <application id>
6. SCIM: Enterprise applications > New application > Create your own (non-gallery)
   Provisioning > Automatic
   Tenant URL:    https://mail.example.com/scim/v2
   Secret token:  nxscim_...   (Admin > Identity sources > Create SCIM token)
   Mappings: userName <- userPrincipalName, emails[type eq "work"].value <- mail,
             externalId <- objectId (recommended) or mailNickname

Configuración, valores predeterminados y buenas prácticas

Ajuste / ubicación Descripción Valor predeterminado Buena práctica de producción
Active Directory: Dienstkonto Usuario de dominio normal sin derechos de administrador, solo lectura (basta con el acceso de lectura predeterminado de "Usuarios autenticados"). La contraseña no caduca. Se almacena cifrada y nunca se muestra. CN=svc-nextxch,OU=Service,... Sin administrador de dominio. La lectura basta para las fotos y proxyAddresses. Opcionalmente, restrinja "Iniciar sesión en" a los DC.
LDAPS 636 / StartTLS 389 Conexión cifrada con los controladores de dominio. Se prueban varios DC en orden (failover), con tiempo de espera configurable por DC. LDAPS, 10 s Confíe en el certificado del DC (o de la CA interna) en el servidor nextxch. "No comprobar el certificado" solo brevemente durante la configuración.
Anmeldung (alle Protokolle) Webmail, administración, IMAP, SMTP, POP3, ActiveSync, EWS, MAPI y DAV comprueban la contraseña de AD mediante bind. Nombres de inicio de sesión: dirección de correo, userPrincipalName, sAMAccountName o DOMAIN\user. Cache 15 min (Hash) La breve caché de inicio de sesión almacena solo un HMAC, nunca la contraseña, y mantiene el inicio de sesión operativo durante una breve caída del DC. 0 la desactiva.
Abgleich: Benutzer, Gruppen, Kontakte mail y proxyAddresses (SMTP: = principal, smtp: = alias), displayName, givenName, sn, telephoneNumber, mobile, title, department, company, physicalDeliveryOfficeName, manager, thumbnailPhoto; userAccountControl y accountExpires desactivan el buzón. Los grupos habilitados para correo se convierten en listas de distribución (anidadas mediante LDAP_MATCHING_RULE_IN_CHAIN) y los contactos aparecen en la libreta de direcciones. Delta 15 min, voll 02:00 Use "Vista previa" antes de la primera ejecución: muestra qué cuentas se crearían, adoptarían o desactivarían sin cambiar nada. Filtre por un grupo "Mail users".
Gelöschte Objekte Cuando un objeto desaparece de AD (o Entra envía SCIM DELETE), el buzón se deshabilita de inmediato. Tras el periodo de gracia, el administrador decide: eliminarlo, conservarlo como buzón compartido o mantenerlo deshabilitado. 30 Tage Los cambios de nombre no son eliminaciones: la antigua dirección principal se conserva como alias.
Vorlagen Asignación de atributos para Microsoft AD, Samba AD, OpenLDAP, Univention Corporate Server y FreeIPA; cada campo puede sobrescribirse o desactivarse con "-". Active Directory OpenLDAP necesita el overlay memberOf para el filtro de grupos; en ese caso, nextxch resuelve por sí mismo los grupos anidados.
OIDC (Entra ID, Keycloak) Flujo de código de autorización con PKCE en el servidor, detección y JWKS con rotación automática de claves, RS256/ES256, comprobaciones de iss, aud, exp, nonce y del tid del inquilino de Entra. Los claims de grupo o de rol de aplicación se asignan a User, TenantAdmin y ServerAdmin. Knopf auf der Anmeldeseite Keycloak: authority https://kc.example.com/realms/<realm>, cliente confidencial con standard flow, URI de redirección como arriba; roles mediante el claim realm_access.roles.
Lokale Passwörter pro Domain Puede desactivarse por separado para webmail/administración y para los protocolos. Las contraseñas de Entra nunca llegan a nextxch: las apps de correo (Outlook, iPhone, Thunderbird) usan contraseñas de aplicación; el webmail guía la configuración con un asistente. An Por protocolo se puede imponer además "solo OAuth / Kerberos" (véanse los capítulos 16a y 16b). Los usuarios de AD pueden cambiar su contraseña en el webmail si el origen lo permite.
Kennwort ändern (AD / LDAP) Con "Los usuarios pueden cambiar su contraseña", el webmail muestra un formulario en Configuración > Seguridad (contraseña actual y nueva). AD: unicodePwd mediante LDAPS con la contraseña anterior, de modo que se aplican la complejidad, el historial de contraseñas y la antigüedad mínima de AD; otros directorios: RFC 3062. Los administradores restablecen las contraseñas en el cuadro de diálogo de la cuenta (opcionalmente "cambiar en el próximo inicio de sesión"). Aus Para el restablecimiento por el administrador, delegue en la cuenta de servicio solo "Restablecer contraseña" en la OU de usuarios. Las contraseñas nunca se registran.