Modèle A arrêté : OpenLDAP = source de vérité des identités ; Keycloak = SSO web OIDC fédéré à LDAP (MFA, self-service) ; mail (Dovecot/Postfix) = bind LDAP direct. Une identité, un mot de passe, deux chemins d'auth, même OpenLDAP. Sert la portabilité multi-tenant. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.9 KiB
2.9 KiB
Architecture d'identité et SSO
Décision arrêtée (2026-07-02). Modèle A : OpenLDAP source de vérité, Keycloak fédéré pour le SSO web, mail en bind LDAP direct.
Principe : deux couches, pas deux choix
- OpenLDAP = l'annuaire — source de vérité des identités (users, groups,
mail, mot de passe). Standard, portable, compris par tout (mail, système, apps). On crée et gère les identités ici. - Keycloak = le cerveau SSO — OIDC/OAuth2/SAML : authentification unique des apps web, jetons, MFA, self-service, politiques. Fédéré à OpenLDAP (il lit l'annuaire, il ne le remplace pas).
OpenLDAP (source de vérité)
▲ ▲
(fédération)│ │ (bind direct)
Keycloak Dovecot / Postfix
(SSO · OIDC · MFA) (IMAP/SMTP auth)
▲
(redirection OIDC)
┌───────────┼────────────┐
Forgejo Grafana Nextcloud … ← apps web = SSO
Chemin d'auth par type de service
| Type de service | Auth | Pourquoi |
|---|---|---|
| Apps web (Forgejo, Grafana, Nextcloud…) | Keycloak OIDC (SSO) | un seul login, MFA, jetons |
| Mail (Dovecot, Postfix) | LDAP direct (bind) | IMAP/SMTP ne parlent pas OIDC ; username + mot de passe |
| Système / services (SSSD, etc.) | LDAP direct | annuaire standard |
| Tout | → même OpenLDAP | identité unifiée, aucun compte en double |
Sens de provisionnement
Les identités se créent et se gèrent dans OpenLDAP. Keycloak fédère (lit LDAP en lecture ; écriture optionnelle pour le self-service). Aucune identité n'est « maître » dans Keycloak : c'est LDAP la référence. Le mail bind directement sur LDAP.
Pourquoi ce modèle (et pas Keycloak-source)
- Mail-compatible : Dovecot/Postfix s'authentifient nativement contre LDAP ; contre Keycloak seul, c'est un casse-tête (OAuth2/XOAUTH2 pas universel côté clients).
- Portable / souverain : l'annuaire reste un standard LDAP — chaque écosystème (tenant) a son OpenLDAP + son Keycloak fédéré, réplicable à l'identique. Sert directement la preuve de portabilité multi-tenant.
- Séparation des responsabilités : LDAP = qui existe ; Keycloak = comment on se connecte au web. Chacun fait ce qu'il fait de mieux.
Conséquences pour Set-OPS
serveur_openldap(déployé) = le pilier annuaire, source de vérité.serveur_keycloak= pilier SSO, à fédérer sur OpenLDAP (User Federation → LDAP).serveur_dovecot/serveur_postfix= auth LDAP direct (cohérent avec ce modèle).- Les apps web déclarées dans le plan → clients OIDC de Keycloak.
Évolution possible (plus tard) : XOAUTH2 pour le mail via Keycloak, si les clients suivent. Ça n'est pas requis et ne change pas la source de vérité (LDAP).