Utilisation de l'API

Le contrôle d'accès

L'Authentification / autorisation à l'application web SISERI repose sur la mise en œuvre de OpenIDConnect. Ce dernier est un protocole d'authentification basé sur le OAuth 2.0, lui-même étant un protocole de délégation d'accès utilisé typiquement pour contrôler l'accès à des API REST.

Le fournisseur d'identité supporte OpenID Connect

​Diagramme 1 : diagramme de séquence authentification (OIDC)​

La première étape consiste à demander l'autorisation pour accéder à l'application SISERI via une authentification avec login et mot de passe (Conformément au protocole OIDC) :

Demande d'autorisation/ authentification :

Paramètres

Name Type Required Valeur Description

client_id

 

String true siseri-front  
username String true {login/email}  
password String true {mot de passe}  
grant_type String true password  

Réponse

Code de retour Description Schema
200 Vous êtes connecté avec 2 tokens
401 Couple identifiant/mot de passe invalide No Content

Appel de l'API SISERI à l'aide d'un token

L'import/Export de doses proposés à l'OA via l'API nécessite un token (cf paragraphe précédent)

L'appel à l'API est documenté dans le swagger https://siseri.irsn.fr/siseri/swagger-ui/index.html#/

Diagramme 2 : diagramme d'architecture des interfaces asynchrones d'import​

1. Authentification : 

2. Récupération du token : à partir de la réponse de l'authentification.

3. Envoi de fichier :

  • Endpoint doses (*) :  POST / URI « api/import/dose/v1/habilitation/{nohabilitation}
  • Endpoint travailleurs (*) : POST / URI « api/import/travailleur/v1/import

4. Récupération de l’identifiant unique de la requête d’import « uuid » :

On devrait le récupérer à partir de la réponse.
Par abus de langage, on a utilisé aussi le terme « idAppel » pour l’identifiant unique « uuid ».

5.Consulter l'état d'avancement :

  • Endpoint doses (*) : GET/ URI « api/import/dose/v1/status/{uuid} »
  • Endpoint travailleurs (*) : GET / URI « api/import/travailleur/v1/status/{uuid} »
  • Endpoint doses (*) :  POST / URI « api/import/dose/v1/rapport/{isErreur}
  • Endpoint travailleurs (*) : POST / URI « api/import/travailleur/v1/rapport/{isErreur}

6. Récupérer le rapport d'éxécution

  • Endpoint doses (*) :  POST / URI « api/import/dose/v1/rapport/{isErreur}
  • Endpoint travailleurs (*) : POST / URI « api/import/travailleur/v1/rapport/{isErreur}

{isErreur} c'est un Boolean pour préciser la nature du rapport (les lignes en erreur : true / les lignes importées : false)

(*) pour plus des détails, veuillez consulter la documentation swagger