Applications mobiles avec API

Dans ce scénario, nous allons créer une API de feuille de temps pour une entreprise fictive appelée ExampleCo. L’API permettra de gérer les entrées des feuilles de temps d’un employé ou d’un sous-traitant.

Nous allons également créer une application mobile qui sera utilisée pour visualiser et enregistrer les entrées des feuilles de temps dans la base de données centralisée des feuilles de temps à l’aide de l’API.

TL;DR

  • Auth0 fournit l’authentification et l’autorisation API comme moyen de sécuriser l’accès aux points de terminaison API (voir Authentification et autorisation API)
  • Pour autoriser l’utilisateur d’une application mobile et accorder l’accès à l’API, Auth0 prend en charge le Flux de code d’autorisation avec Proof Key for Code Exchange (PKCE) (Voir Proof Key for Code Exchange (PKCE))
  • L’application mobile et l’API doivent être configurées dans le Auth0 Dashboard (voir Auth0 Configuration)
  • Les autorisations des utilisateurs peuvent être appliquées à l’aide d’Authorization Extension (voir Configurer Authorization Extension)
  • L’API est sécurisée en s’assurant qu’un Access Token valide est transmis dans l’en-tête d’autorisation HTTP lorsque des appels sont effectués à l’API (voir Mettre en œuvre l’API)
  • La trousse SDK Auth0.Android peut être utilisée pour autoriser l’utilisateur de l’application mobile et obtenir un jeton d’accès valide qui peut être utilisé pour appeler l’API (voir Autoriser l’utilisateur)
  • L’application mobile peut récupérer les informations relatives au profil utilisateur en décodant le jeton d’ID (voir Obtenir le profil utilisateur)
  • Les éléments de l’interface utilisateur peuvent être affichés de manière conditionnelle en fonction de la portée accordée à l’utilisateur (voir Afficher les éléments de l’interface utilisateur de manière conditionnelle en fonction de la portée)
  • L’application mobile fournit le jeton d’accès dans l’en-tête d’autorisation HTTP lorsqu’elle fait des appels à l’API (voir Appeler l’API)
  • Le jeton d’accès de l’utilisateur de l’application mobile peut être renouvelé pour s’assurer que l’utilisateur n’a pas à se connecter à nouveau au cours d’une session (voir Renouveler le jeton) :::

Le principe

ExampleCo est une société de conseil en démarrage. Elle emploie actuellement une centaine de personnes et confie également plusieurs activités à des sous-traitants externes. Tous les employés et les contractants externes sont tenus de remplir leurs feuilles de temps chaque semaine.

La société à développé une application de feuilles de présence, scénario que nous avons abordé dans Authentification unique pour les applications Web classiques. Les employés internes utilisent cette application Web pour remplir leurs feuilles de temps, mais l’entreprise souhaite une application mobile pour que les employés et les sous-traitants puissent l’utiliser lorsqu’ils ne sont pas dans les locaux de l’entreprise. L’application sera utilisée pour enregistrer les entrées des feuilles de temps et envoyer les données à la base de données centralisée des feuilles de temps à l’aide de l’API. L’application permettra également aux responsables d’approuver les entrées de feuilles de temps.

Objectifs et exigences

ExampleCo souhaite mettre en place une solution flexible. Il y a potentiellement plusieurs employés et sous-traitants qui devraient pouvoir enregistrer des entrées de feuilles de temps, ainsi que des processus par lots qui peuvent télécharger des entrées de feuilles de temps à partir d’autres systèmes externes.

L’entreprise a donc décidé de développer une API de feuilles de temps unique qui sera utilisée pour enregistrer les heures non seulement par cette application mobile, mais aussi par toutes les autres applications. L’entreprise souhaite mettre en place une architecture de sécurité suffisamment souple pour s’adapter à cette situation. ExampleCo veut s’assurer qu’une grande partie du code et de la logique commerciale de l’application peut être partagée entre les différentes applications.

Seuls les utilisateurs et les applications autorisés peuvent accéder à l’API de feuilles de temps.

En savoir plus