Passer au contenu principal
Dans cette section, nous passerons en revue la configuration d’ExampleCo dans l’Auth0 Dashboard.

Configurer l’API

Pour protéger une API, vous devez l’enregistrer à l’aide de l’. Suivez les instructions de Enregistrer des API pour configurer l’API Timesheets.

Profil JSON Web Token

définit les types de profils, ou dialectes, d’un . Auth0 prend en charge deux profils différents :
  • Profil de jeton Auth0
  • Profil RFC 9068
Par défaut, le profil Auth0 est utilisé. La principale différence entre ces deux profils tient aux noms des revendications. Le profil Auth0 utilise azp plutôt que client_id. Pour en savoir plus sur les différences, consultez Profils de jeton d’accès.

Algorithmes de signature

Lorsque vous créez une API, vous devez sélectionner l’algorithme avec lequel vos jetons seront signés. La signature sert à vérifier que l’expéditeur du est bien celui qu’il prétend être et à s’assurer que le message n’a pas été modifié pendant le transit.
La signature fait partie d’un JWT. Si vous ne connaissez pas bien la structure d’un JWT, consultez la structure d’un JSON Web Token.
Pour créer la signature, vous devez prendre l’en-tête encodé, le payload encodé, un secret, l’algorithme précisé dans l’en-tête, puis signer le tout. Cet algorithme, qui fait partie de l’en-tête du JWT, est celui que vous sélectionnez pour votre API : HS256, RS256, ou PS256. La méthode la plus sécuritaire, et celle que nous recommandons, est d’utiliser RS256. Voici quelques raisons :
  • Avec RS256, vous avez l’assurance que seul le détenteur de la clé privée (Auth0) peut signer des jetons, tandis que n’importe qui peut vérifier la validité du jeton à l’aide de la clé publique.
  • Avec HS256, si la clé privée est compromise, vous devrez redéployer l’API avec le nouveau secret. Avec RS256, vous pouvez demander un jeton valide pour plusieurs audiences.
  • Avec RS256, vous pouvez mettre en œuvre la rotation des clés sans avoir à redéployer l’API avec le nouveau secret.

Configurer les Scopes

Dans les paramètres de votre API, vous devrez configurer les Scopes que les applications peuvent demander lors de l’autorisation. Accédez à l’onglet Permissions. Dans cette section, vous pouvez ajouter les quatre scopes mentionnés précédemment : batch:uploadread:timesheetscreate:timesheetsdelete:timesheets et approve:timesheets. Ajoutez aussi un scope supplémentaire : batch:upload.
Dans le cadre de ce document, nous nous concentrerons uniquement sur le scope batch:upload, car c’est le seul requis par la tâche cron. Toutefois, par souci d’exhaustivité, nous ajoutons les scopes nécessaires qui seront requis par de futures applications.
Auth0 Dashboard > APIs > Permissions

Créer l’application

Lors de la création d’une API dans l’Auth0 Dashboard, une application de test pour l’API est générée automatiquement. Dans l’Auth0 Dashboard, accédez à la section Applications, et vous verrez l’application de test pour l’API Timesheets.
undefined
Accédez aux paramètres de l’application en sélectionnant l’option de menu à l’extrémité droite. Renommez l’application en Timesheets Import Job. Pour la tâche cron, vous aurez besoin d’une application Machine-to-Machine. L’application de test générée lors de la création de l’API a été automatiquement configurée comme application Machine-to-Machine.

Configurer l’accès de l’application à l’API

Enfin, vous devez autoriser l’application à accéder à l’API Timesheets. Retournez à la configuration de l’API, puis sélectionnez l’onglet Applications machine à machine. Vous verrez l’application Timesheets Import Job dans la liste, et elle devrait avoir accès à l’API, comme l’indique le bouton bascule à droite du nom de l’application, qui affiche la valeur Authorized. Si ce n’est pas le cas, faites simplement passer la valeur du bouton bascule de Unauthorized à Authorized. Vous devrez également préciser quels scopes seront inclus dans les jetons d’accès émis à l’application lorsque celle-ci s’authentifie auprès d’Auth0. Développez les paramètres de l’application en cliquant sur la flèche vers le bas tout à droite, et vous verrez la liste des scopes disponibles. La tâche cron n’aura besoin que du scope batch:upload, puisqu’elle créera simplement de nouvelles feuilles de temps à partir des entrées de feuille de temps du système externe. Une fois le scope batch:upload sélectionné, enregistrez les paramètres en cliquant sur le bouton Mettre à jour.
Auth0 Dashboard - Applications - APIs - Applications machine à machine - Autoriser
Maintenant que nous avons conçu notre solution et examiné les configurations requises du côté d’Auth0, nous pouvons passer à l’implémentation.