Chapitre 16 Clients, groupware & CLI Admin : #pIdentity

Sources d'identité : Active Directory, LDAP, Entra ID, Keycloak et SCIM

Sous Admin > Sources d'identité, vous connectez un locataire ou des domaines individuels à Active Directory ou LDAP (connexion par bind, synchronisation des utilisateurs, des groupes imbriqués et des contacts) ou à Microsoft Entra ID, Keycloak et d'autres fournisseurs OpenID Connect (connexion par SSO, provisionnement par SCIM 2.0). Les comptes locaux restent pleinement utilisables à côté (fonctionnement mixte). Chaque compte possède exactement une source ; l'association utilise l'ExternalId (AD objectGUID, Entra objectId, LDAP entryUUID), jamais la seule adresse e-mail. Les champs gérés par la source sont en lecture seule dans l'administration et dans "Mon compte".

Conseil d'exploitation & note d'architecture

Conservez au moins un administrateur serveur local sans source comme accès de secours (break-glass). Il n'est jamais repris d'AD, ne se connecte jamais via la correspondance d'e-mail SSO et fonctionne même lorsque AD ou Entra sont injoignables. Réglez le seuil de verrouillage de nextxch (5 échecs par défaut) en dessous du seuil de verrouillage des comptes AD : les attaquants ne verrouillent alors jamais un compte AD, car nextxch s'arrête avant le bind.

Entra ID : inscription d'application pour la connexion et SCIM

Connexion : inscription d'application dédiée (plateforme web) avec l'URI de redirection indiquée sous Admin > Sources d'identité. Provisionnement : application d'entreprise hors galerie avec le mode de provisionnement "Automatique", URL du locataire et jeton secret fournis par nextxch.

Référence / configuration
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

Paramètres, valeurs par défaut & bonnes pratiques

Paramètre / emplacement Description Valeur par défaut Bonne pratique en production
Active Directory: Dienstkonto Utilisateur de domaine normal sans droits d'administration, en lecture seule (l'accès en lecture par défaut des "Authenticated Users" suffit). Le mot de passe n'expire pas. Stocké chiffré, jamais affiché. CN=svc-nextxch,OU=Service,... Pas d'administrateur de domaine. La lecture suffit pour les photos et proxyAddresses. Vous pouvez en option restreindre "Log on to" aux contrôleurs de domaine.
LDAPS 636 / StartTLS 389 Connexion chiffrée aux contrôleurs de domaine. Plusieurs DC sont essayés dans l'ordre (basculement), délai d'attente configurable par DC. LDAPS, 10 s Faites approuver le certificat du DC (ou de l'AC interne) par le serveur nextxch. N'utilisez "Ne pas vérifier le certificat" que brièvement pendant la configuration.
Anmeldung (alle Protokolle) Webmail, administration, IMAP, SMTP, POP3, ActiveSync, EWS, MAPI et DAV vérifient le mot de passe AD par bind. Noms de connexion : adresse e-mail, userPrincipalName, sAMAccountName ou DOMAIN\user. Cache 15 min (Hash) Le court cache de connexion ne stocke qu'un HMAC, jamais le mot de passe, et maintient la connexion pendant une brève panne du contrôleur de domaine. 0 le désactive.
Abgleich: Benutzer, Gruppen, Kontakte mail et proxyAddresses (SMTP: = principale, smtp: = alias), displayName, givenName, sn, telephoneNumber, mobile, title, department, company, physicalDeliveryOfficeName, manager, thumbnailPhoto ; userAccountControl et accountExpires désactivent la boîte aux lettres. Les groupes à extension messagerie deviennent des listes de distribution (imbriquées via LDAP_MATCHING_RULE_IN_CHAIN), les contacts apparaissent dans le carnet d'adresses. Delta 15 min, voll 02:00 Utilisez "Aperçu" avant la première exécution : affiche les comptes qui seraient créés, repris ou désactivés, sans rien modifier. Filtrez sur un groupe "Utilisateurs de messagerie".
Gelöschte Objekte Lorsqu'un objet disparaît d'AD (ou qu'Entra envoie un SCIM DELETE), la boîte aux lettres est immédiatement désactivée. Après le délai de grâce, l'administrateur décide : supprimer, conserver comme boîte aux lettres partagée ou laisser désactivée. 30 Tage Un renommage n'est pas une suppression : l'ancienne adresse principale reste un alias.
Vorlagen Correspondance des attributs pour Microsoft AD, Samba AD, OpenLDAP, Univention Corporate Server et FreeIPA ; chaque champ peut être remplacé ou désactivé avec "-". Active Directory OpenLDAP nécessite l'overlay memberOf pour le filtre de groupe ; nextxch y résout lui-même les groupes imbriqués.
OIDC (Entra ID, Keycloak) Flux authorization code avec PKCE côté serveur, découverte et JWKS avec renouvellement automatique des clés, RS256/ES256, vérification de iss, aud, exp, nonce et du tid du locataire Entra. Les revendications de groupe ou de rôle d'application sont associées à User, TenantAdmin et ServerAdmin. Knopf auf der Anmeldeseite Keycloak : authority https://kc.example.com/realms/<realm>, client confidentiel avec standard flow, URI de redirection comme ci-dessus ; rôles via la revendication realm_access.roles.
Lokale Passwörter pro Domain Désactivable séparément pour le webmail/l'administration et pour les protocoles. Les mots de passe Entra n'atteignent jamais nextxch : les applications de messagerie (Outlook, iPhone, Thunderbird) utilisent des mots de passe d'application ; le webmail guide la configuration à l'aide d'un assistant. An Par protocole, vous pouvez en outre imposer "OAuth / Kerberos uniquement" (voir chapitres 16a et 16b). Les utilisateurs AD peuvent changer leur mot de passe dans le webmail si la source le permet.
Kennwort ändern (AD / LDAP) Avec "Les utilisateurs peuvent changer leur mot de passe", le webmail affiche un formulaire sous Paramètres > Sécurité (mot de passe actuel et nouveau mot de passe). AD : unicodePwd via LDAPS avec l'ancien mot de passe, de sorte que la complexité AD, l'historique des mots de passe et la durée minimale s'appliquent ; autres annuaires : RFC 3062. Les administrateurs réinitialisent les mots de passe dans la boîte de dialogue du compte (en option "changer à la prochaine ouverture de session"). Aus Pour la réinitialisation par l'administrateur, déléguez au compte de service uniquement "Réinitialiser le mot de passe" sur l'OU des utilisateurs. Les mots de passe ne sont jamais journalisés.