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 courantes pour transformer votre API. Vous souhaiterez peut-être transformer votre API pour qu’elle ne révèle pas les informations du back-end privé. La transformation d’une API peut vous aider à masquer les informations de pile de technologies qui s’exécutent dans le serveur principal ou à masquer les URL d’origine qui apparaissent dans le corps de la réponse HTTP de l’API.

Ce tutoriel explique également comment protéger votre API back-end en configurant une stratégie de limite de débit, afin que l’API ne soit pas sur-utilisée par les développeurs. 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 supprimer des en-têtes de réponse
  • Remplacer les URL d’origine dans le corps de la réponse d’API par les URL de la passerelle de Gestion des API
  • 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

Transformer une API pour supprimer des en-têtes de réponse

Cette section montre comment masquer les en-têtes HTTP que vous ne voulez pas montrer à vos utilisateurs. Par exemple, supprimez les en-têtes suivants dans la réponse HTTP :

  • X-Powered-By
  • X-AspNet-Version

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. Sélectionnez Demo Conference API dans votre liste d’API.
  3. Sélectionnez l’onglet Test, en haut de l’écran.
  4. Sélectionnez l’opération GetSpeakers, puis 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.

Comme vous pouvez le voir, la réponse comprend les en-têtes X-AspNet-Version et X-Powered-By.

Définir la stratégie de transformation

Cet exemple montre comment utiliser l’éditeur de stratégie basé sur des formulaires, ce qui vous permet de configurer de nombreuses stratégies sans avoir à modifier directement les instructions XML de stratégie.

  1. Sélectionnez Demo Conference API>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, entrez X-Powered-By.
    2. Laissez Valeur vide. Si une valeur apparaît dans la liste déroulante, supprimez-la.
    3. Sous Action, sélectionnez Supprimer.
    4. Cliquez sur Enregistrer.
  5. Répétez les deux étapes précédentes pour ajouter une stratégie Définir les en-têtes qui supprime l’en-tête X-AspNet-Version :

  6. Après la configuration, deux éléments de stratégie set-header s’affichent dans la section Traitement sortant.

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

Remplacer les URL d’origine dans le corps de la réponse d’API par les URL de la passerelle de Gestion des API

Cette section montre comment remplacer les URL d’origine qui apparaissent dans le corps de la réponse HTTP de l’API par les URL de la passerelle de Gestion des API. Vous souhaiterez peut-être masquer les URL principales d’origine des utilisateurs.

Tester la réponse d’origine

Pour consulter la réponse d’origine :

  1. Sélectionnez Demo Conference API>Tester.

  2. Sélectionnez l’opération GetSpeakers, puis sélectionnez Envoyer.

    Comme vous pouvez le voir, la réponse comprend les URL de back-end d’origine :

    Capture d’écran des URL d’origine dans la réponse dans le portail.

Définir la stratégie de transformation

Dans cet exemple, vous utilisez l’éditeur de code de stratégie pour ajouter l’extrait de code XML de stratégie directement à la définition de stratégie.

  1. Sélectionnez Demo Conference API>Conception>Toutes les opérations.

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

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

  3. Placez le curseur à l’intérieur de l’élément <outbound> 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 sortante dans le portail.

  4. Dans la fenêtre de droite, sous Stratégies de transformation, sélectionnez Masquer les URL dans le contenu.

    L’élément <redirect-content-urls /> est ajouté au curseur.

    Capture d’écran de l’insertion d’URL de masque dans la stratégie de contenu dans le portail.

  5. Cliquez sur Enregistrer.

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. Dans cet exemple, la limite est fixée à trois appels par intervalle de 15 secondes pour chaque ID d’abonnement. Après 15 secondes, un développeur peut de nouveau tenter d’appeler une API.

  1. Sélectionnez Demo Conference API>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-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
     <base />
   </inbound>
   <backend>
     <base />
   </backend>
   <outbound>
     <set-header name="X-Powered-By" exists-action="delete" />
     <set-header name="X-AspNet-Version" exists-action="delete" />
     <redirect-content-urls />
     <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 les en-têtes de réponse supprimés

  1. Sélectionnez Demo Conference API>Tester.

  2. Sélectionnez l’opération GetSpeakers, puis sélectionnez Envoyer.

    Comme vous pouvez le voir, les en-têtes X-AspNet-Version et X-Powered-By ont été supprimés :

    Capture d’écran montrant les en-têtes de réponse supprimés dans le portail.

Tester l’URL remplacé

  1. Sélectionnez Demo Conference API>Tester.

  2. Sélectionnez l’opération GetSpeakers, puis sélectionnez Envoyer.

    Comme vous pouvez le voir, les URL sont remplacées.

    Capture d’écran montrant les URL remplacées dans le portail.

Tester la limite de débit (limitation)

  1. Sélectionnez Demo Conference API>Tester.

  2. Sélectionnez l’opération GetSpeakers. Sélectionnez Envoyer quatre fois de suite.

    Après avoir envoyé la requête quatre fois, vous recevez une 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 supprimer des en-têtes de réponse
  • Remplacer les URL d’origine dans le corps de la réponse d’API par les URL de la passerelle de Gestion des API
  • Protéger une API en ajoutant une stratégie de limite de débit (limitation)
  • Tester les transformations

Étapes suivantes

Passez au tutoriel suivant :