Implémentation des applications (Applications serveur + API)

Dans cette section du tutoriel, nous allons examiner en détail notre API et l’application de communication entre machines qui lui est associée. Pour commencer, lisez Applications serveur avec API.

Définir les points de terminaison de l’API

Un point de terminaison d’API est un URI statique qui représente une ressource (collection de données).

Par exemple, une API de restaurant pourrait avoir des points de terminaison tels que /orders et /customers. Une application qui se connecte à cette API peut effectuer des opérations CRUD (create, read, update, delete) en appelant un point de terminaison d’API à l’aide de la méthode HTTP associée (POST, GET, PUT, PATCH ou DELETE).

Pour l’API Timesheets (feuilles de temps) de ExampleCo, vous devrez configurer un point de terminaison pour pouvoir créer des entrées dans les feuilles de temps.

Méthode HTTP Point de terminaison API Description
POST /timesheets/upload Crée une nouvelle entrée de feuille de temps

{
  'user_id': '007',
  'date': '2017-05-10T17:40:20.095Z',
  'project': 'StoreZero',
  'hours': 5
}

Was this helpful?

/

Si l’API traite la demande avec succès, elle envoie une réponse avec un code d’état HTTP 201 Created et un corps contenant un objet JSON avec une propriété message qui décrit la feuille de temps nouvellement créée :

{
"message": "Created timesheet 14 for employee 007."
}

Was this helpful?

/

Sécuriser les points de terminaison de l’API

Pour sécuriser le ou les points de terminaison de votre API, vous devez implémenter une fonction logiciel médiateur au sein de votre application API afin de gérer les jetons. Cette fonction vérifie si un jeton a été inclus dans la demande d’API, valide le jeton, puis confirme si la ou les permissions nécessaires à l’exécution de l’action demandée sont présentes.

Si tous les critères sont remplis, l’application API répond par le message indiqué précédemment. En cas de problème avec le jeton d’accès 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.

Voir l’implémentation dans Node.js.

Obtenir un jeton d’accès

Pour obtenir un jeton d’accès sans utiliser notre exemple d’implémentation d’application, appelez le point de terminaison Obtenir un jeton de l’Authentication API Auth0 avec la charge utile suivante :

codeblockOld.header.login.configureSnippet
{
  audience: "{yourApiIdentifier}",
  grant_type: "client_credentials",
  client_id: "${account.client_id}",
  client_secret: "${account.client_secret}"
}

Was this helpful?

/

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 ne nous sommes toujours pas assurés que le processus appelant l’API a le droit de publier une nouvelle entrée de feuille de temps.

Comme indiqué précédemment, chaque jeton d’accès peut inclure une liste de permissions accordées à l’application. Ces autorisations sont définies à l’aide du paramètre de requête scope. Consultez le paragraphe Configurer les permissions pour savoir comment procéder à cette configuration.

Pour notre point de terminaison, nous aurons besoin de la permission batch:upload.

Voir l’implémentation dans Node.js.

Implémentation de l’application de communication entre machines

Dans cette section, nous verrons comment nous pouvons implémenter une application entre machines pour notre scénario.

Obtenir un jeton d’accès

Nous commencerons par invoquer le point de terminaison de l’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 votre application :

  • Domaine : Domaine Auth0 ainsi que votre identifiant de locataire. Cette valeur figure dans l’URL de l’API : https://{yourTenant}/oauth/token.

  • Audience : Identifiant de l’API

  • ID client : ID client de l’application Auth0.

  • Secret client : Secret client de l’application Auth0.

Notre implémentation doit effectuer une opération POST  vers le point de terminaison https://{yourDomain}/oauth/token  avec une charge utile au format suivant :

codeblockOld.header.login.configureSnippet
{
  "audience": "{yourApiIdentifier}",
  "grant_type": "client_credentials",
  "client_id": "${account.client_id}",
  "client_secret": "${account.client_secret}"
}

Was this helpful?

/

Pour en savoir plus, consultez Appeler votre API à l’aide du Flux des identifiants client.

Voir l’implémentation dans Python.

Invoquer l’API

Maintenant que nous disposons d’un jeton d’accès qui inclut les permissions valides, nous pouvons invoquer notre API.

Pour ce faire, nous allons effectuer les opérations suivantes :

  • Établir une entrée de feuille de temps codée en dur au format JSON.

  • Ajouter le jeton d’accès en tant qu’en-tête Authorization à notre demande.

  • Effectuer la demande HTTP POST.

  • Analyser la réponse et l’imprimer dans le terminal (facultatif).

Voir l’implémentation dans Python.