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 :
{
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 :
{
"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.