Keycloak, on en a déjà parlé plusieurs fois sur ce blog et je pense que vous commencez à connaître un peu la bête. FranceConnect, c’est la première fois qu’on l’aborde ici alors je vais me permettre une petite présentation.
D’après le site franceconnect.gouv.fr, “FranceConnect est la solution de l’État pour faciliter la connexion à vos services et démarches en ligne”. Dit autrement, FranceConnect est un fournisseur d’identité mis en place par l’État français et permettant à un usager d’accéder à des services en ligne, publics ou privés.
Ou plus techniquement, il s’agit d’un Identity Provider géré par la DINUM permettant l’identification et l’authentification des utilisateurs via le protocole OpenID Connect.
Concrètement, du point de vue d’un utilisateur souhaitant accéder à un service, FranceConnect se matérialise sous la forme d’un bouton “S’identifier avec FranceConnect” lui permettant d’accéder au service sans avoir à créer un nouveau compte. L’accès au service est simplifié pour l’utilisateur.
Vous proposez un service en ligne, votre public est majoritairement français et vous souhaitez simplifier la vie de vos usagers : FranceConnect est une bonne option.
Intégration de FranceConnect
Comme indiqué en introduction, FranceConnect se base sur le protocole OpenID Connect (OIDC). OIDC est un standard ouvert et répandu, son intégration dans une application devrait se faire relativement facilement, non ? La réponse est “Oui” si on ne considère que la partie OIDC, mais elle devient plus nuancée si on considère en totalité l’intégration FranceConnect.
OpenID Connect
Même si FranceConnect suit les spécifications du protocole OIDC, il y a quelques subtilités propres à FranceConnect à prendre en compte. Par exemple, les paramètres state et nonce qui doivent avoir une taille minimum de 22 caractères (voir les paramètres du Authorization Endpoint) alors que les spécifications OIDC n’imposent rien de tel.
Concernant les scopes demandés à FranceConnect lors de l’authentification, ceux-ci doivent être les mêmes que ceux déclarés et validés dans la demande d’habilitation. La documentation de FranceConnect fournit une liste complète des scopes et claims disponibles.
La prise en charge du niveau eIDAS doit également être gérée au niveau OIDC. Ceci se traduit par l’obligation de l’usage du claim acr_values (claim optionnel dans la spec OIDC) qui doit contenir une des trois valeurs suivantes :
- eidas1 pour le niveau faible (FranceConnect)
- eidas2 pour le niveau substantiel (FranceConnect+)
- eidas3 pour le niveau élevé (FranceConnect+)
Réconciliation des comptes
Pour les applications disposant de comptes locaux déjà existants et souhaitant proposer à ces utilisateurs de se connecter soit via leur compte local soit via FranceConnect, il existe un mécanisme de réconciliation (également appelé rapprochement) des comptes. Ce mécanisme a pour but d’établir un lien entre un utilisateur authentifié via FranceConnect et un compte existant. Habituellement, cette réconciliation se fait sur l’adresse email ou via une demande de ré-authentification locale de l’utilisateur, permettant ainsi à l’application d’établir ce lien.
Sur ce point, le fonctionnement de FranceConnect est différent. La réconciliation des comptes FranceConnect et des comptes existants doit respecter certaines règles (point 17 des vérifications) :
- ne pas se baser sur l’adresse email
- ne pas redemander le mot de passe
- se baser sur les données de l’identité pivot (pour la réconciliation automatique)
- se baser sur un secret (pour la réconciliation manuelle)
FranceConnect propose deux options pour la réconciliation :
- la réconciliation automatique (sans intervention de l’usager) : le principe est de retrouver un compte existant dont les informations correspondent aux données de l’identité pivot
- la réconciliation manuelle (avec intervention de l’usager) : l’usager et l’application possèdent un secret partagé, comme un numéro de permis de conduire ou un numéro d’adhésion à une bibliothèque ou …, et ce secret est demandé à l’utilisateur lors de la réconciliation manuelle
Les réconciliations automatiques et manuelles peuvent être mises en place conjointement. Un exemple de workflow pourrait donner ceci :

À noter que le principe de réconciliation n’est pas propre à FranceConnect. Il est commun de mettre en place une réconciliation entre un fournisseur d’identité et un fournisseur de service. La spécificité de FranceConnect vient du fait que cette réconciliation ne se fait pas sur une donnée classique (comme l’adresse email qui est couramment utilisée), mais sur des données propres à FranceConnect : l’identité pivot.
Identité pivot
L’identité pivot est une notion centrale pour FranceConnect. C’est l’identité pivot qui permet d’identifier un utilisateur particulier. Cette identité est composée de 6 champs : nom de naissance, prénoms, sexe, date de naissance, ville de naissance et pays de naissance.
L’adresse email n’est pas présente dans l’identité pivot et ne peut donc pas être utilisée pour la réconciliation automatique.
Les données de l’identité pivot sont envoyées à l’application en fonction des scopes demandés lors de la phase d’authentification. Le scope identite_pivot regroupe l’ensemble des claims de l’identité pivot.
À noter que les données de l’identité pivot récupérées par l’application doivent être en lecture seule. Les utilisateurs ayant lié leur compte local à leur identité FranceConnect ne doivent pas être en mesure de modifier ces données dans l’application.
Aspect visuel
L’aspect visuel est un point important pour une intégration réussie de FranceConnect. Le respect des règles indiquées dans la documentation est nécessaire pour passer l’étape de qualification et arriver en production. Ces règles concernent l’intégration du bouton “S’identifier avec FranceConnect”, de son placement sur la page par rapport aux autres méthodes d’authentification, des libellés, des liens, etc.
Globalement, la page d’authentification de l’application doit s’approcher de cet exemple :

Démarches administratives
Et si on laisse de côté les problématiques purement techniques, il reste les démarches administratives pour devenir fournisseur de service auprès de FranceConnect. Une demande d’habilitation doit être réalisée auprès de FranceConnect pour chaque application qui doit déléguer l’authentification à FranceConnect.
FranceConnect et Keycloak
Toutes ces “contraintes” (même s’il s’agit d’un bien grand mot) sont gérables sans l’intervention de Keycloak, les applications peuvent directement communiquer avec FranceConnect. Les administrations et collectivités n’ont pas attendu Keycloak pour intégrer leurs services à FranceConnect. Là où Keycloak peut aider à l’intégration, c’est pour les cas d’applications ne pouvant pas être adaptées aux spécificités de FranceConnect (même si ces applications parlent OIDC) ou via la multiplicité des services proposés par une administration (rappel : une demande d’habilitation doit être faite pour chaque service).
Pour répondre à ces cas d’usage, Atol CD propose de passer par Keycloak pour en faire l’intermédiaire entre vos services et FranceConnect : Keycloak est fournisseur d’identité pour vos services et FranceConnect est fournisseur d’identité pour Keycloak (et indirectement donc pour vos services).

Du point de vue des services Keycloak est l’unique fournisseur d’identité. On retrouve donc la totalité des possibilités de Keycloak pour la délégation d’authentification : OpenID Connect, SAML et CAS (via une extension communautaire). Et charge à Keycloak de déléguer lui-même l’authentification à FranceConnect et de gérer toutes les spécificités liées à FranceConnect.
- Un seul point d’entrée pour tous les services
- Un seul développement spécifique FranceConnect à intégrer dans Keycloak.
- Une unique demande d’habilitation FranceConnect pour Keycloak.
Extension Keycloak de l’Insee
Comme nous avons de la chance, et que Keycloak est déjà bien utilisé dans les administrations, une extension Keycloak existe et intègre la plupart des spécificités liées à FranceConnect. Cette extension est développée par l’Insee et est distribuée sous licence MIT. Ces dernières années Atol CD a contribué, entre autres, à la réconciliation automatique des comptes et à la comptabilité de l’extension avec les dernières versions de Keycloak.
Cette extension couvre les fonctionnalités suivantes :
- gestion du niveau d’authentification eIDAS
- interface d’administration spécifiques pour la gestion des IDP FranceConnect
- prise en charge de FranceConnect+ et AgentConnect
- réconciliation automatique basée sur l’identité pivot
- thème de connexion avec affichage respectant les règles d’intégration du bouton FranceConnect
En résumé, cette extension vient enrichir Keycloak afin de faciliter l’intégration de FranceConnect en couvrant les fonctionnalités non prises en charge nativement par Keycloak.
Méthodologie
La mise en place de FranceConnect via Keycloak suit globalement la méthodologie suivante :
- phase 1 : intégration de Keycloak dans le SI (au moins deux environnements : QUALIF et PROD par exemple) avec l’extension FranceConnect de l’Insee
- phase 2 : Keycloak devient le fournisseur d’identité pour les services à destination des usagers
- phase 3 : FranceConnect devient le fournisseur d’identité pour Keycloak
Les phases 2 et 3 peuvent être menées en parallèle.
Concernant la phase 3, elle se découpe elle-même en plusieurs étapes détaillées dans la documentation FranceConnect :
- étape 1 : vérifier les conditions d’éligibilité
- étape 2 : demander une habilitation
- étape 3 : réaliser l’intégration
- étape 4 : faire qualifier l’intégration
- étape 5 : passer en production
Pour résumer
- Déléguer l’authentification des services à FranceConnect est une bonne option pour simplifier le quotidien des usagers.
- Même si FranceConnect se base sur le protocole standard OpenID Connect, son intégration dans une application n’est pas forcément triviale.
- Atol CD propose de mutualiser toutes les intégrations en une seule : via l’usage de Keycloak en intermédiaire entre les services et FranceConnect. Le coût d’intégration de FranceConnect n’est pas anodin, autant le faire qu’une seule fois.
- Keycloak répond déjà à beaucoup de fonctionnalités nécessaires à l’intégration de FranceConnect. Pour le reste, l’usage de l’extension Keycloak de l’Insee est recommandé.
Laisser un commentaire