Pour des raisons de simplicité, notre implémentation se concentrera uniquement sur l’authentification et l’autorisation. Comme vous le verrez dans les exemples, l’entrée de la feuille de temps sera codée en dur et l’API ne conservera pas l’entrée de la feuille de temps. Au lieu de cela, elle renverra simplement 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 (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 |
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 :
Voir l’implémentation dans Node.js.
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’étatHTTP 401 Unauthorized
.
Voir l’implémentation dansNode.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 :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êtescope
. 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 dansNode.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
. - : Identifiant de l’API
- ID client : ID client de l’application Auth0.
- Secret client : Secret client de l’application Auth0.
POST
vers le point de terminaison https://{yourDomain}/oauth/token
avec une charge utile au format suivant :
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).