Implémentation de l’application (applications serveur + API)
Implémentation de l’application pour le scénario d’architecture Serveur + API
Dans cette section du tutoriel, nous examinerons en détail notre API et l’application Machine-to-Machine qui lui est associée. Si vous souhaitez repartir du début, consultez Applications serveur avec API.
Par souci de simplicité, notre implémentation portera uniquement sur l’authentification et l’autorisation. Comme vous le verrez dans les exemples, l’entrée de feuille de temps sera codée en dur, et l’API ne la conservera pas. Elle renverra simplement une partie des informations.
Un point de terminaison est un URI statique qui représente une ressource (collection de données).Par exemple, l’API d’un restaurant pourrait 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 appelant un point de terminaison 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 avec une propriété message qui décrit la feuille de temps nouvellement créée :
{"message": "Created timesheet 14 for employee 007."}
Pour sécuriser les points de terminaison de votre API, vous devez implémenter une fonction de 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 vérifie que les scopes requis pour exécuter l’action demandée sont présents.Si tous les critères sont remplis, l’application API renvoie le message mentionné précédemment. S’il y a le moindre problème avec le fourni (ou s’il n’est pas fourni du tout), l’application API renvoie une réponse avec le code d’état HTTP 401 Unauthorized.Consultez l’implémentation dansNode.js.
Pour obtenir un jeton d’accès sans utiliser notre exemple d’implémentation d’application, appelez le point de terminaison Get Token de l’Auth0 Authentication API avec le payload suivant :
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 publier 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 la section Configurer les scopes.Pour notre point de terminaison, nous exigerons le scope batch:upload.Consultez l’implémentation dansNode.js.
Nous allons commencer par appeler le point de terminaison d’API Auth0 /oauth/token pour obtenir un jeton d’accès.Pour ce faire, vous aurez besoin des valeurs de configuration suivantes, que vous trouverez dans les paramètres de l’application :
Domaine : le domaine Auth0, qui correspond aussi à l’identifiant de votre locataire. Cette valeur fera partie de l’URL de l’API : https://{yourTenant}/oauth/token.
: identifiant d’API.
: ID client de l’application Auth0.
: Secret client de l’application Auth0.
Notre implémentation doit envoyer une requête POST au point de terminaison https://{yourDomain}/oauth/token avec un payload au format suivant :