> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-feat-one-trust-integration.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration Auth0 (Applications serveur + API)

> Configuration Auth0 pour le scénario d’architecture serveur + API

Dans cette section, nous examinerons les configurations d’exampleCo à l’aide du[tableau de bord Auth0](https://manage.auth0.com/#).

## 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](/docs/fr-ca/get-started/auth0-overview/set-up-apis) pour configurer l’API des feuilles de temps.

### Profil de jeton Web JSON

<Tooltip href="/docs/fr-ca/glossary?term=oath2" tip="OAuth 2.0
Cadre d’applications d’autorisation qui définit les protocoles d’autorisation et les flux de production." cta="Voir le glossaire">OAuth 2.0</Tooltip> 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](/docs/fr-ca/secure/tokens/access-tokens/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 est utilisée pour vérifier que l’expéditeur du jeton Web JSON (<Tooltip href="/docs/fr-ca/glossary?term=json-web-token" tip="Jeton Web JSON (JWT)
Format standard de jeton d’ID (et souvent de jeton d’accès) utilisé pour représenter en toute sécurité des demandes entre deux parties." cta="Voir le glossaire">JWT</Tooltip>) est bien celui qu’il prétend être et pour s’assurer que le message n’a pas été modifié en cours de route.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  La signature fait partie d’un JWT. Si vous n’êtes pas familier avec la structure des JWT, veuillez consulter [Structure du jeton Web JSON](/docs/fr-ca/secure/tokens/json-web-tokens/json-web-token-structure).
</Callout>

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’utiliser**RS256**. 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`.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Dans le cadre de ce document, nous ne nous intéresserons qu’à la permission `batch:upload` car c’est tout ce qui est requis par la tâche cron. Cependant, par souci d’exhaustivité, nous ajoutons les permissions nécessaires qui seront requises par les applications futures.
</Callout>

<Frame>
  <img src="https://mintcdn.com/docs-dev-feat-one-trust-integration/zZA8afkXluB-BQ7B/docs/images/fr-ca/cdy7uua7fh8z/73FeuGyODcu3q7PKjLaQOO/f3bbc7875e527a6a32ae66b1e1432978/Timesheets_API_-_Permissions_-_French.png?fit=max&auto=format&n=zZA8afkXluB-BQ7B&q=85&s=af468d150a3b432269059a346440f5ed" alt="Dashboard > API > Permissions" data-og-width="1052" width="1052" data-og-height="907" height="907" data-path="docs/images/fr-ca/cdy7uua7fh8z/73FeuGyODcu3q7PKjLaQOO/f3bbc7875e527a6a32ae66b1e1432978/Timesheets_API_-_Permissions_-_French.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-feat-one-trust-integration/zZA8afkXluB-BQ7B/docs/images/fr-ca/cdy7uua7fh8z/73FeuGyODcu3q7PKjLaQOO/f3bbc7875e527a6a32ae66b1e1432978/Timesheets_API_-_Permissions_-_French.png?w=280&fit=max&auto=format&n=zZA8afkXluB-BQ7B&q=85&s=b44fa03145f01a3174521e4e340ce9df 280w, https://mintcdn.com/docs-dev-feat-one-trust-integration/zZA8afkXluB-BQ7B/docs/images/fr-ca/cdy7uua7fh8z/73FeuGyODcu3q7PKjLaQOO/f3bbc7875e527a6a32ae66b1e1432978/Timesheets_API_-_Permissions_-_French.png?w=560&fit=max&auto=format&n=zZA8afkXluB-BQ7B&q=85&s=5de78c71ff3095cb100e02783718d6d9 560w, https://mintcdn.com/docs-dev-feat-one-trust-integration/zZA8afkXluB-BQ7B/docs/images/fr-ca/cdy7uua7fh8z/73FeuGyODcu3q7PKjLaQOO/f3bbc7875e527a6a32ae66b1e1432978/Timesheets_API_-_Permissions_-_French.png?w=840&fit=max&auto=format&n=zZA8afkXluB-BQ7B&q=85&s=eb7a4f9f6271131d05e1f266c3bf3a80 840w, https://mintcdn.com/docs-dev-feat-one-trust-integration/zZA8afkXluB-BQ7B/docs/images/fr-ca/cdy7uua7fh8z/73FeuGyODcu3q7PKjLaQOO/f3bbc7875e527a6a32ae66b1e1432978/Timesheets_API_-_Permissions_-_French.png?w=1100&fit=max&auto=format&n=zZA8afkXluB-BQ7B&q=85&s=75deb3f4cae63ee229bb06ee765cc012 1100w, https://mintcdn.com/docs-dev-feat-one-trust-integration/zZA8afkXluB-BQ7B/docs/images/fr-ca/cdy7uua7fh8z/73FeuGyODcu3q7PKjLaQOO/f3bbc7875e527a6a32ae66b1e1432978/Timesheets_API_-_Permissions_-_French.png?w=1650&fit=max&auto=format&n=zZA8afkXluB-BQ7B&q=85&s=fa14da5e26a8f83b91d8e44bb6fd94dd 1650w, https://mintcdn.com/docs-dev-feat-one-trust-integration/zZA8afkXluB-BQ7B/docs/images/fr-ca/cdy7uua7fh8z/73FeuGyODcu3q7PKjLaQOO/f3bbc7875e527a6a32ae66b1e1432978/Timesheets_API_-_Permissions_-_French.png?w=2500&fit=max&auto=format&n=zZA8afkXluB-BQ7B&q=85&s=5b2ff6196d3b9c0252582aa47b442ce8 2500w" />
</Frame>

## 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](https://manage.auth0.com/#/applications),et vous verrez l’application de test pour l’API feuilles de temps.

<Frame>
  <img src="https://mintcdn.com/docs-dev-feat-one-trust-integration/Jx9TR4wZfXNQLj1F/docs/images/fr-ca/cdy7uua7fh8z/7lnuzFgs3IuWyL4bK5aVZV/fc3bb9e27b8960d5ea5521e226cb7e42/2025-02-26_19-05-30.png?fit=max&auto=format&n=Jx9TR4wZfXNQLj1F&q=85&s=d07d2eaf801b7041159276887ca934e1" alt="undefined" width="902" height="448" data-path="docs/images/fr-ca/cdy7uua7fh8z/7lnuzFgs3IuWyL4bK5aVZV/fc3bb9e27b8960d5ea5521e226cb7e42/2025-02-26_19-05-30.png" />
</Frame>

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** .

<Frame>
  <img src="https://mintcdn.com/docs-dev-feat-one-trust-integration/__jN7QoGd-FxCG_B/docs/images/fr-ca/cdy7uua7fh8z/3PjvkTaoOZKWCMJol4ajCu/7f25c09888f0688c4cf1c517bdc62aaa/2025-02-26_18-53-09.png?fit=max&auto=format&n=__jN7QoGd-FxCG_B&q=85&s=ccf6f80d7b0b0efbb4f83e0760e9fd21" alt="Dashboard (Tableau de bord) - Applications - APIs (APIs) - Machine to Machine Applications (Applications machine-machine) - Authorize (Autoriser)" width="898" height="1274" data-path="docs/images/fr-ca/cdy7uua7fh8z/3PjvkTaoOZKWCMJol4ajCu/7f25c09888f0688c4cf1c517bdc62aaa/2025-02-26_18-53-09.png" />
</Frame>

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.
