Nouvelle version de Keycloak v25.0 – Edition de juin

Logo Keycloak

Comme à chaque nouvelle version de l’outil Open Source de gestion d’identité, notre consultant Sébastien et responsable de l’offre éponyme chez Sedona nous présente ses principales nouveautés et les répercussions attendues sur nos développements.

Version de Java

OpenJDK 21 étant la version LTS officielle, c’est désormais la version supportée pour exécuter Keycloak, celle-ci vient en remplacement de la version 17 qui est désormais considérée obsolète et dont la compatibilité sera retirée dans une prochaine version.

Nouvel algorithme de hachage

Pour s’aligner sur les recommandation de l’OWASP, l’algorithme par défaut pour le hachage des mot de passe est désormais Argon2.

L’algorithme précédent, PBKDF2, avait reçu un changement de configuration par défaut dans Keycloak 24 afin d’atteindre un niveau de sécurité suffisant vis-à-vis des critères de sécurité récents, mais cette nouvelle configuration devenait trop gourmande en ressource CPU (plus de 10x plus de temps CPU par rapport à l’ancienne configuration).

Argon2 permet de revenir à une utilisation CPU mieux maîtrisée, équivalente à ce qui était observé sur les versions précédentes de Keycloak (≤23.x). Le compromis ce fera cette fois du côté de l’utilisation mémoire, ce qui a poussé les équipes Keycloak à changer la configuration de _Garbage Collection_ de la Machine Virtuelle Java.

Configuration du nom de machine simplifiée

La configuration du ou des nom(s) de machine (hostnames) pour Keycloak n’était pas très intuitive. Pour répondre à ce problème, et en se basant sur les retours de la communauté, les anciennes directives de configuration ont été regroupées pour simplifier le paramétrage.

Sessions persistantes

Jusqu’ici, les sessions actives étaient maintenues seulement en cache mémoire. Avec cette nouvelle fonctionnalité, il est possible de persister les sessions actives également en base de données.

Cette fonctionnalité permet, une fois activée , de maintenir actives les sessions en cours même après un redémarrage du service Keycloak (qui habituellement « purge » les sessions en cours)

https://www.keycloak.org/2024/06/persistent-user-sessions-in-preview

Support de l’authentification par Passkey

Bien que Keycloak supporte depuis longtemps le WebAuthn, l’intégration des Passkeys n’était pas des plus simples d’un point de vue configuration & expérience utilisateur. Une nouvelle étape pour les workflow d’authentification permet de simplifier l’utilisation des Passkeys sur les comptes configurés avec ce mode d’authentification.

Fonctionnalités de base de CIAM 

_Customer Identity and Access Management_

  • Fonctionnalité qui servira de socle pour les cas d’usage B2B voire B2B2C
  • Introduction de la notion d’ « Organisation » directement dans la configuration d’un realm
  • Permet l’association de configurations et d’utilisateurs à une Organisation
  • Fonctionnalité précédemment disponible sous la forme d’une extension de la communauté (Phase2/Keycloak-organizations)
  • La version complète et stable de cette fonctionnalité est prévue pour Keycloak 26, attendue fin août/début septembre

En vrac

  • *Lightweigh Access Tokens encore plus léger*
  • Les terminaisons API des métriques et statut de Keycloak sont désormais accessibles uniquement via l’interface de gestion.(=management port, par défaut : « 9000 »)
  • Support officiel de PostgreSQL 16
  • Nouveau code d’erreur disponible pour le cas : « Vous êtes déjà connecté »
  • Concerne les situations où, par exemple, une session dans un onglet expire alors qu’une nouvelle authentification a eu lieu dans un autre onglet du navigateur. L’application cliente pourra désormais retenter une demande d’authentification automatiquement en recevant ce nouveau code d’erreur
  • Nouvelle politique de mot de passe disponible : Vérification si le mot de passe contient l’identifiant utilisateur
  • Amélioration des « Actions Requises »
  • Certaines actions peuvent désormais être configurées plus finement
  • L’origine de l’ajout d’une action (par l’utilisateur ou par un administrateur) ne détermine pas son ordre d’exécution dans le cas où plusieurs actions sont demandées
  • Support expérimental de OIDC4VCI
  •     Keycloak peut agir comme émetteur « d’informations d’identification vérifiables ». Ce mécanisme permet de générer un document sécurisé comportant des informations de l’utilisateur. Ce document permet à l’utilisateur de prouver auprès d’applications tierces, et de manière sécurisée et cryptographiquement vérifiable, leur identité ou tout autre information que l’utilisateur souhaite transmettre.

Merci encore à Sébastien pour nous faire partager les évolutions d’un produit que nous installons de plus en plus chez nos clients et qui donne entière satisfaction !