Endpoints disponibles

FranceConnect et FranceConnect+

L'ensemble des endpoints décrit dans cette page est valable pour FranceConnect et FranceConnect+. Si des distrinctions sont à faire, elles sont indiquées au niveau de la documentation du endpoint concerné.


FranceConnect et FranceConnect+ mettent en oeuvre le protocole OpenID Connect pour permettre à un Fournisseur de Services de déléguer l'identification et l'authentification des usagers. Pour connaitre l'enchainement des endpoints à utiliser au cours d'une cinématique, nous vous invitons à consulter les diagrammes de séquences de FranceConnect et de FranceConnect+

OpenID Configuration Endpoints #

Description

Implémente la requête de Provider Configuration

https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationRequest

Paramètres

Aucun

Réponses
code http content-type réponse
200 application/json;charset=utf-8 Document JSON décrivant la configuration de FranceConnect/FranceConnect+
Exemple d'appel
GET /api/v2/.well-known/openid-configuration HTTP/1.1
Host: auth.integ01.dev-franceconnect.fr

Configuration sur l'environnement d'intégration :

  • FranceConnect+ : https://auth.integ01.dev-franceconnect.fr/api/v2/.well-known/openid-configuration
  • FranceConnect : https://fcp-low.integ01.dev-franceconnect.fr/api/v2/.well-known/openid-configuration

Description

Liste les clés de signature utilisées par FranceConnect/FranceConnect+

Paramètres

Aucun

code http content-type réponse
200 application/json;charset=utf-8 Document JSON décrivant les clés de signature de FranceConnect/FranceConnect+
Exemple d'appel
GET /api/v2/jwks HTTP/1.1
Host: auth.integ01.dev-franceconnect.fr

Clés sur l'environnement d'intégration :

  • FranceConnect+ : https://auth.integ01.dev-franceconnect.fr/api/v2/jwks

  • FranceConnect : https://fcp-low.integ01.dev-franceconnect.fr/api/v2/jwks


Authorization Endpoint #

Description

Implémente le Authorization Endpoint de OpenID Connect :

https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint

Paramètres
nom requis/optionnel type de données description
response_type requis string code
client_id requis string <CLIENT_ID> Identifiant du fournisseur de service, communiqué lors de son inscription auprès de FranceConnect / FranceConnect+
redirect_uri requis string <FS_URL>/<URL_CALLBACK> Url de retour vers le fournisseur de service (encodée), communiquée lors de son inscription auprès de FranceConnect / FranceConnect+
acr_values requis string - eidas2, eidas3 : FranceConnect+ supporte les niveaux eIDAS substantiel et élevé
- eidas1 : FranceConnect supporte uniquement le niveaux eIDAS faible
scope requis string <SCOPES> Liste des scopes demandés séparés par des espaces (%20 au format unicode dans l'URL) ou des '+'
claims optionnel string <CLAIMS> Objet JSON encodé décrivant les claims demandés (Voir spécification Openid Connect)
state requis string (minimum 22 caractères) <STATE> Champ obligatoire, généré aléatoirement par le fournisseur de service, que FranceConnect / FranceConnect+ renvoie tel quel dans la redirection qui suit l'authentification, pour être ensuite vérifié par le fournisseur de service. Il est utilisé afin d’empêcher l’exploitation de failles CSRF
nonce requis string (minimum 22 caractères) <NONCE> Champ obligatoire, généré aléatoirement par le fournisseur de service que FranceConnect / FranceConnect+ renvoie tel quel dans la réponse à l'appel au Token Endpoint, pour être ensuite vérifié par le fournisseur de service. Il est utilisé pour empêcher les attaques par rejeu
prompt optionnel string par défaut login consent (Voir prompt dans la spécification Openid Connect)
Réponses
code http content-type réponse
303 (succès) text/html;charset=UTF-8 Redirection vers la page de sélection du fournisseur d'identité /api/v2/interaction/{interactionHash} où {interactionHash} est un hash lié à la session de l'usager
303 (erreur) `text/html;charset=UTF-8 Redirection vers le fournisseur de service après erreur de connexion
400(mauvais format) text/html;charset=UTF-8 La page d'erreur avec codeY000400 est affichée en cas de mauvais format
Exemple d'appel
GET /api/v2/authorize?response_type=code&acr_values=eidas2&
scope=openid+gender+given_name+family_name+email+preferred_username&
claims=%7B%22id_token%22%3A%7B%22amr%22%3A%7B%22essential%22%3Atrue%7D%7D%7D&
client_id=6925fb8143c76eded44d32b40c0cb1006065f7f003de52712b78985704f39950&
redirect_uri=https%3A%2F%2Ffsp1v2.integ01.fcp.fournisseur-de-service.fr%2Foidc-callback&
state=9ed67ae42fdc5d0a6867a5425a284745f4f73ce8b6edf76e453487aa1b73cc89&
nonce=7db9b35458f2288bade947791f1c8fa2d02954f8eb7d9909dc68784f7c4aea29 HTTP/1.1
Host: auth.integ01.dev-franceconnect.fr

Description

Implémente le Authorization Endpoint de Openid Connect :

https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint

Entête
nom requis/optionnel valeur
Content-Type requis application/x-www-form-urlencoded
Body
nom requis/optionnel type de données description
response_type requis string code
client_id requis string <CLIENT_ID> Identifiant du fournisseur de service, communiqué lors de son inscription auprès de FranceConnect/FranceConnectC+
redirect_uri requis string <FS_URL>%2F<URL_CALLBACK> Url de retour vers le fournisseur de service (encodée), communiquée lors de son inscription auprès de FranceConnect / FranceConnect+
acr_values requis string - eidas2, eidas3 : FranceConnect+ supporte les niveaux eIDAS substantiel et élevé
- eidas1 : FranceConnect supporte uniquement le niveaux eIDAS faible
scope requis string <SCOPES> Liste des scopes demandés séparés par des espaces (%20 au format unicode dans l'URL) ou des '+'
claims optionnel string <CLAIMS> Objet JSON encodé décrivant les claims demandés (Voir spécification Openid Connect)
state requis string (minimum 32 caractères) <STATE> Champ obligatoire, généré aléatoirement par le fournisseur de service, que FranceConnect/FranceConnect+ renvoie tel quel dans la redirection qui suit l'authentification, pour être ensuite vérifié par le fournisseur de service. Il est utilisé afin d’empêcher l’exploitation de failles CSRF
nonce requis string (minimum 32 caractères) <NONCE> Champ obligatoire, généré aléatoirement par le fournisseur de service que FC renvoie tel quel dans la réponse à l'appel au Token Endpoint, pour être ensuite vérifié par le fournisseur de service. Il est utilisé pour empêcher les attaques par rejeu
prompt optionnel string par défaut login consent (Voir prompt dans la spécification Openid Connect)
Réponses
code http content-type réponse
303 (succès) text/html;charset=UTF-8 Redirection vers la page de recherche des fournisseur d'identité /api/v2/interaction/{interactionHash} où {interactionHash} est un hash lié à la session de l'usager
303 (erreur) text/html;charset=UTF-8 [Redirection vers le fournisseur de service après erreur de connexion](#redirection-vers-le-fournisseur de service-après-erreur-de-connexion)
400 (mauvais format) text/html;charset=UTF-8 La page d'erreur avec code Y000400 est affichée en cas de mauvais format
Exemple d'appel
POST /api/v2/authorize HTTP/1.1
Host: auth.integ01.dev-franceconnect.fr
Content-Type: application/x-www-form-urlencoded

response_type=code&prompt=login&acr_values=eidas2&
scope=openid+gender+given_name+family_name+email+preferred_username&
claims=%7B%22id_token%22%3A%7B%22amr%22%3A%7B%22essential%22%3Atrue%7D%7D%7D&
client_id=6925fb8143c76eded44d32b40c0cb1006065f7f003de52712b78985704f39950&
redirect_uri=https%3A%2F%2Ffsp1v2.integ01.fcp.fournisseur-de-service.fr%2Foidc-callback&
state=9ed67ae42fdc5d0a6867a5425a284745f4f73ce8b6edf76e453487aa1b73cc89&
nonce=7db9b35458f2288bade947791f1c8fa2d02954f8eb7d9909dc68784f7c4aea29

Redirection vers le fournisseur de service après erreur de connexion #

Description

Redirection vers le fournisseur de service après une erreur de connexion.

FranceConnect+ renvoie le code d'erreur, la description de l'erreur et le state.

Paramètres
nom requis/optionnel type de données description
error requis string code d'erreur
error_description requis string description de l'erreur
state requis string (minimum 32 caractères) <STATE> communiqué par par le fournisseur de service dans l'appel au Authorization Endpoint. Cette information est à vérifier par le fournisseur de service, afin d’empêcher l’exploitation de failles CSRF
Exemple d'appel

Exemple de retour vers le fournisseur de service de mock

GET /oidc-callback?state=9ed67ae42fdc5d0a6867a5425a284745f4f73ce8b6edf76e453487aa1b73cc89
error_description=User+auth+aborted&error=access_denied HTTP/1.1
Host: fsp1v2.integ01.fcp.fournisseur-de-service.fr

Redirection vers le fournisseur de service après connexion #

Description

Redirection vers le fournisseur de service après connexion chez le fournisseur d'identité.

FranceConnect / FranceConnect+ renvoie le code d'autorisation et le state.

Paramètres
nom requis/optionnel type de données description
code requis string <AUTHZ_CODE> code d'autorisation à transmettre au Token Endpoint
state requis string (minimum 32 caractères) <STATE> communiqué par par le fournisseur de service dans l'appel au Authorization Endpoint. Cette information est à vérifier par le fournisseur de service, afin d’empêcher l’exploitation de failles CSRF
Exemple d'appel

Exemple de retour vers le fournisseur de service de mock

GET /oidc-callback?code=_DOF10msXreojwyScrXmfqvwp8q3p1G7ZIzatMj60it&
state=9ed67ae42fdc5d0a6867a5425a284745f4f73ce8b6edf76e453487aa1b73cc89 HTTP/1.1
Host: fsp1v2.integ01.fcp.fournisseur-de-service.fr

Token Endpoint #

Description

Implémente le Token Endpoint de Openid Connect :

https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint

Entête
nom requis/optionnel valeur
Content-Type requis application/x-www-form-urlencoded
Body
nom requis/optionnel type de données description
grant_type requis string authorization_code
client_id requis string <CLIENT_ID> Identifiant du fournisseur de service, communiqué lors de son inscription auprès de FranceConnect/FranceConnect+
client_secret requis string <CLIENT_SECRET> Le secret du fournisseur de service, communiqué lors de son inscription auprès de FranceConnect/FranceConnect+
redirect_uri requis string <FS_URL>%2F<URL_CALLBACK> Url de retour vers le fournisseur de service (encodée), communiqué lors de l'appel au Authorization Endpoint
code requis string <AUTHZ_CODE> code d'autorisation fourni après connexion de l'usager
Réponses
code http content-type réponse
200 application/json;charset=utf-8 La réponse contenant l'access token
400 application/json;charset=utf-8 document JSON décrivant l'origine de l'erreur de format
Format de la réponse en succès

La réponse à l'appel /token contient :

  • l'id_token qui permet de vérifier l'authenticité de la réponse
  • les scopes autorisés par FranceConnect et consentis par l'usager
  • l'access_token qui, une fois validé avec l'id_token, pourra être utilisé pour appeler /userinfo
{
  "access_token": "goSq0H6mF__-FqxLyD0z13SAtq9-D-LNJ489Znua2Qa",
  "expires_in": 60,
  "id_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.[...]",
  "scope": "openid profile email preferred_username",
  "token_type": "Bearer"
}
JWS id_token (décodé en base64)

Dans le cas de FranceConnect+, l'id_token est chiffré. Le header contient l'algorithme de chiffrement et l'id de clé de chiffrement du fournisseur de service utilisée pour chiffrer le payload. Après déchiffrement du JWE, vous obtenez le JWS au même format que pour la plateforme FranceConnect.

Voici les informations contenues dans le JWS envoyé par FranceConnect :

Header

Le header de l'id_token indique l'algorithme de signature ainsi que l'id de la clé utilisée par FranceConnect.

{
  "alg": "ES256",
  "typ": "JWT",
  "kid": "sign_20211013_e6e32b46"
}
Payload

Le payload contient les attributs permettant de valider que l'id_token a vraiment été émis par FranceConnect pour la cinématique initiée par le fournisseur de service :

  • at_hash pour valider l'access_token
  • iss pour valider l'émetteur du token
  • aud pour valider le destinataire du token
  • nonce pour valider la correspondance avec la requête authorize

Il contient aussi des données indiquant le niveau de garantie de l'identité fournie :

{
  "sub": "739d6f6a14be39575ec3745bdcf8aec44d687b752b47054196d15ae4d7a7b2c6v1",
  "amr": [
    "fc",
    "pwd"
  ],
  "auth_time": 1732784099,
  "acr": "eidas1",
  "nonce": "d87bbd44203618369c8b0d97597b8292943466c82e8b3ca3daa7791f20c2a633",
  "at_hash": "v-VzVjZm4vwp9ngcJIuQNA",
  "aud": "myclientidforfsp1-low",
  "exp": 1732784159,
  "iat": 1732784099,
  "iss": "https://fcp-low.integ01.dev-franceconnect.fr/api/v2"
}

UserInfo Endpoint #

Description

Implémente le UserInfo Endpoint de Openid Connect :

https://openid.net/specs/openid-connect-core-1_0.html#UserInfo

Entête
nom requis/optionnel valeur
Authorization requis Bearer <ACCESS_TOKEN><ACCESS_TOKEN> a été communiqué par le Token Endpoint
Paramètres

Aucun

Réponses
code http content-type réponse
200 application/jwt JSON Web Token contenant les claims transmis par le fournisseur d'identité
400 application/json;charset=utf-8 document JSON décrivant l'origine de l'erreur de format
Format de la réponse en succès

Sur FranceConnect, la réponse est un JWS encodé en base64.

Sur FranceConnect+, la réponse est un JWE chiffré avec la clé de chiffrement publique du fournisseur de service.

JWS userinfo (décodé en base64)
Header

Le header du JWS userinfo indique l'algorithme de signature ainsi que l'id de la clé utilisée par FranceConnect.

{
  "alg": "ES256",
  "typ": "JWT",
  "kid": "sign_20211013_e6e32b46"
}
Payload

Le payload du JWS userinfo contient les claims correspondants aux données personnelles de l'usager.

Sur FranceConnect, les données communiquées sont celles issues du Répertoire national d'identification des personnes physiques (RNIPP).

Sur FranceConnect+, les données communiquées sont celles issues de l'identité de niveau subtantiel / élevé fournie par le fournisseur d'identité.

{
  "sub": "f5b288566867cb435099290b879ea20f5c89ed0a106a99ae050a94f60c369802v1",
  "gender": "female",
  "birthdate": "1962-08-24",
  "birthcountry": "99100",
  "birthplace": "75107",
  "given_name": "Angela Claire Louise",
  "given_name_array": [
    "Angela",
    "Claire",
    "Louise"
  ],
  "family_name": "DUBOIS",
  "email": "wossewodda-3728@yopmail.com",
  "aud": "myclientidforfsp2-low",
  "exp": 1732784733,
  "iat": 1732784673,
  "iss": "https://fcp-low.integ01.dev-franceconnect.fr/api/v2"
}

Logout Endpoint #

Description

Implémente le Logout Endpoint de Openid Connect :

http://openid.net/specs/openid-connect-session-1_0.html#RPLogout

Attention : cet appel doit être réalisé via une redirection dans le navigateur de l'usager, afin d'expirer les cookies de session FranceConnect / FranceConnect+ et du fournisseur d'identité.

Paramètres
nom requis/optionnel type de données description
id_token_hint requis string JWT renvoyé par le endpoint Token Endpoint
state requis string <STATE> Champ obligatoire, généré aléatoirement par le fournisseur de service, que FC+ renvoie tel quel dans la redirection qui suit la déconnexion, pour être ensuite vérifié par le fournisseur de service. Il est utilisé afin d’empêcher l’exploitation de failles CSRF
post_logout_redirect_uri requis string <POST_LOGOUT_REDIRECT_URI> L'URL de redirection vers le fournisseur de service après la déconnexion
Réponses
code http content-type réponse
303 text/html;charset=UTF-8 Redirection vers le fournisseur d'identité pour déconnexion, puis redirection vers le fournisseur de service après déconnexion
Exemple d'appel
GET /api/v2/session/end?id_token_hint=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI3MDRlMDI0Mj
I5MDE1ZDJiZDQ3ZjdhNWU1YWIwNWIzNWM4MzM2YWI0MDNjMzgwMjI5ODVmOGNmYWRjODZmZTkxIiwiYW1yIjpbInB3ZCJdLCJ
hdXRoX3RpbWUiOjE2Njg1MzAzMjYsImFjciI6ImVpZGFzMSIsIm5vbmNlIjoiYWZjODFmZGExZmJiNmQzYzg3NmFmNzVjNzM3
YTEzMDdhMWIyOWJhMDg3M2VmYTA1OWU0NTM1ZDEyMmM5ZGI1YSIsImF0X2hhc2giOiJJVEJTV1J2NW1HRmxxTGQ0Sm5nbnRnI
iwiYXVkIjoiNjkyNWZiODE0M2M3NmVkZWQ0NGQzMmI0MGMwY2IxMDA2MDY1ZjdmMDAzZGU1MjcxMmI3ODk4NTcwNGYzOTk1MC
IsImV4cCI6MTY2ODUzMDM4NiwiaWF0IjoxNjY4NTMwMzI2LCJpc3MiOiJodHRwczovL2ZjYS5pbnRlZzAxLmRldi1hZ2VudGN
vbm5lY3QuZnIvYXBpL3YyIn0.hg1n4WJbzZECwz4VldAybXYreEXJ4fxpSWqDs9V4tTk&
state=3b7bd7fb38ccab89864563f17a89c4cb3bd400164ce828b4cfc2cb01ce8ed9da&
post_logout_redirect_uri=https%3A%2F%2Ffsa1v2.integ01.dev-agentconnect.fr%2Flogout-callback HTTP/1.1
Host: auth.integ01.dev-franceconnect.fr

Redirection vers le fournisseur de service après déconnexion #

Description

Redirection vers le fournisseur de service après déconnexion.

FranceConnect / FranceConnect+ renvoie le state communiqué par le fournisseur de service lors de la demande de déconnexion.

Paramètres
nom requis/optionnel type de données description
state requis string (minimum 32 caractères) <STATE> communiqué par par le fournisseur de service dans l'appel au Logout Endpoint. Cette information est à vérifier par le fournisseur de service, afin d’empêcher l’exploitation de failles CSRF
Exemple d'appel

Exemple de retour vers le fournisseur de service de mock à déconnexion

GET /logout-callback?state=3b7bd7fb38ccab89864563f17a89c4cb3bd400164ce828b4cfc2cb01ce8ed9da HTTP/1.1
Host: fsp1v2.integ01.fcp.fournisseur-de-service.fr

Paramètres d'affichage
Choississez un thème