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
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.
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:upload, read:timesheets, create:timesheets, delete: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.
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.
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 valeurAuthorized. 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.
