Qu’est-ce que le protocole OpenID Connect ?
Le protocole OpenID Connect (OIDC) est au cœur du fonctionnement de ProConnect.
Il s’agit d’une couche d’authentification standardisée reposant sur le protocole OAuth 2.0.
OIDC permet à des fournisseurs de services (applications ou services en ligne) d’accéder à l’identité des utilisateurs via un fournisseur d’identité.
- Spécification officielle : openid.net/connect
- Référence technique : OpenID Connect Core 1.0 – Authorization Code Flow
Inscription du fournisseur de service
Avant tout échange, le fournisseur de services doit s’enregistrer auprès du provider (fournisseur d’identité / ProConnect).
Lors de cette étape, il fournit notamment :
- une URL de callback (
redirect_uri
) : l’adresse vers laquelle l’utilisateur sera redirigé une fois authentifié ; - une URL de redirection post-déconnexion (
post_logout_redirect_uri
) : l’adresse vers laquelle l’utilisateur sera renvoyé après sa déconnexion.
En retour, le provider attribue au fournisseur de service un client_id
(identifiant public) et un client_secret
(clé privée partagée).
Déroulé du flux standard
Lorsque l’utilisateur clique sur le bouton « Se connecter avec ProConnect », le parcours type est le suivant :
- Redirection navigateur : le fournisseur de service redirige l’utilisateur vers l’
authorization_endpoint
du provider, en incluant sonclient_id
et saredirect_uri
. - Authentification : le provider affiche une mire de connexion et authentifie l’utilisateur.
- Retour au fournisseur de service : si l’authentification réussit, le provider redirige l’utilisateur vers la
redirect_uri
avec un code d’autorisation (code
) en paramètre. - Échange du code : le fournisseur de service appelle, côté serveur, le
token_endpoint
du provider en lui transmettant lecode
, sonclient_id
et sonclient_secret
. - Réponse du provider : le provider renvoie un
id_token
(JWT contenant l’identité) et unaccess_token
. - Appel UserInfo : le fournisseur de service appelle, côté serveur, le
userinfo_endpoint
du provider avec l’access_token
. - Réponse UserInfo : le provider renvoie les informations de l’utilisateur.