Mettre en place un SSO OAuth2 avec Keycloak

Publié le 24 juillet 2025

Sécurité
SSO

Keycloak est une solution open-source de gestion d’identités et d’accès (IAM) qui prend en charge OAuth2, OpenID Connect et SAML. Il permet de centraliser l’authentification, le Single Sign-On (SSO) et la gestion des utilisateurs pour vos applications.

Prérequis

  • Docker et Docker Compose ou Kubernetes
  • Java 11+ (si déploiement natif)
  • Nom de domaine pointant vers le serveur Keycloak
  • Ports 8080/8443 disponibles

Déploiement rapide avec Docker Compose

  1. Créez docker-compose.yml :

    version: '3.8'
    services:
      keycloak:
        image: quay.io/keycloak/keycloak:21.0.3
        environment:
          KEYCLOAK_ADMIN: admin
          KEYCLOAK_ADMIN_PASSWORD: admin
        command: start-dev
        ports:
          - '8080:8080'
    
  2. Lancez Keycloak :

    docker-compose up -d
    
  3. Accédez à l’interface :

    http://<HOST>:8080
    

Configuration d’un realm et client

  1. Connectez-vous en admin
  2. Créez un Realm (ex : myrealm)
  3. Dans Clients, ajoutez un client public
    • Client ID : myapp
    • Redirection URI : https://myapp.example.com/*
  4. Configurez les mappers pour inclure les rôles et attributs utilisateur

Intégration OAuth2 dans votre application

Exemple Node.js avec openid-client

const { Issuer } = require('openid-client');

(async () => {
  const keycloak = await Issuer.discover('http://<HOST>:8080/realms/myrealm');
  const client = new keycloak.Client({
    client_id: 'myapp',
    redirect_uris: ['https://myapp.example.com/callback'],
    response_types: ['code'],
  });
  // Routes Express pour redirection et callback...
})();

Bonnes pratiques

  • TLS obligatoire en production
  • Sécuriser l’accès à l’admin console (IP whitelist, reverse proxy)
  • Centraliser les logs (ELK, Loki)
  • Backup de la base Keycloak (PostgreSQL, MySQL…)
  • Monitoring (Prometheus exporter disponible)

Conclusion

Keycloak simplifie la mise en place d’un SSO sécurisé et centralisé pour vos applications, en offrant un support complet OAuth2, OIDC et SAML, ainsi qu’une interface d’administration riche.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets.

Contactez-nous

Articles similaires qui pourraient vous intéresser