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é 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é
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.