Lire en anglais

Partager via


Tutoriel : Transformer et protéger votre API

S’APPLIQUE À : Tous les niveaux de Gestion des API

Dans ce tutoriel, vous allez découvrir comment configurer des stratégies pour protéger ou transformer votre API. Les stratégies sont un ensemble d’instructions qui sont exécutées de manière séquentielle sur la requête ou la réponse d’une API et qui en modifient le comportement.

Par exemple, vous pourriez vouloir définir un en-tête de réponse personnalisé. Vous pouvez également protéger votre API back-end en configurant une stratégie de limite de débit, de sorte que celle-ci ne soit pas utilisée de manière excessive par les développeurs. Ces exemples ne sont qu’une simple introduction aux stratégies de Gestion des API. Pour plus d’options de stratégie, consultez les stratégies de la Gestion des API.

Notes

Par défaut, la Gestion des API configure une stratégie forward-request globale. La stratégie forward-request est nécessaire pour que la passerelle termine une demande adressée à un service principal.

Dans ce tutoriel, vous allez apprendre à :

  • Transformer une API pour définir un en-tête de réponse personnalisé
  • Protéger une API en ajoutant une stratégie de limite de débit (limitation)
  • Tester les transformations

Capture d’écran des stratégies Gestion des API dans le portail.

Prérequis

Accéder à votre instance Gestion des API

  1. Dans le Portail Azure, recherchez et sélectionnez Services API Management.

    Sélectionnez les services Gestion des API

  2. Dans la page Services Gestion des API, sélectionnez votre instance Gestion des API.

    Sélectionnez votre instance Gestion des API

Tester la réponse d’origine

Pour consulter la réponse d’origine :

  1. Dans votre instance du service Gestion des API, sélectionnez API.
  2. Dans votre liste d’API, sélectionnez Animalerie Swagger.
  3. Sélectionnez l’onglet Test, en haut de l’écran.
  4. Sélectionnez l’opération GET Recherche des animaux de compagnie par État, puis sélectionnez facultativement une valeur différente pour l’état du paramètre de Requête. Sélectionnez Envoyer.

La réponse d’API d’origine doit être similaire à la réponse suivante :

Capture d’écran de la réponse de l’API d’origine dans le portail.

Transformer une API pour ajouter un en-tête de réponse personnalisé

La Gestion des API inclut plusieurs stratégies de transformation que vous pouvez utiliser pour modifier les charges utiles des requêtes ou des réponses, les en-têtes ou les codes d’état. Dans cet exemple, vous définissez un en-tête de réponse personnalisé dans la réponse de l’API.

Définir la stratégie de transformation

Cette section vous montre comment configurer un en-tête de réponse personnalisé à l’aide de la stratégie set-header. Ici, vous utilisez un éditeur de stratégie basé sur des formulaires qui simplifie la configuration de la stratégie.

  1. Sélectionnez Animalerie Swagger>Conception>Toutes les opérations.

  2. Dans la section Traitement entrant, sélectionnez + Ajouter une stratégie.

    Capture d’écran de la navigation vers une stratégie sortante dans le portail.

  3. Dans la fenêtre Ajouter une stratégie sortante, sélectionnez Définir les en-têtes.

    Capture d’écran de la configuration de la stratégie Définir les en-têtes dans le portail.

  4. Pour configurer la stratégie Définir les en-têtes, effectuez ces étapes :

    1. Sous Nom, saisissez personnalisé.
    2. Sous Valeur, sélectionnez + Ajouter une valeur. Saisissez « Ma valeur personnalisée ».
    3. Cliquez sur Enregistrer.
  5. Après la configuration, un élément de stratégie set-header s’affichent dans la section Traitement des flux sortants.

    Capture d’écran des stratégies sortantes Définir les en-têtes dans le portail.

Protéger une API en ajoutant une stratégie de limite de débit (limitation)

Cette section montre comment ajouter une protection à votre API back-end en configurant des limites de débit, afin que l’API ne soit pas sur-utilisée par les développeurs. Cet exemple montre comment configurer la stratégie rate-limit-by-key à l’aide de l’éditeur de code. Dans cet exemple, la limite est fixée à trois appels par 15 secondes. Après 15 secondes, un développeur peut de nouveau tenter d’appeler l’API.

Notes

Cette stratégie n’est pas prise en charge dans le niveau Consommation.

  1. Sélectionnez Animalerie Swagger>Conception>Toutes les opérations.

  2. Dans la section Traitement entrant, sélectionnez l’icône Éditeur de code (</>).

    Capture d’écran de la navigation vers l’éditeur de code de stratégie entrante dans le portail.

  3. Placez le curseur à l’intérieur de l’élément <inbound> sur une ligne vide. Sélectionnez ensuite Afficher les extraits de code en haut à droite de l’écran.

    Capture d’écran de la sélection de l’affichage d’extraits de code dans l’éditeur de stratégie entrante dans le portail.

  4. Dans la fenêtre de droite, sous Stratégies de restriction des accès, sélectionnez Limite le débit des appels par clé.

    L’élément <rate-limit-by-key /> est ajouté au curseur.

    Capture d’écran de l’insertion d’une stratégie de limite de taux d’appel par clé dans le portail.

  5. Remplacez votre code <rate-limit-by-key /> dans l’élément <inbound> par le code suivant : Ensuite, sélectionnez Enregistrer.

    <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
    

Tester les transformations

À ce stade, si vous examinez le code dans l’éditeur de code, vos stratégies se présentent comme le code suivant :

<policies>
     <inbound>
         <rate-limit calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
         <base />
     </inbound>
     <outbound>
         <set-header name="Custom" exists-action="override">
             <value>"My custom value"</value>
           </set-header>
         <base />
     </outbound>
     <on-error>
         <base />
     </on-error>
 </policies>

Le reste de cette section est dédié au test des transformations de stratégies définies dans cet article.

Tester l’en-tête de réponse personnalisé

  1. Sélectionnez Animalerie Swagger>Test.

  2. Sélectionnez l’opération GET Recherche des animaux de compagnie par État, puis sélectionnez facultativement une valeur différente pour l’état du paramètre de Requête. Sélectionnez Envoyer.

    Comme vous pouvez le voir, l’en-tête de réponse personnalisé est ajouté :

    Capture d’écran illustrant l’en-tête de réponse personnalisé dans le portail.

Tester la limite de débit (limitation)

  1. Sélectionnez Animalerie Swagger>Test.

  2. Sélectionnez l’opération GET Recherche des animaux de compagnie par État. Sélectionnez Envoyer plusieurs fois de suite.

    Après avoir envoyé trop de requêtes au cours de la période configurée, vous obtenez la réponse 429 Trop de requêtes.

    Capture d’écran montrant Trop de requêtes dans la réponse dans le portail.

  3. Attendez 15 secondes ou plus, puis resélectionnez Envoyer. Cette fois, vous devriez obtenir une réponse 200 OK.

Résumé

Dans ce didacticiel, vous avez appris à :

  • Transformer une API pour définir un en-tête de réponse personnalisé
  • Protéger une API en ajoutant une stratégie de limite de débit (limitation)
  • Tester les transformations

Étapes suivantes

Passez au tutoriel suivant :