Fonctionnement d'une API FranceConnectée
En tant que fournisseur de données de FranceConnect ou de FranceConnect+, il est nécessaire d'implémenter les étapes suivantes :
- identification de la plateforme qui a émis l'access token;
- vérification de la validité de l'access token;
- vérification des scopes afin de s'assurer que l'access token donne bien accès aux ressources demandées
- réconciliation des données d'identités entre celles renvoyées dans le jeton d'introspection et celles detenues par le fournisseur de données.
Le diagramme de séquence ci-dessous décrit le fonctionnement d'une fournisseur de données et les moments où doivent intervenir les étapes décrites ci-dessus.
sequenceDiagram autonumber participant FS as Fournisseur de service participant FD as Fournisseur de données participant FC as FranceConnect participant FCP as FranceConnect+ FS->>FD: demande de ressources FD->>FD: identification de la plateforme qui a émis l'access token alt FranceConnect FD->>FC : appel au service d'introspection FC-->>FD : identité + scopes + fs + acr else FranceConnect+ FD->>FCP : appel au service d'introspection FCP-->>FD : identité + scopes + fs + acr end FD->>FD: vérification validité de l'access token alt access token non valide FD-->>FS : access token invalide else access token valide FD->>FD: vérification des scopes alt les scopes permettent d'accéder à la ressource FD->>FD : reconciliation des données d'identités FD-->>FS : ressources demandées else les scopes ne permettent pas d'accéder à la ressource FD-->>FS : autorisations insuffisantes end end
Identification de la plateforme #
Les deux plateformes FranceConnect et FranceConnect+ mettent à disposition des services d'instrospection permettant à des fournisseurs de données d'implémenter des API FranceConnectées.
Le fournisseur de données peut choisir d'accepter des jetons provenant d'une seule, ou des deux plateformes. Dans tous les cas, il est nécessaire d'identifier la plateforme qui a émis le jeton envoyé par le fournisseur de services. Cela permettra ensuite d'identifier le service d'introspection à appeler pour vérifier la validité du jeton.
Vérification de la validité du jeton #
Une fois le service d'introspection appelé, il est nécessaire de s'assurer de la validité du jeton. Cette information est disponible dans la réponse du service d'introspection.
Si le jeton n'est pas valide, le fournisseur de données ne doit pas renvoyer les ressources demandées au fournisseur de service.
Vérification des scopes #
Il est de la responsabilité du fournisseur de données de s'assurer que les scopes associés à l'access token permettent bien d'accéder aux ressources demandées. Le service d'introspection retourne la liste des scopes qui ont été demandés et autorisés par l'usager lors de son authentification au travers de FranceConnect ou FranceConnect+.
Exemple de vérification des scopes #
Un fournisseur de données expose deux ressources : ressource_A et ressource_B et dispose de trois scopes : scope_A, scope_B et scope_C.
Scopes | ressources accessibles |
---|---|
scope_A | ressource_A |
scope_B | ressource_B |
scope_C | ressource_A et ressource_B |
- un fournisseur de service demande à accéder à la ressource A avec un acces_token ayant le scope_A. L'accès à la ressource est autorisé.
- un fournisseur de service demande à accéder à la ressource B avec un acces_token ayant le scope_C. L'accès à la ressource est autorisé.
- un fournisseur de service demande à accéder à la ressource A avec un acces_token ayant le scope_B. L'accès à la ressource n'est pas autorisé.
- un fournisseur de service demande à accéder à la ressource A avec un acces_token sans scope. L'accès à la ressource n'est pas autorisé.
Réconciliation des données d'identité #
Le service d'instrospection retourne les données d'identité de la personne. Ces données sont les suivantes :
- nom de naissance;
- prénoms;
- sexe;
- date de naissance;
- pays de naissance;
- ville de naissance si le pays de naissance est la France.
A partir de ces données, le fournisseur doit faire le lien avec les ressources.