OpenID Connect (OIDC) s’impose comme une solution robuste, qui simplifie la gestion de l’authentification des utilisateurs sur de multiples plateformes. Si vous connaissez déjà OAuth 2.0, vous avez fait la moitié du chemin pour comprendre OpenID Connect. OIDC s’appuie sur le protocole OAuth 2.0 en ajoutant une couche dédiée à l’authentification, ce qui rend l’identification des utilisateurs plus simple et plus sûre.
Aujourd’hui, OpenID Connect est le protocole utilisé par la plupart des systèmes de connexion sociale (social login), qui permettent aux utilisateurs de se connecter à diverses applications avec leur compte Google, Facebook, Microsoft, etc.
Qu’est-ce qu’OpenID Connect ?
OpenID Connect est une couche d’identité construite au-dessus du protocole OAuth 2.0. Alors qu’OAuth 2.0 est avant tout conçu pour l’autorisation, OpenID Connect étend ses fonctionnalités à l’authentification. Concrètement, en plus de permettre à des applications d’accéder de manière sécurisée à des ressources au nom d’un utilisateur, OIDC permet aussi de vérifier l’identité de cet utilisateur.
En combinant les points forts d’OAuth 2.0 avec des capacités d’authentification, OpenID Connect simplifie l’intégration de la connexion et de la vérification d’identité dans les applications web et mobiles.
Les quatre composants principaux d’OpenID Connect
Pour comprendre le fonctionnement d’OpenID Connect, il est essentiel de connaître ses quatre acteurs principaux.

OpenID Provider (OP)
L’OpenID Provider (OP), aussi appelé Identity Provider (IdP), est une entité de confiance chargée d’authentifier l’utilisateur et d’émettre les jetons d’identité. Ces jetons contiennent des informations sur l’utilisateur, comme son identifiant unique (sub), et peuvent aussi inclure d’autres claims (attributs) tels que le nom, l’adresse e-mail ou les informations de profil de l’utilisateur.
Lorsqu’un utilisateur tente de se connecter, l’OP vérifie son identité, génère les jetons nécessaires et les transmet au Relying Party (RP).
Relying Party (RP)
Le Relying Party, aussi appelé client, est l’application ou le service qui a besoin des informations d’identité de l’utilisateur. Il peut s’agir d’une application web, d’une application mobile ou de tout autre service qui doit authentifier des utilisateurs.
Le RP redirige l’utilisateur vers l’OpenID Provider pour qu’il s’authentifie. Une fois l’utilisateur authentifié et les jetons émis par l’OP, le RP les utilise pour donner accès à ses services et à ses ressources. En somme, le RP délègue à l’OP la complexité de l’authentification, ce qui lui permet de se concentrer sur ses services principaux.
Resource Server
Le Resource Server est l’entité qui héberge les ressources (données) de l’utilisateur auxquelles le client souhaite accéder. Il peut s’agir d’une application, d’une API, etc. Il arrive que le Resource Server et le Relying Party ne fassent qu’un.
Le Resource Server s’appuie sur les jetons émis par l’OP pour déterminer si le client dispose des permissions nécessaires pour accéder aux ressources demandées. Ces permissions peuvent être déterminées, par exemple, par les scopes et l’audience, mais aussi par le claim sub si les données dépendent d’un utilisateur précis. Il garantit ainsi que l’accès n’est accordé qu’aux utilisateurs authentifiés et autorisés, préservant la sécurité et la confidentialité de leurs données.
L’utilisateur final (Resource Owner)
L’End User, souvent appelé Resource Owner, est la personne dont l’identité et les ressources sont concernées. L’utilisateur final interagit avec le Relying Party, déclenche le processus d’authentification et donne son consentement pour que le RP accède à ses informations.
Le rôle principal de l’utilisateur final est de s’authentifier auprès de l’OpenID Provider, ce qui lui garantit le contrôle de l’accès à ses propres données et ressources.
Comment fonctionne OpenID Connect ?
Pour illustrer les interactions entre ces composants, voici un flow d’authentification OpenID Connect typique :
- L'utilisateur initie la connexion
L’utilisateur final tente de se connecter au Relying Party (par exemple, une application web).
- Le RP redirige vers l'OP
Le RP redirige l’utilisateur vers l’OpenID Provider pour l’authentification.
- L'utilisateur s'authentifie
L’utilisateur s’authentifie auprès de l’OP, généralement en fournissant ses identifiants (nom d’utilisateur et mot de passe).
- L'OP émet les jetons
Une fois l’authentification réussie, l’OP émet un ID token (et éventuellement un access token et un refresh token) et redirige l’utilisateur vers le RP.
- Le RP vérifie les jetons
Le RP vérifie les jetons reçus pour s’assurer qu’ils sont valides et qu’ils proviennent bien de l’OP de confiance.
- Accès accordé
Si les jetons sont valides, le RP donne à l’utilisateur l’accès à ses services et à ses ressources.
Choisir son OpenID Connect Provider
Voici quelques critères clés à prendre en compte pour choisir un OpenID Connect Provider :
- Sécurité : vérifiez que le provider respecte les best practices en matière de chiffrement et de gestion des jetons.
- Conformité (pour un provider SaaS) : vérifiez la conformité avec les réglementations telles que le RGPD, HIPAA ou le CCPA.
- Intégration et compatibilité : évaluez la facilité d’intégration du provider avec vos systèmes et vos applications. Un provider peut n’implémenter qu’une partie des spécifications OpenID Connect. Selon votre application, il peut être utile de savoir quels
grant_typeset quelspromptsl’OP prend en charge. - Scalabilité : tenez compte de la capacité du provider à absorber un nombre croissant de requêtes d’authentification.
- Expérience utilisateur : ce critère ne concerne pas uniquement OpenID Connect. La plupart des solutions OpenID Connect proposent d’autres fonctionnalités orientées utilisateur : recherchez le single sign-on (SSO), l’authentification multi-facteurs (MFA) et les options de connexion sociale.
- Support et fiabilité : évaluez la qualité du support client et de la documentation.
- Coût : assurez-vous que la grille tarifaire correspond à votre budget et offre un bon rapport qualité-prix.
Pour bien démarrer, consultez cette liste des OpenID Connect Providers existants (open source et SaaS).
Bibliothèques pour intégrer OpenID Connect côté Relying Party
L’intégration d’OpenID Connect dans vos applications est simplifiée par l’usage de bibliothèques conçues à cet effet. La plupart des langages et des frameworks disposent de leur propre bibliothèque OpenID Connect. Vous trouverez à ce lien une liste de bibliothèques Relying Party.