Aller au contenu

Keycloak

Un seul Keycloak (26.x) sert toute la plateforme, avec une seule URL de connexion (auth.<domaine>, en local http://localhost:47030) et le thème de connexion Remizo.

  • Tous les utilisateurs des enseignes.
  • Organizations activées : une organisation par workspace, alias = slug. Un utilisateur peut appartenir à plusieurs organisations ; à la connexion, il choisit son organisation si nécessaire.
  • Client public remizo-studio (Authorization Code + PKCE).
  • Mappers : claim organization dans le jeton d’accès, audience remizo-hub.
  • Protection contre la force brute, SSL exigé pour les connexions externes, envoi des e-mails (en local vers Mailpit).
  • SSO d’entreprise par organisation : fournisseurs d’identité Entra ID, Google, OIDC ou SAML, alias <slug>-<fournisseur>, rattachés aux domaines e-mail de l’organisation.
  • L’équipe éditeur, MFA obligatoire (OTP).
  • Rôles de realm : platform_admin (tout), platform_operator (infrastructure, sauvegardes, tâches), platform_support (lecture et actions clients).
  • Client public remizo-console (PKCE).

Le client confidentiel remizo-hub (même identifiant dans les deux realms) permet au hub de créer les utilisateurs, envoyer les invitations, gérer les organisations et les fournisseurs d’identité. Son secret est stocké dans OpenBao (mo/hub/keycloak).

Les realms sont importés au démarrage depuis keycloak/realms/*.json ; le thème remizo (connexion et e-mails, clair et sombre, mobile, français et anglais) est dans keycloak/themes/remizo. Les comptes de démonstration et leurs mots de passe de développement sont documentés dans deploy/local/.env.example.

La tâche backups.keycloak exporte les deux realms vers le Silo de sauvegardes.