Files
2026-06-09 18:40:21 +02:00

103 lines
4.1 KiB
Markdown

---
title: Keycloak
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, authentication, sso, oidc, saml, idm]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Authentication, https://github.com/keycloak/keycloak]
---
# 🔐 Keycloak
> Solution d'Identity and Access Management (IdM/SSO) de référence, open source et soutenue par Red Hat.
## 📋 Informations Générales
| Attribut | Valeur |
|----------|--------|
| **Nom** | Keycloak |
| **Slug** | app-keycloak |
| **Description** | IdM/SSO supportant OIDC, SAML 2.0, OAuth 2.0 et LDAP |
| **Site officiel** | https://www.keycloak.org |
| **Repository** | https://github.com/keycloak/keycloak |
| **Stars** | 34 773 ⭐ |
| **Licence** | Apache 2.0 |
| **Langage principal** | Java |
| **Catégorie** | Authentication |
| **Tags** | [catalogue, authentication, sso, oidc, saml, idm] |
## 📝 Description
Keycloak est la solution d'Identity Management (IdM) open source la plus mature du marché, développée à l'origine par JBoss et désormais maintenue par Red Hat. Elle permet de centraliser l'authentification (SSO) et la gestion des identités pour des dizaines d'applications, qu'elles soient en self-hosted ou en SaaS.
Le projet supporte nativement les protocoles standards **OIDC**, **SAML 2.0**, **OAuth 2.0** et offre une fédération d'identités (LDAP/Active Directory, Kerberos, providers sociaux). Keycloak fournit également un **User Federation**, la **social login** (Google, GitHub, Facebook...), la gestion fine des **rôles** et **groupes**, le **MFA** (TOTP, WebAuthn), ainsi qu'une **Admin Console** complète.
C'est l'outil de choix pour les entreprises et les homelabs exigeants ayant besoin d'un IdM complet, à la place d'Auth0, Okta ou Azure AD. La courbe d'apprentissage est plus raide que des solutions comme Authelia ou authentik, mais les capacités sont incomparables.
## 🚀 Installation
### Via Docker (recommandé)
```yaml
# docker-compose.yml
services:
keycloak:
image: quay.io/keycloak/keycloak:25.0
command: start
environment:
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: changeme
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://postgres:5432/keycloak
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: keycloak
ports:
- "8080:8080"
postgres:
image: postgres:16
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: keycloak
volumes:
- keycloak-db:/var/lib/postgresql/data
volumes:
keycloak-db:
```
### Installation manuelle
Télécharger l'archive depuis le site officiel, exécuter `bin/kc.sh start-dev` pour le dev ou `bin/kc.sh start --hostname=auth.example.com` en production. Prévoir Java 17+ et une base PostgreSQL/MySQL/MariaDB/Oracle.
## ⚙️ Configuration
- **Realm** : isolation logique (un par environnement/client)
- **Clients** : enregistrement des apps consommatrices (OIDC/SAML)
- **Identity Providers** : LDAP/AD, Google, GitHub, etc.
- **MFA** : TOTP, WebAuthn, Recovery codes
- **User Federation** : synchro avec annuaire existant
- **Theme** : personnalisation CSS/HTML
## 🔗 Alternatives
- **authentik** — IdM moderne avec UI soignée, plus simple à prendre en main
- **Authelia** — reverse proxy SSO, plus léger mais moins complet
- **Zitadel** — IdM cloud-native, comparable, orienté multi-tenant
## 🔒 Sécurité
- Activer le **MFA** par défaut sur les comptes sensibles
- Mettre Keycloak derrière **HTTPS** (Let's Encrypt)
- Désactiver le compte `admin` initial, créer des comptes dédiés
- Activer les **brute force detection** et **event logging**
- Mettre à jour régulièrement (CVEs fréquentes)
## 📚 Ressources
- Site officiel : https://www.keycloak.org
- Repository GitHub : https://github.com/keycloak/keycloak
- Documentation : https://www.keycloak.org/documentation
## 🔗 Pages Liées
- [[cat-authentication]] (n'existe pas encore, OK)
- [[app-authentik]] — Alternative moderne plus simple
- [[app-authelia]] — Reverse proxy SSO léger
- [[app-zitadel]] — IdM cloud-native
- [[app-traefik]]
- [[recettes-docker-compose]]
- [[securisation-home-lab]]