> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Utiliser Auth0 comme serveur OAuth 2.0 pour authentifier les utilisateurs souhaitant accéder à une API gérée par le service Azure API Management

# Intégrer à Azure API Management

<Card title="Avant de commencer">
  Vous aurez besoin d’un compte Microsoft ayant accès à l’[Azure Portal](https://azure.microsoft.com/en-us).
</Card>

Le service [Azure API Management](https://azure.microsoft.com/en-us/products/api-management/) vous permet de créer de nouvelles API ou d’importer des définitions d’API existantes, puis de les publier pour qu’elles soient utilisées par les publics approuvés. Auth0 facilite l’autorisation des utilisateurs de votre API (à l’aide des normes <Tooltip tip="OAuth 2.0 : Cadre d’autorisation qui définit les protocoles et les processus d’autorisation." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=OAuth+2.0">OAuth 2.0</Tooltip>).

Dans ce tutoriel, vous apprendrez à utiliser Auth0 pour authentifier et autoriser les utilisateurs lorsqu’ils accèdent à l’API Basic Calculator gérée par Azure API Management.

<div id="configure-auth0">
  ## Configurer Auth0
</div>

<div id="create-an-api">
  ### Créer une API
</div>

Vous devez créer une API dans Auth0 pour représenter l’API gérée par Azure API Management Service. Pour en savoir plus, consultez [Register APIs](/docs/fr-ca/get-started/auth0-overview/set-up-apis).

1. Accédez à [Auth0 Dashboard > Applications > APIs](https://manage.auth0.com/#/apis), puis sélectionnez **Create API**.
2. Définissez les paramètres suivants :

   | Champ                       | Valeur             |
   | --------------------------- | ------------------ |
   | **Nom**                     | `Basic Calculator` |
   | **Identifiant**             | `basic-calculator` |
   | **Algorithme de signature** | `RS256`            |
3. Sélectionnez **Create**.

<div id="create-a-regular-web-application">
  ### Créer une Regular Web Application
</div>

Vous devrez créer une Regular Web Application (RWA) dans Auth0 afin de communiquer avec le <Tooltip tip="Authorization Server : serveur centralisé qui aide à définir les limites de l’accès d’un utilisateur. Par exemple, votre serveur d’autorisation peut contrôler les données, les tâches et les fonctionnalités auxquelles un utilisateur a accès." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=authorization+server">serveur d’autorisation</Tooltip> OAuth 2.0 dans Azure :

1. Accédez à [Auth0 Dashboard > Applications > Applications](https://manage.auth0.com/#/applications), puis sélectionnez le bouton **Create Application**.
2. Saisissez un **Name** pour votre application, puis sélectionnez **Regular Web Applications** comme type d’application.

<div id="create-and-enable-a-connection">
  ### Créer et activer une connexion
</div>

Vous devez créer une connexion dans Auth0 et l’activer pour votre application :

1. Accédez à [Auth0 Dashboard > Authentication > Database](https://manage.auth0.com/#/connections/database), puis sélectionnez **Create DB Connection**.
2. Saisissez un **Name** pour votre connexion. Nous vous suggérons de choisir un nom qui reflète la source des utilisateurs (par exemple, `Facebook` pour une connexion contenant des utilisateurs qui se connectent avec leurs identifiants Facebook, ou `site-sign-ups` pour une connexion de base de données où les utilisateurs s’inscrivent sur votre site).
3. Sélectionnez **Create**.
4. Accédez à la page **Settings** de votre connexion.
5. Passez à la vue **Applications**, où vous verrez la liste de toutes les applications de votre tenant.
6. Activez la bascule de l’application que vous avez créée précédemment pour l’associer à la connexion.

<div id="create-a-user">
  ### Créer un utilisateur
</div>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Si vous avez déjà un ensemble d’utilisateurs, vous pouvez les importer ou créer une [custom database connection](/docs/fr-ca/authenticate/database-connections/custom-db).
</Callout>

Vous devez avoir au moins un utilisateur dans votre connexion pour tester l’authentification et l’autorisation. Si vous n’avez pas déjà un ensemble d’utilisateurs pour cette connexion, vous pouvez en créer un manuellement :

1. Accédez à [Auth0 Dashboard > User Management > Users](https://manage.auth0.com/#/users), puis sélectionnez **Create User**.
2. Entrez une **Email** et un **Password**, puis sélectionnez la connexion que vous avez créée à l’étape 3 dans le champ **Connection**.
3. Sélectionnez **Create**.

<div id="configure-azure">
  ## Configurer Azure
</div>

<div id="create-azure-api-management-service">
  ### Créer Azure API Management Service
</div>

Vous devrez créer une instance d’API Management Service dans Azure pour gérer votre API :

1. Dans la barre de navigation, sélectionnez **Create a resource**.
2. Une fois redirigé, sélectionnez **Web** > **API Management**.
3. Fournissez les paramètres de configuration suivants :

   | Paramètre                        | Description                                                                                                                                                                                                                                                                                                                                                                                                     |
   | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | **Nom**                          | Le nom de votre service (qui servira aussi à créer l’URL nécessaire pour accéder au service)                                                                                                                                                                                                                                                                                                                    |
   | **Abonnement**                   | Le plan d’abonnement Azure que vous utiliserez avec le service                                                                                                                                                                                                                                                                                                                                                  |
   | **Groupe de ressources**         | L’ensemble des [ressources](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resources-portal) qui partagent un cycle de vie, des autorisations et des politiques. Vous pouvez utiliser un groupe de ressources existant ou en créer un nouveau (si vous en créez un nouveau, vous devrez lui donner un nom)                                                                    |
   | **Emplacement**                  | Choisissez l’emplacement de votre instance d’API                                                                                                                                                                                                                                                                                                                                                                |
   | **Nom de l’organisation**        | Le nom de votre organisation                                                                                                                                                                                                                                                                                                                                                                                    |
   | **Courriel de l’administrateur** | L’adresse courriel de la personne qui administrera cette instance                                                                                                                                                                                                                                                                                                                                               |
   | **Niveau tarifaire**             | Le niveau tarifaire souhaité, qui détermine le nombre d’appels que vous pouvez effectuer vers votre API, ainsi que le volume maximal de transfert de données autorisé. Vous devez choisir le [plan Developer](https://azure.microsoft.com/en-us/pricing/details/api-management/) ou un niveau supérieur; le plan Consumption n’offre pas suffisamment de fonctionnalités pour que cette intégration fonctionne. |
4. Sélectionnez **Create** pour lancer le provisionnement de votre service (cela peut prendre jusqu’à 15 minutes).

<div id="import-the-sample-api">
  ### Importer l’API d’exemple
</div>

Pour ce tutoriel, nous allons importer et utiliser l’API Basic Calculator fournie par Microsoft. Pour des instructions détaillées, consultez [Importer et publier votre première API](https://docs.microsoft.com/en-us/azure/api-management/import-and-publish#go-to-your-api-management-instance) de Microsoft.

Une fois terminé, sélectionnez **Create** pour importer votre API. Vous serez redirigé vers la page Summary de votre API une fois l’importation terminée.

<div id="configure-an-oauth-20-authorization-server">
  ### Configurer un serveur d’autorisation OAuth 2.0
</div>

Pour utiliser Auth0 pour sécuriser votre API Azure, vous devez enregistrer Auth0 comme serveur d’autorisation OAuth 2.0 :

1. Repérez la section **OAuth 2.0 + OpenID Connect** de votre instance du service API Management près de la barre de navigation. Sélectionnez **OAuth 2.0**, puis **Ajouter**.
2. Accédez à l’écran de configuration **Ajouter un service OAuth2**, puis sélectionnez le type d’octroi Authorization Code.
3. Définissez les paramètres suivants :

   | Paramètre                                      | Description                                                                                                                                                                                                                                |
   | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
   | **Nom d’affichage**                            | Entrez un nom descriptif pour votre serveur d’autorisation, par exemple `Auth0`.                                                                                                                                                           |
   | **ID**                                         | Ce champ devrait se remplir automatiquement selon le nom d’affichage que vous fournissez.                                                                                                                                                  |
   | **Description**                                | Entrez une description pour votre serveur d’autorisation, par exemple `Auth0 API Authentication`.                                                                                                                                          |
   | **URL de la page d’enregistrement du client**  | Entrez `https://placeholder.contoso.com` comme valeur de remplacement.                                                                                                                                                                     |
   | **Types d’octroi du code d’autorisation**      | Sélectionnez `Authorization code`.                                                                                                                                                                                                         |
   | **URL du point de terminaison d’autorisation** | Reportez-vous au [point de terminaison OIDC Discovery](https://\{yourDomain}/.well-known/openid-configuration) de votre tenant et ajoutez le paramètre `audience`. Par exemple : `https://{yourDomain}/authorize?audience={API_AUDIENCE}`. |
   | **Méthode de la demande d’autorisation**       | La valeur par défaut est `GET`.                                                                                                                                                                                                            |
   | **URL du point de terminaison de jeton**       | Reportez-vous au [point de terminaison OIDC Discovery](https://\{yourDomain}/.well-known/openid-configuration).                                                                                                                            |
   | **Méthodes d’authentification du client**      | Sélectionnez `Basic`.                                                                                                                                                                                                                      |
   | **Méthode d’envoi du jeton d’accès**           | Sélectionnez `Authorization header`.                                                                                                                                                                                                       |
   | **Scope par défaut**                           | Spécifiez un [scope](/docs/fr-ca/glossary?term=scope) par défaut, au besoin.                                                                                                                                                               |
4. Dans la section **Client Credentials**, entrez l’ID client de vos applications Auth0 dans le champ **Client ID** et le secret client dans le champ **Client secret**.
5. Passez à la vue **Redirect URI**, puis copiez la valeur de l’URI dans le champ **Authorization code flow grant**.
6. Sélectionnez **Créer**.

<div id="configure-azure-api-to-use-auth0">
  ### Configurer l’API Azure pour utiliser Auth0
</div>

Après avoir créé votre serveur d’autorisation OAuth 2.0 dans Azure, vous devrez mettre à jour votre API Azure pour qu’elle utilise Auth0 pour l’autorisation des utilisateurs :

1. Dans la section **APIs** du menu de navigation, sélectionnez **APIs**.
2. Sélectionnez l’API Basic Calculator, puis ouvrez la vue **Design**.
3. Passez à la vue **Settings**.
4. Accédez à la section **Sécurité**, puis sélectionnez **OAuth 2.0** sous **User Authorization**.
5. Pour le champ **Authorization Server**, sélectionnez le serveur que vous avez configuré à l’étape précédente.
6. Cliquez sur **Save**.

<div id="set-the-allowed-callback-url-in-auth0">
  ## Définir l’Allowed Callback URL dans Auth0
</div>

Une fois votre API Azure provisionnée et configurée pour utiliser Auth0 pour l’autorisation des utilisateurs, vous devrez mettre à jour votre application Auth0 :

1. Accédez à [Auth0 Dashboard > Applications > Applications](https://manage.auth0.com/#/applications).
2. Sélectionnez votre application, puis passez à la vue **Settings**.
3. Saisissez la Redirect URI que vous avez copiée précédemment dans le champ **Allowed Callback URLs**.
4. Cliquez sur **Save**.

<div id="test-the-integration">
  ## Testez l’intégration
</div>

Dans Azure Portal, ouvrez votre instance d’API Management Service.

1. Sélectionnez **console de développement** pour lancer l’interface destinée aux développeurs de vos API.
2. Accédez à **APIs** > **Basic Calculator**. Cette action ouvre la page où vous pouvez effectuer une requête `GET` qui vous permet d’additionner deux nombres entiers.
3. Sélectionnez **Try It**. La page où vous pourrez entrer les paramètres de votre requête s’affichera.
4. Accédez à la section **Authorization**, puis sélectionnez **Authorization Code** (à côté du champ **Auth0**).
5. Une fenêtre contextuelle s’affichera avec le widget de connexion Auth0 (si ce n’est pas le cas, assurez-vous que les bloqueurs de fenêtres contextuelles sont désactivés dans votre navigateur). Entrez les identifiants de l’utilisateur Auth0 que vous avez créé à l’étape 4, puis connectez-vous.
6. Si vous avez réussi à vous connecter, un message s’affichera avec la date d’expiration du jeton d’accès que vous pouvez utiliser pour appeler votre API.
7. Accédez au bas de la page, puis sélectionnez **Send**. Si la requête réussit, vous verrez un message contenant la réponse `HTTP 200` au bas de la page.

<div id="configure-a-jwt-validation-policy-for-access-tokens">
  ### Configurer une politique de validation JWT pour les jetons d’accès
</div>

À l’étape précédente, l’utilisateur est invité à se connecter lorsqu’il tente d’effectuer une requête depuis la console de développement. La console de développement essaie d’obtenir un <Tooltip tip="Jeton d’accès : justificatif d’autorisation, sous la forme d’une chaîne opaque ou d’un JWT, utilisé pour accéder à une API." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Access+Token">jeton d’accès</Tooltip> au nom de l’utilisateur afin de l’inclure dans la requête d’API. Tous les jetons d’accès sont transmis à l’API dans l’en-tête `Authorization`.

Si vous souhaitez valider le jeton d’accès inclus dans chaque requête, vous pouvez le faire à l’aide de la [politique Validate JWT](https://learn.microsoft.com/en-us/azure/api-management/validate-jwt-policy). Consultez la documentation de Microsoft sur la [configuration d’une politique dans API Management](https://learn.microsoft.com/en-us/azure/api-management/set-edit-policies?tabs=form).
