Skip to main content
Dans cette section, nous examinerons les configurations d’ExampleCo dans l’Auth0 Dashboard.

Configurer l’API

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

Profil de JSON Web Token

définit les types de profils, ou dialectes, d’un . Auth0 prend en charge deux profils différents :
  • Auth0 token profile
  • RFC 9068 profile
Par défaut, c’est le profil Auth0 qui est utilisé. La principale différence entre ces deux profils réside dans les noms des claims. Le profil Auth0 utilise azp plutôt que client_id. Pour en savoir plus sur ces différences, consultez Access Token Profiles.

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’émetteur du est bien celui qu’il prétend être et à s’assurer que le message n’a pas été modifié en cours de route.
La signature fait partie d’un JWT. Si la structure d’un JWT ne vous est pas familière, veuillez consulter 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 indiqué 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 pratique la plus sécuritaire, et celle que nous recommandons, est d’utiliser RS256. En 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 le secret est compromis, 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 effectuer une rotation de clé 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 également un scope supplémentaire : batch:upload.
Dans le cadre de ce document, nous nous intéresserons uniquement au 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.
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 automatiquement générée. 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 tout au bout. Renommez l’application Timesheets Import Job. Pour le cron job, vous aurez besoin d’une Machine-to-Machine Application. L’application de test générée lors de la création de l’API a été automatiquement configurée comme une Machine-to-Machine Application.

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 Machine to Machine Application. Vous verrez l’application Timesheets Import Job dans la liste, et elle devrait avoir accès à l’API, comme l’indique le commutateur à droite du nom de l’application, qui affiche la valeur Authorized. Si ce n’est pas le cas, il suffit de faire passer la valeur du commutateur de Unauthorized à Authorized. Vous devrez également préciser quels scopes seront inclus dans les jetons d’accès émis pour l’application lorsque celle-ci s’autorise auprès d’Auth0. Développez les paramètres de l’application en cliquant sur la flèche vers le bas tout à fait à 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 Update.
Dashboard - Applications - APIs - Machine to Machine Applications - Authorize
Maintenant que nous avons conçu notre solution et examiné les configurations nécessaires du côté d’Auth0, nous pouvons passer à la mise en œuvre.