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
| Methode | Quand l'utiliser | Services |
|---|---|---|
| OIDC natif | Le service supporte OpenID Connect | Forgejo, Grafana, Nextcloud, Rocket.Chat |
| ForwardAuth | Le service n'a pas d'OIDC natif | Odoo, n8n, Cal.com, CryptPad, Listmonk, Moodle, pgAdmin |
Configuration OIDC
Pour les services avec support OIDC natif :
- Creer un client dans Keycloak (realm
chatbotaurus) - Configurer le redirect URI du service
- Recuperer le client ID et le secret
- Configurer le service avec ces credentials
Configuration ForwardAuth
Pour les services sans OIDC natif, Traefik intercepte les requetes et les redirige vers Keycloak :
- Configurer le middleware ForwardAuth dans Traefik
- Pointer vers l'endpoint d'authentification Keycloak
- 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
- Creer le client dans Keycloak
- Configurer les redirect URIs
- Activer le service dans la configuration du service cible
Service sans OIDC (ForwardAuth)
- Ajouter le middleware ForwardAuth dans la configuration Traefik dynamique
- Configurer les headers de transmission (X-Forwarded-User, etc.)
- Tester l'acces via le navigateur
Fichiers de reference
| Fichier | Contenu |
|---|---|
docs/SSO-KEYCLOAK-GUIDE.md | Guide complet avec commandes |
containers/traefik/vps1-staging-dynamic.yml | Config Traefik VPS1 |
containers/mgaas-gateway/vps2-dynamic.yml | Config Traefik VPS2 |