
Ce guide vous apprend à administrer Keycloak via la console web. Après l’installation Docker (K1-01), vous allez créer un realm, gérer des utilisateurs dans des groupes, assigner des rôles et configurer un client. Ces compétences sont le socle de tous les guides suivants.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »À la fin de ce module, vous saurez :
- Naviguer efficacement dans l’admin console
- Créer et configurer des realms
- Gérer les utilisateurs et leurs credentials
- Organiser les utilisateurs en groupes hiérarchiques
- Créer et assigner des rôles (realm et client)
- Configurer un client basique
- Surveiller les sessions actives et les events
Accéder à la console d’administration
Section intitulée « Accéder à la console d’administration »Ouvrez http://localhost:8080 et cliquez sur Administration Console.
Connectez-vous avec les identifiants créés lors de l’installation :
- Username :
admin - Password : celui défini dans
KEYCLOAK_ADMIN_PASSWORD
Navigation dans la console
Section intitulée « Navigation dans la console »La console d’administration se divise en plusieurs zones :
| Zone | Description |
|---|---|
| Realm selector (en haut à gauche) | Bascule entre les realms disponibles |
| Menu latéral | Accès aux différentes sections (Clients, Users, Groups, etc.) |
| Zone principale | Formulaires de configuration et listes |
| Breadcrumb | Navigation hiérarchique dans la configuration |
Comprendre les Realms
Section intitulée « Comprendre les Realms »Un realm est un espace isolé de gestion des identités. Chaque realm possède ses propres :
- Utilisateurs et groupes
- Rôles et permissions
- Clients (applications)
- Configurations de login
- Tokens et sessions
Realm master vs realms applicatifs
Section intitulée « Realm master vs realms applicatifs »| Realm | Usage | Utilisateurs |
|---|---|---|
master | Administration de Keycloak lui-même | Super-admins uniquement |
| Realms applicatifs | Applications et utilisateurs finaux | Utilisateurs de vos apps |
Créer un realm applicatif
Section intitulée « Créer un realm applicatif »- Connectez-vous à la console admin
- Cliquez sur le realm selector (en haut à gauche, affiche “master”)
- Cliquez sur Create realm
- Renseignez les informations :
- Realm name :
lab(en minuscules, sans espaces) - Enabled : On
- Realm name :
- Cliquez sur Create
Vous êtes automatiquement basculé sur le nouveau realm.
Configurer un realm
Section intitulée « Configurer un realm »Après création, configurez les paramètres essentiels dans Realm settings :
| Paramètre | Valeur recommandée | Description |
|---|---|---|
| Display name | Lab Formation | Nom affiché aux utilisateurs |
| HTML Display name | <b>Lab</b> Formation | Avec HTML pour le branding |
| Frontend URL | (vide en dev) | URL publique en production |
| Paramètre | Valeur Lab | Description |
|---|---|---|
| User registration | Off | Les admins créent les comptes |
| Forgot password | On | Permet la récupération de mot de passe |
| Remember me | On | Case “Se souvenir de moi” |
| Login with email | On | Email comme identifiant |
| Verify email | Off | Pas de vérification en dev |
| Paramètre | Valeur | Description |
|---|---|---|
| SSO Session Idle | 30 minutes | Timeout d’inactivité SSO |
| SSO Session Max | 10 hours | Durée max d’une session SSO |
| Access Token Lifespan | 5 minutes | Validité du token d’accès |
| Refresh Token Lifespan | 30 minutes | Validité du refresh token |
| Paramètre | Valeur | Description |
|---|---|---|
| Default Signature Algorithm | RS256 | Algo de signature des tokens |
| Access Token Lifespan | 5 minutes | Durée de vie des access tokens |
| Client login timeout | 5 minutes | Timeout pendant le flow login |
Gérer les utilisateurs
Section intitulée « Gérer les utilisateurs »Les utilisateurs sont des identités qui peuvent se connecter à vos applications.
Créer un utilisateur
Section intitulée « Créer un utilisateur »- Dans le menu, cliquez sur Users
- Cliquez sur Add user
- Renseignez les informations :
- Username :
alice(obligatoire, unique dans le realm) - Email :
alice@example.com - First name :
Alice - Last name :
Martin - Enabled : On
- Username :
- Cliquez sur Create
Configurer les credentials
Section intitulée « Configurer les credentials »Un utilisateur créé n’a pas encore de mot de passe.
- Après création, allez dans l’onglet Credentials
- Cliquez sur Set password
- Renseignez le mot de passe deux fois
- Temporary :
- On = l’utilisateur devra le changer à la première connexion
- Off = mot de passe permanent
- Cliquez sur Save
Attributs utilisateur
Section intitulée « Attributs utilisateur »Les attributs permettent de stocker des métadonnées sur l’utilisateur.
Dans l’onglet Attributes, ajoutez des paires clé/valeur :
| Attribut | Exemple | Usage |
|---|---|---|
department | Engineering | Département de l’entreprise |
employee_id | EMP-001 | Identifiant RH |
phone | +33612345678 | Numéro de téléphone |
Ces attributs peuvent être inclus dans les tokens via les mappers (voir K2-01).
Required Actions
Section intitulée « Required Actions »Les required actions forcent l’utilisateur à effectuer une action à la prochaine connexion.
Dans l’onglet Details, section Required User Actions, vous pouvez ajouter :
| Action | Description |
|---|---|
| UPDATE_PASSWORD | Changer le mot de passe |
| VERIFY_EMAIL | Vérifier l’adresse email |
| UPDATE_PROFILE | Compléter le profil |
| CONFIGURE_TOTP | Configurer le MFA (TOTP) |
Organiser avec les groupes
Section intitulée « Organiser avec les groupes »Les groupes permettent d’organiser les utilisateurs et de leur assigner des attributs et rôles de manière groupée.
Hiérarchie des groupes
Section intitulée « Hiérarchie des groupes »Les groupes peuvent être imbriqués. Un utilisateur dans un sous-groupe hérite des attributs et rôles du groupe parent.
Employees/├── Engineering/│ ├── Backend/│ └── Frontend/├── Marketing/└── Sales/Créer une hiérarchie de groupes
Section intitulée « Créer une hiérarchie de groupes »- Dans le menu, cliquez sur Groups
- Cliquez sur Create group
- Name :
Employees, puis Create - Cliquez sur le groupe
Employees - Cliquez sur Create group (crée un sous-groupe)
- Name :
Engineering, puis Create - Répétez pour
MarketingetSales
Assigner un utilisateur à un groupe
Section intitulée « Assigner un utilisateur à un groupe »- Allez dans Users et sélectionnez un utilisateur
- Cliquez sur l’onglet Groups
- Cliquez sur Join group
- Sélectionnez le groupe (ex:
Employees/Engineering) - Cliquez sur Join
Attributs de groupe
Section intitulée « Attributs de groupe »Les attributs de groupe sont hérités par tous les membres.
- Allez dans Groups et sélectionnez un groupe
- Cliquez sur l’onglet Attributes
- Ajoutez un attribut :
department=Engineering - Cliquez sur Save
Tous les membres du groupe auront cet attribut disponible dans leurs tokens (si un mapper est configuré).
Créer et assigner des rôles
Section intitulée « Créer et assigner des rôles »Les rôles définissent les permissions des utilisateurs dans les applications.
Types de rôles
Section intitulée « Types de rôles »| Type | Scope | Exemple | Usage |
|---|---|---|---|
| Realm roles | Global au realm | admin, user | Permissions transverses |
| Client roles | Spécifique à un client | app:read, app:write | Permissions applicatives |
| Composite roles | Combine d’autres rôles | manager = user + app:read | Bundles de permissions |
Créer un realm role
Section intitulée « Créer un realm role »- Dans le menu, cliquez sur Realm roles
- Cliquez sur Create role
- Role name :
staff(minuscules, sans espaces) - Description :
Employé de l'entreprise - Cliquez sur Save
Créez également les rôles manager et admin.
Créer un composite role
Section intitulée « Créer un composite role »Un composite role regroupe plusieurs rôles. Utile pour simplifier l’administration.
- Créez ou éditez un rôle (ex:
manager) - Activez Composite : On
- Dans Associated roles, cliquez sur Add roles
- Sélectionnez les rôles à inclure (ex:
staff) - Cliquez sur Add
Un utilisateur avec le rôle manager aura automatiquement le rôle staff.
Assigner un rôle à un utilisateur
Section intitulée « Assigner un rôle à un utilisateur »- Allez dans Users et sélectionnez un utilisateur
- Cliquez sur l’onglet Role mapping
- Cliquez sur Assign role
- Sélectionnez le rôle (ex:
staff) - Cliquez sur Assign
Assigner un rôle à un groupe
Section intitulée « Assigner un rôle à un groupe »- Allez dans Groups et sélectionnez un groupe
- Cliquez sur l’onglet Role mapping
- Cliquez sur Assign role
- Sélectionnez le rôle (ex:
staff) - Cliquez sur Assign
Tous les membres du groupe héritent automatiquement du rôle.
Default roles
Section intitulée « Default roles »Les default roles sont automatiquement assignés à tout nouvel utilisateur.
- Allez dans Realm settings > User registration
- Dans Default roles, cliquez sur Assign role
- Sélectionnez les rôles par défaut (ex:
default-roles-lab)
Configurer les clients
Section intitulée « Configurer les clients »Un client représente une application qui s’authentifie auprès de Keycloak.
Types de clients
Section intitulée « Types de clients »| Type | Paramètre Client authentication | Usage |
|---|---|---|
| Public | Off | SPA, applications mobiles (pas de secret) |
| Confidential | On | Backend, API (avec secret client) |
Créer un client basique
Section intitulée « Créer un client basique »- Dans le menu, cliquez sur Clients
- Cliquez sur Create client
- General settings :
- Client type : OpenID Connect
- Client ID :
my-app
- Cliquez sur Next
- Capability config :
- Client authentication : Off (public client)
- Authorization : Off
- Standard flow : On
- Direct access grants : Off (recommandé)
- Cliquez sur Next
- Login settings :
- Root URL :
http://localhost:3000 - Valid redirect URIs :
http://localhost:3000/* - Web origins :
http://localhost:3000
- Root URL :
- Cliquez sur Save
Client roles
Section intitulée « Client roles »Créez des rôles spécifiques à votre application :
- Sélectionnez votre client dans Clients
- Allez dans l’onglet Roles
- Cliquez sur Create role
- Role name :
app:admin - Cliquez sur Save
Ces rôles apparaissent dans les tokens si l’utilisateur les possède.
Surveiller les sessions
Section intitulée « Surveiller les sessions »La section Sessions permet de voir qui est connecté et d’invalider les sessions.
Voir les sessions actives
Section intitulée « Voir les sessions actives »- Dans le menu, cliquez sur Sessions
- Vous voyez la liste des sessions actives avec :
- Utilisateur
- IP
- Début de session
- Dernière activité
Invalider une session
Section intitulée « Invalider une session »Pour déconnecter un utilisateur :
- Dans Sessions, trouvez la session
- Cliquez sur l’icône poubelle
- Confirmez la déconnexion
Invalider toutes les sessions d’un utilisateur
Section intitulée « Invalider toutes les sessions d’un utilisateur »- Allez dans Users et sélectionnez l’utilisateur
- Cliquez sur l’onglet Sessions
- Cliquez sur Sign out ou Sign out all sessions
Configurer les Events
Section intitulée « Configurer les Events »Les events permettent d’auditer les actions dans Keycloak.
Types d’events
Section intitulée « Types d’events »| Type | Exemples | Usage |
|---|---|---|
| Login events | LOGIN, LOGIN_ERROR, LOGOUT | Audit des authentifications |
| Admin events | CREATE_USER, UPDATE_ROLE | Audit des actions admin |
Activer les events
Section intitulée « Activer les events »- Allez dans Realm settings > Events
- Onglet User events settings :
- Save user events : On
- Expiration : 30 jours
- Event types : cochez les events à capturer
- Onglet Admin events settings :
- Save admin events : On
- Include representation : On (stocke le payload)
- Cliquez sur Save
Consulter les events
Section intitulée « Consulter les events »- Dans le menu, cliquez sur Events
- Utilisez les filtres :
- User events : par type, utilisateur, date
- Admin events : par opération, ressource
- Cliquez sur un event pour voir les détails
Account Console
Section intitulée « Account Console »L’Account Console est l’interface utilisateur final pour gérer son propre compte.
Accédez-y via : http://localhost:8080/realms/lab/account/
Les utilisateurs peuvent :
- Voir et modifier leur profil
- Changer leur mot de passe
- Gérer leurs sessions actives
- Configurer le MFA
- Voir les applications autorisées
Lab A2 — Administration pratique
Section intitulée « Lab A2 — Administration pratique »Mettez en pratique les concepts avec cet exercice guidé.
Objectif
Section intitulée « Objectif »Créer un realm complet avec des utilisateurs organisés en groupes et des rôles.
Étapes du lab
Section intitulée « Étapes du lab »-
Créer le realm :
- Nom :
lab - Configure les sessions : SSO Idle = 30 min, Access Token = 5 min
- Nom :
-
Créer la hiérarchie de groupes :
Employees/├── Engineering/└── Marketing/ -
Créer les rôles :
- Realm roles :
staff,manager,admin managerest composite et inclutstaffadminest composite et inclutmanager
- Realm roles :
-
Assigner les rôles aux groupes :
Employees→ rôlestaffEmployees/Engineering→ aucun rôle supplémentaire (hérite destaff)
-
Créer les utilisateurs :
User Email Groupe Rôle direct alice alice@example.com Engineering (hérite staff) bob bob@example.com Engineering manager charlie charlie@example.com Marketing (hérite staff) -
Créer un client de test :
- Client ID :
test-app - Type : Public (OIDC)
- Redirect URIs :
http://localhost:3000/*
- Client ID :
-
Activer les events :
- Login events : On
- Admin events : On
-
Valider :
- Connectez-vous à l’Account Console avec
alice - Vérifiez les events de login dans l’admin
- Connectez-vous à l’Account Console avec
Critères de réussite
Section intitulée « Critères de réussite »- Realm
labcréé avec sessions configurées - Groupes hiérarchiques créés (
Employees/Engineering,Employees/Marketing) - Rôles
staff,manager(composite),admin(composite) créés - Rôle
staffassigné au groupeEmployees - Utilisateurs créés dans les bons groupes
- Client
test-appconfiguré - Events de login visibles après connexion utilisateur
À retenir
Section intitulée « À retenir »| Concept | Point clé |
|---|---|
| Realm | Espace isolé d’identités — un par environnement/application |
| Master | Réservé aux super-admins, jamais pour les applications |
| Groupes | Organisent les utilisateurs avec héritage d’attributs et rôles |
| Realm roles | Permissions globales au realm |
| Client roles | Permissions spécifiques à une application |
| Composite roles | Regroupent plusieurs rôles pour simplifier l’admin |
| Sessions | Surveillez et invalidez les connexions actives |
| Events | Auditez toutes les actions pour la compliance |
Dépannage
Section intitulée « Dépannage »L’utilisateur ne peut pas se connecter
Section intitulée « L’utilisateur ne peut pas se connecter »- Vérifiez que le compte est Enabled dans l’admin
- Vérifiez que les credentials sont configurés (onglet Credentials)
- Vérifiez les events de type
LOGIN_ERRORpour le message d’erreur
Les rôles n’apparaissent pas dans le token
Section intitulée « Les rôles n’apparaissent pas dans le token »- Vérifiez que le rôle est bien assigné (direct ou via groupe)
- Vérifiez les mappers du client (voir K2-01 pour les détails)
- Pour les client roles, vérifiez que le scope est inclus
L’Account Console affiche “Page not found”
Section intitulée « L’Account Console affiche “Page not found” »Vérifiez l’URL : http://localhost:8080/realms/{realm-name}/account/
Remplacez {realm-name} par le nom exact de votre realm (ex: lab).