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 centralise 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
Ressources complémentaires
- Consultez l'installation de Keycloak
- Sécurisez vos API avec mTLS
Déploiement rapide avec Docker Compose
-
Créez
docker-compose.yml:services: keycloak: image: quay.io/keycloak/keycloak:25.0.0 environment: KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: admin command: start-dev ports: - '8080:8080' -
Lancez Keycloak :
docker compose up -d -
Accédez à l'interface :
http://<HOST>:8080
Configuration d'un realm et client
- Connectez-vous en admin
- Créez un Realm (ex :
myrealm) - Dans Clients, ajoutez un client public
- Client ID :
myapp - Redirection URI :
https://myapp.example.com/*
- Client ID :
- 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 couvre OAuth2, OIDC et SAML derrière une seule interface d'administration. De quoi monter un SSO centralisé pour vos applications sans recoder l'authentification à chaque service.


