Aller au contenu principal

SSO Keycloak

Chatbotaurus utilise Keycloak comme fournisseur d'identite centralise avec 2FA TOTP obligatoire pour les roles admin et operator.

Architecture

Keycloak (VPS1)
auth.staging.chatbotaurus.eu
Realm: chatbotaurus
|
+----+----+
| |
VPS1 VPS2
Traefik Traefik
| |
ForwardAuth ForwardAuth

Deux methodes de protection

MethodeQuand l'utiliserServices
OIDC natifLe service supporte OpenID ConnectForgejo, Grafana, Nextcloud, Rocket.Chat
ForwardAuthLe service n'a pas d'OIDC natifOdoo, n8n, Cal.com, CryptPad, Listmonk, Moodle, pgAdmin

Configuration OIDC

Pour les services avec support OIDC natif :

  1. Creer un client dans Keycloak (realm chatbotaurus)
  2. Configurer le redirect URI du service
  3. Recuperer le client ID et le secret
  4. Configurer le service avec ces credentials

Configuration ForwardAuth

Pour les services sans OIDC natif, Traefik intercepte les requetes et les redirige vers Keycloak :

  1. Configurer le middleware ForwardAuth dans Traefik
  2. Pointer vers l'endpoint d'authentification Keycloak
  3. Le service recoit les headers d'authentification de Traefik

2FA TOTP

Le 2FA TOTP est obligatoire pour :

  • Tous les utilisateurs avec le role admin
  • Tous les utilisateurs avec le role operator

Configuration dans Keycloak :

  • Realm > Authentication > Required Actions > Configure OTP
  • Politique : algorithme SHA-1, 6 chiffres, periode 30s

Ajout d'un nouveau service

Service avec OIDC natif

  1. Creer le client dans Keycloak
  2. Configurer les redirect URIs
  3. Activer le service dans la configuration du service cible

Service sans OIDC (ForwardAuth)

  1. Ajouter le middleware ForwardAuth dans la configuration Traefik dynamique
  2. Configurer les headers de transmission (X-Forwarded-User, etc.)
  3. Tester l'acces via le navigateur

Fichiers de reference

FichierContenu
docs/SSO-KEYCLOAK-GUIDE.mdGuide complet avec commandes
containers/traefik/vps1-staging-dynamic.ymlConfig Traefik VPS1
containers/mgaas-gateway/vps2-dynamic.ymlConfig Traefik VPS2