• Contenu
  • Bas de page
blog-ouidou_logoblog-ouidou_logoblog-ouidou_logoblog-ouidou_logo
  • Actualités Ouidou
  • Articles Techniques
  • Livres blancs
  • Interviews Clients
  • Interviews collaborateurs
Découvrir Ouidou
✕
No results See all results
Le Diamond Agile : Une approche évolutive pour une agilité maximale

Le Diamond Agile : Une approche évolutive pour une agilité maximale

6 août 2025
Formations Atlassian certifiées Qualiopi avec Ouidou

Formations Atlassian certifiées Qualiopi avec Ouidou

18 septembre 2025
Ressources > Keycloak : Installation & configuration

Keycloak : Installation & configuration

Écrit par Etienne R.

Dans ce tutoriel de découverte, nous allons voir comment installer et configurer Keycloak afin de mettre en place un SSO (Single Sign-On) basique avec OpenID Connect.

Keycloak, c’est quoi ?

Keycloak est une plateforme open-source de gestion des identités et des accès (IAM pour Identity Management Access) développée par la société RedHat. Elle fournit des fonctionnalités clés telles que l’authentification unifiée (SS0), la gestion des rôles (par groupe ou utilisateur) et les normes de sécurité (OpenID Connect, OAuth 2.0 et SAML).

En résumé, on a un realm (“royaume” en français) qui contient une liste d’utilisateurs. Chaque utilisateur peut appartenir à aucun ou un ou plusieurs groupes. Chaque groupe contient une liste de rôles. Dans ce realm, on a une liste d’intentity provider c’est à dire OpenID Connect et/ou SAML et/ou un provider externe tel que Microsoft, Google, Github, Gitlab, Facebook, etc… et/ou un annuaire tel que Kerberos ou LDAP.

Remarque : pour des raisons de sécurité, chaque realm est isolé dans la BDD de Keycloak.

OpenID Connect

OIDC est un protocole d’identification qui vérifie l’identification d’une personne via HTTPS. Il est basé sur OAuth2.0.

Concrètement, l’utilisateur demande une authentification au serveur. Si l’utilisateur a bien saisi ses identifiants, le serveur lui retourne un token d’accès appelé “access_token” et redirige l’utilisateur vers une url spécifique. Ce token est sous la forme d’un JWT (Jeton Web Token) qui comporte des informations propres à l’utilisateur. En plus de ce token, il peut retourner un “refresh_token” (token de rafraichissement) afin d’éviter à l’utilisateur de se reconnecter après la fin de vie du JWT.

Remarque : le serveur d’authentification ne retournera jamais le mot de passe de l’utilisateur.

Dockeriser Keycloak

Keycloak met à disposition une image Docker. Il a aussi besoin d’une base de données Postgres, ce qui donne le “docker-compose.yml” ci-dessous.

services: postgres: image: postgres:17.0 volumes: - postgres_data:/var/lib/postgresql/data environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} restart: always networks: - keycloak_network keycloak: image: quay.io/keycloak/keycloak:26.1 command: start environment: KC_HOSTNAME_STRICT_BACKCHANNEL: false KC_HTTP_ENABLED: true KC_HOSTNAME_STRICT_HTTPS: false KC_HEALTH_ENABLED: true KC_KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN} KC_KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD} KC_DB: postgres KC_DB_URL: jdbc:postgresql://postgres/${POSTGRES_DB} KC_DB_USERNAME: ${POSTGRES_USER} KC_DB_PASSWORD: ${POSTGRES_PASSWORD} ports: - 8080:8080 restart: always depends_on: - postgres networks: - keycloak_network volumes: postgres_data: driver: local networks: keycloak_network: driver: bridge

Comme vous pouvez le constater, ce fichier contient des valeurs de variables d’environnement. Pour les interpréter, créez un fichier nommé ”.env” pour renseigner les 5 variables avec les valeurs de votre choix.

POSTGRES_DB=keycloak POSTGRES_USER=keycloak POSTGRES_PASSWORD=keycloak KEYCLOAK_ADMIN=keycloak KEYCLOAK_ADMIN_PASSWORD=keycloak

Lancez le build avec la commande docker compose up -d. Puis rendez-vous sur l’URL par défaut http://localhost:8080.

Page de connexion de l'administration Keycloak

Renseignez les champs avec les valeurs de KEYCLOAK_ADMIN et KEYCLOAK_ADMIN_PASSWORD pour vous connecter.

Configurer Keycloak

Création d’un nouveau royaume

Par défaut, il existe un seul realm, celui de “master” car il permet de gérer les autres realm. On n’est pas censé toucher à ce dernier !

Commencez par créer un nouveau royaume en cliquant sur le bouton “Create realm”.

Create realm

Puis remplissez le seul champ obligatoire, celui du nom, “Realm name” que l’on nomme “ouidou” dans notre cas et validez en cliquant sur le bouton “Create”.

Formulaire de création du Realm

Création de groupes

Outre le fait de classer des utilisateurs, l’intérêt de créer des groupes permet d’attribuer un ensemble de règles appelées “role”.

Remarque : un utilisateur peut appartenir à 0,n groupe(s).

On va donc créer 2 groupes chez Ouidou, celui des managers et celui des développeurs. Dans le menu de gauche, cliquez sur “Groups” puis sur le bouton “Create group”.

Create group

Saisissez le nom du premier groupe “managers” et validez en cliquant sur le bouton “Create”.

Formulaire de craétion de groupe

Création des utilisateurs

Dans le menu de gauche, cliquez sur “Users”.

Create user

Rentrez un nom d’utilisateur puis cliquez sur “Join groups” afin de le rattacher au groupe des “managers” puis cliquez sur le bouton “Join”. Enregistrez l’utilisateur en cliquant sur le bouton “Create”.

Formulaire de création d'un utilisateur

Remarque : si vous ne remplissez par le champ “Email”, il sera demandé lors de la première connexion.

Une fois créé, l’utilisateur bénéficie d’un id unique. Avant de poursuivre, il faut lui définir un mot de passe par défaut. Pour ce faire, cliquez sur l’onglet “Credentials” puis sur le bouton “Set password”.

Formulaire de création d'un mot de passe

Validez en cliquant sur le bouton “Save”.

Remarque : en laissant l’option “Temporary”, l’utilisateur devra se crée un nouveau mot de passe lors de la première authentification.

Tester la connexion

Dans le menu de gauche, cliquez sur “Clients”.

Liste des clients

Sur la première ligne intitulée “account”, vous avez l’URL de connexion dans la dernière colonne “Home URL”, cliquez dessus.

Formulaire de connexion

Une demande de changement de mot de passe est demandée.

Une fois connecté, on arrive sur la page de notre compte.

Page personnelle de compte

Mot de passe oublié et langue en français

Par défaut, il n’y a pas de “Mot de passe oublié” sur le formulaire de connexion.

En tant qu’admin, dans le menu de gauche, cliquez sur “Realm settings” puis sur l’onglet “Login”. Cochez “Forgot password”. Avant de tester, changez la langue en cliquant sur l’onglet “Localization”. Passez la valeur de “Internationalization” à “Enabled”. Dans “Supported locales”, sélectionnez “French” puis dans le champ “Default locale”, sélectionnez la valeur “French” et validez en cliquant sur le bouton “Save”.

Configuration de l'internationnalisation

Retournez sur la page de login, le lien “Forgot Password?” apparait.

Formulaire de connexion en français

Sauvegarder et importer sa configuration Keycloak

Sur Keycloak, il est possible (et recommandé) de sauvegarder la configuration sous la forme d’un fichier JSON afin de pouvoir la réimporter et restaurer la configuration en cas de perte des données.

Exporter

Pour l’exportation, on lance la commande d’exécution classique avec Docker.

docker exec -it keycloak /opt/keycloak/bin/kc.sh export --dir /opt/keycloak/data/import --users realm_file --realm ouidou

Puis, on copie le fichier de sauvegarde “ouidou-realm.json” depuis le container de Keycloak vers la machine hôte, dans le répertoire “/tmp” (répertoire spécifique à Linux).

docker cp keycloak:/opt/keycloak/data/import/ouidou-realm.json /tmp

Importer

Pour l’importation, on fait le chemin inverse. On copie le fichier de la machine hôte vers le container.

docker cp /tmp/ouidou-realm.json keycloak:/tmp/ouidou-realm.json

Puis on exécute la commande d’importation en spécifiant le chemin du fichier JSON.

docker exec -it keycloak /opt/keycloak/bin/kc.sh import --file /tmp/ouidou-realm.json

Outro

Keycloak est un outil d’IAM puissant en terme de granularité pour des projets plus poussés mais aussi de sa liste de providers disponibles. En déléguant la partie authentification, il permet de développer des applications web rapidement. Dans la seconde partie, nous allons voir comment mettre en place Keycloak sur une application web Angular.

Sources

  • Documentation officielle de Keycloak : Documentation ;
  • Image Docker officielle de Postgres : postgres – Official Image | Docker Hub ;
  • Image Docker officielle de Keycloak : Quay .

À lire aussi

Diagnostiquer, comprendre et optimiser les performances d’une application React
4 mai 2026

Diagnostiquer, comprendre et optimiser les performances d’une application React

Lire la suite de l'article

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation
15 avril 2026

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation

Lire la suite de l'article

Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe
8 avril 2026

Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe

Lire la suite de l'article

Replay webinaire Ouidou x Sonar
2 juillet 2026

Replay webinaire Ouidou x Sonar

Lire la suite de l'article

Articles associés

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation
15 avril 2026

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation


Lire la suite
Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe
8 avril 2026

Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe


Lire la suite
Comment préparer votre Jira Cloud dès maintenant ? 
14 novembre 2025

Comment préparer votre Jira Cloud dès maintenant ? 


Lire la suite
Replay webinaire IA
5 novembre 2025

Replay webinaire IA


Lire la suite
  • Linkedin Ouidou
  • Youtube Ouidou

Blog Ouidou, le rendez-vous des équipes tech qui veulent comprendre avant de décider. Veille, retours d'expérience et décryptages pour rester à la pointe.

© 2026 Ouidou | Tous droits réservés | Plan du site | Mentions légales | Déclaration d'accessibilité
    Découvrir Ouidou
    No results See all results