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 ajouter une protection à 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

Stratégies 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 :

Réponse de l’API d’origine

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.

    Accéder à la stratégie sortante

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

    Définir la stratégie d’en-tête HTTP

  4. Pour configurer la stratégie de définition des en-têtes, procédez comme suit :

    1. Sous Nom, entrez X-Powered-By. Sous Action, sélectionnez Supprimer.
    2. Sélectionnez + Ajouter un en-tête.
    3. Sous Nom, entrez X-AspNet-Version. Sous Action, sélectionnez Supprimer.

    Définir l’en-tête HTTP

  5. Sélectionnez Enregistrer. Deux éléments de stratégie set-header s’affichent dans la section de traitement sortant.

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 :

    URL d’origine dans la réponse

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 (</>).

    Accéder à l’éditeur de code de stratégie sortante

  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.

    Sélectionner Afficher les extraits de code

  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.

    URL de masque dans le contenu

  5. Sélectionnez 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 (</>).

    Accéder à la stratégie de trafic entrant

  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.

    Définir une stratégie entrante

  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.

    Sélectionner Limiter le taux d’appels par clé

  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 ont été retirés :

    En-têtes de réponse retirés

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.

    URL remplacées

Tester la limite de débit (limitation)

  1. Sélectionnez Demo Conference API>Tester.

  2. Sélectionnez l’opération GetSpeakers. Sélectionnez Envoyer trois fois dans une ligne.

    Après avoir envoyé la requête trois fois, vous recevez la réponse 429 Trop de requêtes.

    Trop de requêtes

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

Étapes suivantes

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

Passez au tutoriel suivant :