Configuration Auth0 (Applications serveur + API)
Dans cette section, nous examinerons les configurations d’exampleCo à l’aide dutableau de bord Auth0.
Configuration de l’API
Pour protéger une API, vous devez enregistrer une API en utilisant le tableau de bord Auth0 Suivez les instructions sur enregistrement des API pour configurer l’API des feuilles de temps.
Profil de jeton Web JSON
OAuth 2.0 définit le type de profils, ou dialectes, pour un jeton d’accès. Auth0 prend en charge deux profils différents :
Profil de jeton Auth0
Profil RFC 9068
Le profil par défaut est le profil Auth0 La principale différence entre ces deux profils se trouve au niveau des noms des revendications Le profil Auth0 utilise azp
plutôt que client_id
. Vous pouvez en savoir plus sur les différences en lisant Profils de jetons 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 est utilisée pour vérifier que l’expéditeur du jeton Web JSON (JWT) est bien celui qu’il prétend être et pour s’assurer que le message n’a pas été modifié en cours de route.
Pour créer la signature, vous devez prendre l’en-tête encodé, la charge utile encodée, un secret, l’algorithme spécifié dans l’en-tête et signer le tout. Cet algorithme, qui fait partie de l’en-tête JWT, est celui que vous sélectionnez pour votre API : HS256,
RS256,
ou PS256
.
La pratique la plus sûre, et notre recommandation, est d’utiliserRS256. Voici quelques raisons :
Avec RS256, vous êtes sûr que seul le détenteur de la clé privée (Auth0) peut signer les jetons, tandis que n’importe qui peut vérifier si le jeton est valide à l’aide de la clé publique.
Dans un contexte lié à HS256, si la clé privée est compromise, vous allez devoir déployer à nouveau l’API avec le nouveau secret. Avec RS256, vous pouvez demander un jeton valide pour différentes 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 permissions
Dans les paramètres de votre API, vous devez configurer les champs d’application que les applications peuvent demander pendant l’autorisation. Naviguez jusqu’à l’onglet Permissions.
Dans cette section, vous pouvez ajouter les quatre permissions mentionnées précédemment : batch:upload
, read:timesheets
, create:timesheets
, delete:timesheets
, et approve:timesheets
. Ajoutez également un champ d’application supplémentaire : batch:upload
.

Créer l’application
Lors de la création d’une API dans le tableau de bord Auth0, une application de test pour l’API sera automatiquement générée. Dans le tableau de bord Auth0, naviguez vers la section Application,et vous verrez l’application de test pour l’API feuilles de temps.

Accédez aux paramètres de l’application en sélectionnant l’option de menu à la fin. Renommez l’application en Tâche d’importation de feuilles de temps
.
Pour la tâche cron, vous aurez besoin d’une application de communication entre machines. L’application de test générée lors de la création de l’API a été automatiquement configurée comme une application machine-machine.
Configurer l’accès de l’application à l’API
Enfin, vous devez autoriser l’application à accéder à l’API feuilles de temps. Revenez à la configuration de l’API et sélectionnez l’onglet Applications machine-machine.
Vous verrez l’application Emploi d’importation de feuilles de temps listée, et elle doit avoir accès à l’API, comme indiqué par le commutateur à droite du nom de l’application, qui indique une valeur de Autorisé
. Si le commutateur n’indique pas que l’application est autorisée, il suffit de basculer la valeur du commutateur de Non autorisé
à Autorisé
.
Vous devez également spécifier quelles permissions seront incluses dans les jetons d’accès émis à l’application lorsque celle-ci s’autorise avec Auth0.
Développez les paramètres de l’application en cliquant sur la flèche indiquant le bas à l’extrême droite, et vous verrez la liste des permissions disponibles. La tâche cron nécessitera uniquement le champ d’application batch:upload
car elle se contentera de créer de nouvelles feuilles de temps à partir des entrées de feuilles de temps dans le système externe.
Une fois que vous avez sélectionné la permission batch:upload
, enregistrez les paramètres en cliquant sur le bouton Mettre à jour .

Maintenant que nous avons défini notre solution et discuté des configurations nécessaires du côté d’Auth0, nous pouvons passer à la mise en œuvre.