Set-OPS-Public/docs/identite-sso.md
Daniel Allaire f3e78c55e1 docs: architecture d'identité/SSO (OpenLDAP source, Keycloak fédéré)
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>
2026-07-02 13:27:04 -04:00

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'annuairesource 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).