clientfedid analyse flux authentification openid connect
  • 14 octobre 2025
  • ComputaSYS
  • 0


I. Présentation

Les protocoles d’authentification fédérée (SAML, OAuth2, OpenID Connect) sont présents dans une grande majorité des SI, mais ils ne sont pas toujours simples à tester ou à décortiquer. Avec ClientFedID, l’outil open source d’Aduneo, vous pouvez facilement simuler et analyser ces échanges pour mieux comprendre leur fonctionnement.

Cet article explique comment installer ClientFedID avec Docker, et surtout, comment l’utiliser en prenant le cas d’une authentification OpenID Connect via Keycloak comme scénario. Pour autant, les interactions ne sont pas limitées à Keycloak, puisque d’autres fournisseurs d’identité sont compatibles avec cet outil. Ainsi, ClientFedID peut être utile à différents profils IT : administrateurs systèmes, développeurs, formateurs ou encore experts en cybersécurité.

II. Quelques mots sur Aduneo

Créée en 2001, Aduneo est une société française spécialisée dans la gestion des identités et des accès (IAM). Elle accompagne les entreprises dans la mise en place de solutions permettant de renforcer la sécurité des systèmes d’information, tout en facilitant l’expérience des utilisateurs grâce à des mécanismes d’authentification adaptés. Forte de son expertise, Aduneo intervient aussi bien sur des projets de conseil que sur l’intégration de solutions IAM, notamment Keycloak, Ping Identity ou encore des annuaires LDAP.

En parallèle de ses activités de services, Aduneo contribue à l’écosystème open source en développant l’outil ClientFedID présenté dans cet article. Cet outil permet de tester, simuler et comprendre le fonctionnement des protocoles d’authentification fédérée comme OpenID Connect, OAuth2 et SAML.

III. Installation de ClientFedID avec Docker

Avant de démarrer, vérifiez que Docker est bien installé et opérationnel sur votre machine. Dans mon cas, j’utilise une Debian 13 avec Docker déjà configuré, mais vous pouvez tout à fait travailler sur un autre système. Si vous avez besoin d’un coup de main pour l’installation, je vous invite à consulter ce tutoriel :

Note : si vous ne souhaitez pas utiliser Docker, sachez que vous pouvez installer l’outil directement sur une machine où Python3 est également installé. Dans ce cas, utilisez PyPi.

Le code source de l’outil ClientFedId est disponible sur GitHub : Dépôt GitHub Aduneo – ClientFedID

Nous allons commencer par créer un dossier dans lequel seront stockées les données du projet :

sudo mkdir /opt/docker-compose/clientfedid

Puis, dans ce répertoire, créez un sous-dossier pour les données de l’application :

sudo mkdir /opt/docker-compose/clientfedid/data

Créez ensuite le fichier Docker Compose de ce projet, directement à la racine du premier dossier créé.

sudo nano /opt/docker-compose/clientfedid/docker-compose.yml

Insérez ce code à l’intérieur du fichier :

services:
clientfedid:
container_name: clientfedid
image: aduneo/aduneoclientfedid
restart: no
volumes:
– ./data:/opt/conf
ports:
– “443:443”

Ce fichier Docker Compose définit un service unique nommé clientfedid (même si le conteneur est appelé clientfedid) basé sur l’image aduneo/aduneoclientfedid. Le service expose le port 443 du conteneur sur le port 443 de la machine hôte, ce qui permet d’y accéder en HTTPS. Un volume local (le dossier data créé précédemment) est monté dans le conteneur sous /opt/conf.

Lancez la construction du conteneur :

cd /opt/docker-compose/clientfedid
sudo docker compose up -d

L’image sera téléchargée et le conteneur démarré.

[+] Running 2/2
✔ Network clientfedid_default Created
✔ Container clientfedid Started

Dès à présent, vous devriez pouvoir accéder à l’interface de ClientFedID, via l’adresse IP de votre hôte Docker (en HTTPS).

Dans la suite de cet article, nous verrons comment utiliser l’outil.

IV. Prise en main de ClientFedID

D’une part, nous disposons d’une instance Keycloak, et d’autre part, une instance de l’outil ClientFedID. Désormais, l’idée est la suivante : tester l’authentification OpenID Connect de Keycloak grâce à l’outil ClientFedID, ce dernier assurera donc le rôle de client d’un point de vue de Keycloak. L’intérêt étant de pouvoir analyser précisément les échanges entre les deux parties grâce aux données présentées dans l’interface de ClientFedID.

Si vous ne connaissez pas Keycloak, ce sera aussi l’occasion d’effectuer une première prise en main. Nous allons donc créer un nouveau realm dédié à ce test, lui associer un utilisateur et un client. Tout au long de la configuration, vous devrez basculer entre l’interface de Keycloak et celle de ClientFedID.

A. Scénario OpenID Connect avec Keycloak

À partir de l’interface de Keycloak, cliquez sur “Manage realms” dans le menu latéral, puis créez un nouveau realm via le bouton “Create realm”. Donnez-lui un nom, par exemple “IT-Connect”, et validez.

Au sein de ce nouveau realm, créez un nouvel utilisateur via la section “Users” disponible dans le menu latéral. Cet utilisateur de test sera utilisé par la suite pour simuler une connexion via ClientFedID.

Désormais, nous allons passer à la création d’un nouveau client : une action en lien direct avec l’intégration de ClientFedID. Cliquez sur “Clients” dans le menu latéral, puis ajoutez un nouveau client.

Ici, nous évaluerons OIDC, donc choisissez OpenID Connect comme type de client. Donnez-lui un nom au sein du champ “Client ID”, par exemple “ClientFedID”. Cette valeur devra être réutilisée par la suite.

Dans la section “Capability config”, activez l’authentification via l’option “Client authentication”. Conservez les autres options par défaut.

Au sein de l’interface de Keycloak, basculez sur la section “Login settings”. Mais, pour avancer, nous devons récupérer plusieurs informations du côté de ClientFedID, donc basculez sur l’interface de cet outil.

Cliquez sur le bouton “Add OIDC Client”, car ici, nous évaluons un scénario basé sur OpenID Connect.

Complétez déjà deux premiers champs dans le formulaire en essayant d’être cohérent dans la configuration entre les deux outils. Pour certains champs, il est d’ailleurs indispensable d’utiliser les mêmes noms.

IdP name : Keycloak (pour faire référence au fournisseur d’identité utilisé)

Client name : IT-Connect

Dans la section “RP endpoints”, copiez l’URL située dans le champ “Redirect URI”. Dans le contexte d’OpenID Connect, le Redirect URI est l’adresse de redirection vers laquelle l’Identity Provider (IdP) renvoie l’utilisateur une fois l’authentification terminée.

Basculez sur Keycloak et collez l’URL dans le champ “Valid redirect URIs”.

Cliquez sur “Save” pour valider la création du client. Ensuite, dans les propriétés de ce client, toujours dans Keycloak donc, cliquez sur l’onglet “Credentials” et copiez la valeur “Client Secret”.

Basculez sur l’interface ClientFedID.

Au sein de la section “OpenID Connect Configuration”, spécifiez :

Client ID : indiquez la même valeur que dans Keycloak, à savoir “ClientFedID” pour ma part.

Client secret : collez la valeur récupérée précédemment dans les détails du client.

Le client secret sert à authentifier l’application auprès de l’IdP (Keycloak) et à sécuriser les échanges de tokens réalisés dans le cadre d’OIDC.

Basculez sur l’interface de Keycloak.

Quittez la gestion du client. Désormais, accédez à la section “Realm settings” située dans le bas du menu latéral. Positionnez votre souris sur le lien “OpenID Endpoint Configuration” pour copier l’URL correspondante (il n’est pas question de cliquer). Pour ma part, j’obtiens cette URL : https://keycloak.it-connect.local:8443/realms/IT-Connect/.well-known/openid-configuration.

Ce lien est important : il s’agit d’un point d’entrée standardisé (.well-known/openid-configuration) exposé par le fournisseur d’identité (ici Keycloak, sur le realm IT-Connect). Ce document JSON contient toutes les informations nécessaires pour qu’un client OpenID Connect puisse communiquer correctement avec l’IdP.

Basculez sur l’interface ClientFedID.

Au sein de la section “OP endpoints”, collez l’URL de découverte au sein du champ “Discovery URI”.

La configuration est terminée ! Il ne vous reste plus qu’à cliquer sur le bouton “Save” en bas de page. Attention, si votre serveur Keycloak n’a pas un certificat TLS valide (auto-signé, par exemple), décochez au préalable l’option “Verify certificates” située au-dessus du bouton.

B. Tester l’authentification OIDC

La page d’accueil de ClientFedID contient désormais un IdP nommé Keycloak associé à un premier client correspondant à celui que nous venons de configurer. L’outil ClientFedID est capable de gérer plusieurs configurations, ce qui est plutôt avantageux pour évaluer différents scénarios.

Cliquez sur le bouton “Login”.

Tout en bas de la page, cliquez sur le bouton “Send”.

Vous serez alors redirigé vers la page de connexion de Keycloak ! C’est tout à fait logique : authentifiez-vous avec le compte utilisateur créé au tout début de la configuration.

De retour sur la page de ClientFedID, vous pourrez alors savoir si votre authentification a réussi ou non.

Surtout, et c’est tout l’intérêt de l’outil au-delà du test fonctionnel, c’est que vous avez tout le détail des échanges. En effet, l’outil affiche le résultat du flux d’authentification OpenID Connect entre Keycloak (en tant qu’Identity Provider) et ClientFedID (en tant que client de test). On peut notamment y voir la génération et la validation d’un Token JWT conforme aux spécifications OpenID Connect, ainsi que des précisions sur la signature du token qui utilise ici l’algorithme RS256 (RSA avec SHA-256).

La capture d’écran ci-dessous illustre le contenu détaillé d’un jeton JWT émis par Keycloak et interprété par ClientFedID. On peut identifier des informations intéressantes :

L’en-tête du jeton (un aperçu), qui précise notamment l’algorithme utilisé pour la signature et l’identifiant de la clé publique associée.

L’ensemble des claims (revendications), qui regroupe des informations liées à l’authentification et à l’utilisateur : identifiant unique, émetteur, dates d’émission et d’expiration, ainsi que des attributs comme le nom, le prénom, l’adresse e-mail ou le nom d’utilisateur.

L’intérêt de cette vue est de montrer concrètement comment les informations d’identité sont encapsulées et transmises via le token JWT. Cela permet de comprendre à la fois la structure technique du token et les données accessibles par une application cliente après authentification.

V. Conclusion

L’outil ClientFedID d’Aduneo s’avère très utile pour tester un fournisseur d’identité dans un contexte d’authentification bien précis, mais aussi pour mieux comprendre le fonctionnement des méthodes d’authentification modernes.

Il permet de visualiser en détail les échanges entre un client et un IdP, notamment les jetons émis, leur contenu et les différentes vérifications de sécurité associées. Je pense que c’est un support pédagogique intéressant pour se familiariser avec SAML, OAuth2 ou OpenID Connect, tout en étant également un outil pratique pour valider une configuration ou diagnostiquer un problème d’intégration.

Cet article a été sponsorisé par Aduneo.

Ingénieur système et réseau, cofondateur d’IT-Connect et Microsoft MVP “Cloud and Datacenter Management”. Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.



Source link

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *