Chiffrement et Signature avec FranceConnect+
Signature des jetons par FranceConnect+ #
Les jetons sont signés par FranceConnect+ en utilisant ses propres clés de chiffrement, afin de permettre au fournisseur de service de s'assurer que ces deux jetons sont bien émis par FranceConnect+. Le fournisseur de service doit donc vérifier la signature des jetons en ayant pris le soin de récupérer les clés publiques de signature de FranceConnect+.
La signature permet de garantir l'intégrité et l'authenticité des données échangées.
Algorithme de signature de jetons utilisable par FranceConnect+
-
Asymétrique :
- ES256 (EC + SHA256)
Exposition des clés de signature
Les clés publiques de signature de FranceConnect+ sont changées régulièrement et sont disponibles via la JWKS URL présente dans les méta-data de la Discovery URL à l'adresse suivante :
Environnement | adresses du endpoint |
---|---|
intégration | https://auth.integ01.dev-franceconnect.fr/api/v2/jwks |
production | https://auth.franceconnect.gouv.fr/api/v2/jwks |
Chiffrement des jetons par FranceConnect+ #
Les jetons sont chiffrés par FranceConnect+ en utilisant une des clés publiques de chiffrement mises à disposition par le Fournisseur de Service, afin de s'assurer que lui seul puisse consulter les informations présentes dans ces jetons. Le fournisseur de service doit mettre à disposition de FranceConnect+ ses clés publiques de chiffrement.
Le chiffrement permet de garantir la confidentialité des données échangées.
Algorithme de chiffrement des jetons (jwe+jws) :
- Hybride :
- RSA-OEAP + AES256-GCM
- ECDH-ES + AES256-GCM
Exposition des clés de chiffrement
Les clés publiques de chiffrement du fournisseur de service doivent être exposées par lui-même à FranceConnect+, sous la forme d'une URL au format JWK.
Cinématique de récupération de l'IDToken #
sequenceDiagram autonumber participant FS as Fournisseur de Service participant FC as FranceConnect+ FS->>+FC: POST <FC_URL>/api/v2/token FC->>+FS: GET FS public encryption keys FS-->>-FC: HTTP 200 FS public encryption keys FC-->>-FS: HTTP 200 Id Token + Access Token FS->>FS: déchiffrement de l'Id Token FS->>+FC: GET /api/v2/jwks FC-->>-FS: HTTP FC+ public signing keys FS->>FS: validation de la signature de l'Id Token
- Le fournisseur de service appelle le endpoint /token
- FranceConnect+ demande au fournisseur de service sa clé publique de chiffrement
- Le fournisseur de service renvoie sa clé de chiffrement
- FranceConnect+ renvoie au fournisseur de service l'ID Token chiffré et signé
- Le fournisseur de service déchiffre l'ID Token
- Le fournisseur de service demande à FranceConnect+ ses clés publiques de signature
- FranceConnect+ renvoie ses clés publiques de signature
- Le fournisseur de service vérifie que la signature de l'ID Token est valide.
Cinématique de récupération du UserInfo #
La cinématique est similaire à celle de la récupération de l'ID Token
sequenceDiagram autonumber participant FS as Fournisseur de Service participant FC as FranceConnect+ FS->>+FC: POST <FC_URL>/api/v2/userinfo FC->>+FS: GET FS public encryption keys FS-->>-FC: HTTP 200 FS public encryption keys FC-->>-FS: HTTP 200 Id Token + Access Token FS->>FS: déchiffrement de l'Id Token FS->>+FC: GET /api/v2/jwks FC-->>-FS: HTTP FC+ public signing keys FS->>FS: validation de la signature de l'Id Token
- Le fournisseur de service appelle le endpoint /userinfo
- FranceConnect+ demande au fournisseur de service sa clé publique de chiffrement
- Le fournisseur de service renvoie sa clé de chiffrement
- FranceConnect+ renvoie au fournisseur de service l'ID Token chiffré et signé
- Le fournisseur de service déchiffre la réponse du /userinfo
- Le fournisseur de service demande à FranceConnect+ ses clés publiques de signature
- FranceConnect+ renvoie ses clés publiques de signature
- Le fournisseur de service vérifie que la signature de la réponse du /userinfo est valide.
Renouvellement des clés de signature
Pour des raisons de sécurité, Les clés de signature de FranceConnect+ sont régulièrement renouvelées. Celles-ci doivent être récupérées régulièrement par le fournisseur de service.