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_tokeniss
pour valider l'émetteur du tokenaud
pour valider le destinataire du tokennonce
pour valider la correspondance avec la requête authorize
Il contient aussi des données indiquant le niveau de garantie de l'identité fournie :
acr
pour une identité niveau faible, substantiel ou élevéamr
indique le mode d'authentification sur le fournisseur d'identité (utilisation ou non d'un double facteur)
{
"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> où <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