Skip to main content
Dans cette section du tutoriel, nous examinerons en profondeur notre API et l’application machine à machine qui y est associée. Pour reprendre depuis le début, consultez Applications serveur avec API.
Par souci de simplicité, nous concentrerons notre mise en œuvre uniquement sur l’authentification et l’autorisation. Comme vous le verrez dans les exemples, l’entrée de feuille de temps fournie sera codée en dur, et l’API n’enregistrera pas cette entrée de feuille de temps. Elle se contentera plutôt de renvoyer certaines informations.

Définir les points de terminaison de l’API

Un point de terminaison d’API est un URI statique qui représente une ressource (une collection de données). Par exemple, l’API d’un restaurant peut avoir des points de terminaison comme /orders et /customers. Une application qui se connecte à cette API peut effectuer des opérations CRUD (créer, lire, mettre à jour, supprimer) en envoyant une requête à un point de terminaison d’API avec la méthode HTTP correspondante (POST, GET, PUT, PATCH ou DELETE). Pour l’API Timesheets d’ExampleCo, vous devrez configurer un point de terminaison pour créer des entrées de feuille de temps.
Si l’API traite la requête avec succès, elle renvoie une réponse avec le code d’état HTTP 201 Created et un corps contenant un objet JSON doté d’une propriété message qui décrit la nouvelle feuille de temps :
Consultez la mise en œuvre en Node.js.

Sécuriser les points de terminaison d’API

Pour sécuriser vos points de terminaison d’API, vous devez implémenter une fonction middleware dans votre application API pour gérer les jetons. Cette fonction vérifie si un jeton a été inclus dans la requête API, valide le jeton, puis confirme que les scopes requis pour exécuter l’action demandée sont présentes. Si tous les critères sont remplis, l’application API renvoie le message mentionné précédemment. En cas de problème avec le fourni (ou s’il n’est pas fourni du tout), l’application API envoie une réponse avec le code d’état HTTP 401 Unauthorized. Consultez la mise en œuvre dans Node.js.

Obtenir un jeton d’accès

Pour obtenir un jeton d’accès sans utiliser notre exemple de mise en œuvre pour l’application, envoyez une requête au point de terminaison Obtenir un jeton de l’API d’authentification Auth0 avec la charge utile suivante :

Vérifiez les permissions de l’application

Nous avons maintenant sécurisé le point de terminaison de notre API avec un jeton d’accès, mais nous n’avons toujours pas vérifié que le processus qui appelle l’API a les droits nécessaires pour ajouter une nouvelle entrée de feuille de temps. Comme nous l’avons vu plus tôt, chaque jeton d’accès peut inclure une liste des permissions accordées à l’application. Ces permissions sont définies à l’aide du paramètre de requête scope. Pour savoir comment le configurer, consultez le paragraphe Configurer les scopes. Pour notre point de terminaison, nous exigerons le scope batch:upload. Consultez la mise en œuvre dans Node.js.

Mettre en place l’application machine à machine

Dans cette section, nous verrons comment mettre en place une application machine à machine pour notre scénario.

Obtenir un jeton d’accès

Nous allons commencer par appeler le point de terminaison d’API Auth0 /oauth/token pour obtenir un jeton d’accès. Pour ce faire, nous aurons besoin des valeurs de configuration suivantes, que vous trouverez dans les paramètres de l’application :
  • Domain : le domaine Auth0 ainsi que l’identifiant de votre tenant. Cette valeur fera partie de l’URL de l’API : https://{yourTenant}/oauth/token.
  •  : identifiant de l’API.
  •  : Client ID de l’application Auth0.
  •  : Client Secret de l’application Auth0.
Notre mise en œuvre doit envoyer une requête POST au point de terminaison https://{yourDomain}/oauth/token avec une charge utile au format suivant :
Pour en savoir plus, consultez Appelez votre API à l’aide du Client Credentials Flow. Voir la mise en œuvre en Python.

Appeler l’API

Maintenant que nous avons un jeton d’accès qui comprend les scopes valides, nous pouvons appeler notre API. Pour ce faire, nous allons :
  • Créer une entrée de feuille de temps codée en dur au format JSON.
  • Ajouter le jeton d’accès dans l’en-tête Authorization de notre requête.
  • Envoyer la requête HTTP POST.
  • Analyser la réponse et l’afficher dans le terminal (facultatif).
Consultez la mise en œuvre en Python.