Guide de déploiement

Déployer Keycloak pour le SSO sur votre VPS

Déployer sur un VPS Cloud →

Sécurité & Monitoring8 min de lecture

Déployer Keycloak pour le SSO sur votre VPS

Keycloak est la référence open source du SSO d'entreprise, soutenue par Red Hat et utilisée jusque dans des contextes hautement réglementés. Avec ses realms, sa fédération LDAP et son support complet d'OIDC et SAML, il couvre des besoins que peu d'IdP atteignent. Auto-hébergé sur VPS, il vous donne ce niveau d'industrialisation sans licence ni dépendance cloud.

Pourquoi déployer Keycloak sur votre VPS

Là où certains IdP visent la simplicité, Keycloak vise l'exhaustivité : isolation multi-tenant via les realms, fédération d'annuaires LDAP/Active Directory, brokering vers des fournisseurs externes (Google, GitHub, un autre OIDC), théming complet des pages de login et fine-grained authorization. Pour une agence qui gère plusieurs clients ou un SI avec des exigences de conformité, ce niveau de contrôle est décisif. Le self-hébergement sur VPS vous évite les coûts par utilisateur des offres IdP managées et garde l'intégralité de la base d'identités sous votre juridiction, un point critique pour des données sensibles que vous ne souhaitez pas confier à un tiers.

Les atouts d'un Keycloak auto-hébergé

  • Réalms multiples pour isoler totalement plusieurs clients ou environnements sur une même instance.
  • Support natif et complet d'OpenID Connect, OAuth2 et SAML 2.0.
  • Fédération LDAP / Active Directory pour réutiliser un annuaire existant sans migration.
  • Identity brokering : connexion via Google, GitHub ou tout IdP externe en quelques clics.
  • Pages de login entièrement personnalisables (thèmes, langues, branding par realm).
  • Politiques d'authentification fines : MFA conditionnel, durée de session, contraintes par rôle.

Prérequis pour ce déploiement

Keycloak tourne sur la JVM (Quarkus depuis la v17+) et reste plus gourmand qu'un IdP léger. Prévoyez un VPS avec 2 vCPU et 4 Go de RAM au minimum, idéalement 6 Go si vous attendez de la charge ou plusieurs realms actifs. Une base PostgreSQL externe est fortement recommandée en production (n'utilisez jamais la base H2 embarquée au-delà des tests). Docker et Docker Compose, un domaine dédié (sso.mondomaine.ma) et un reverse proxy gérant le SSL complètent les prérequis, car Keycloak attend d'être informé qu'il est servi derrière un proxy HTTPS.

Déployer Keycloak avec PostgreSQL

01

Définir Keycloak et PostgreSQL dans Compose

Dans votre docker-compose.yml, déclarez le service postgres (image postgres:16) et le service keycloak (image quay.io/keycloak/keycloak). Reliez Keycloak à la base via KC_DB=postgres, KC_DB_URL, KC_DB_USERNAME et KC_DB_PASSWORD.

02

Configurer le mode production et le proxy

Lancez avec la commande start (et non start-dev). Renseignez KC_HOSTNAME=sso.mondomaine.ma et KC_PROXY_HEADERS=xforwarded pour que Keycloak génère des URL correctes derrière le reverse proxy. Définissez l'admin initial via KC_BOOTSTRAP_ADMIN_USERNAME / KC_BOOTSTRAP_ADMIN_PASSWORD.

03

Démarrer et terminer le build

Exécutez docker compose up -d. Au premier démarrage, Keycloak réalise un build Quarkus optimisé puis migre le schéma PostgreSQL. Suivez docker compose logs -f keycloak jusqu'au message indiquant que le serveur écoute.

04

Mettre en place le reverse proxy SSL

Routez sso.mondomaine.ma vers le port 8080 du conteneur Keycloak via Caddy, Traefik ou Nginx, avec un certificat Let's Encrypt. Veillez à transmettre les en-têtes X-Forwarded-* faute de quoi les redirections de login casseront.

05

Créer un realm et un client

Connectez-vous à la console d'admin, créez un realm dédié (jamais le realm master pour vos apps), puis un client OIDC. Réglez le Valid redirect URIs de votre application et récupérez le Client ID et le secret dans l'onglet Credentials.

06

Brancher une application et tester le flow

Configurez votre app avec l'URL de découverte https://sso.mondomaine.ma/realms/mon-realm/.well-known/openid-configuration. Créez un utilisateur de test dans le realm, lancez un login et vérifiez l'émission du token dans les Sessions de la console.

Keycloak ou Authentik : que choisir ?

CritèreKeycloakAuthentik
Cas d'usage cibleSSO d'entreprise, multi-tenant, conformitéSelf-hosting, homelab, agences
ProtocolesOIDC, OAuth2, SAML, LDAPOIDC, OAuth2, SAML, LDAP, forward auth
Forward auth (proxy)Non natif (via extensions)Natif et central à l'outil
Empreinte ressourcesÉlevée (JVM, 4 Go+ RAM)Modérée (2-4 Go RAM)
Multi-realm / tenantsExcellent (realms isolés)Tenants supportés, moins poussés
Personnalisation des flowsThèmes et SPI JavaFlows visuels par étapes
Courbe d'apprentissageRaide, très completPlus accessible
Fédération d'annuairesMature (LDAP/AD)Bonne (LDAP)

En production, ne servez jamais Keycloak avec la base H2 embarquée et n'exposez pas le realm master au public : créez un realm dédié par application ou par client, et réservez master à l'administration. Pour durcir l'instance, désactivez l'enregistrement libre, activez le brute force detection dans Realm Settings > Security Defenses, et provisionnez tout via des fichiers d'import realm (--import-realm) afin de versionner votre configuration plutôt que de cliquer dans l'UI.

Hébergez un SSO de niveau entreprise

Le VPS Cloud ServOrbit avec template Docker préconfiguré fournit la RAM et le PostgreSQL nécessaires pour faire tourner Keycloak en production, realms et fédération inclus.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou écrivez à notre équipe — support en anglais, français et arabe.