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
Prérequis
- Apprenez la terminologie relative à Gestion des API Azure.
- Comprendre le concept des stratégies dans Gestion des API Azure.
- Suivez ce guide de démarrage rapide : Créer une instance du service Gestion des API Azure.
- Effectuez également toutes les étapes du tutoriel suivant : Importer et publier votre première API.
Accéder à votre instance Gestion des API
Dans le Portail Azure, recherchez et sélectionnez Services API Management.
Dans la page Services 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 :
- Dans votre instance du service Gestion des API, sélectionnez API.
- Sélectionnez Demo Conference API dans votre liste d’API.
- Sélectionnez l’onglet Test, en haut de l’écran.
- Sélectionnez l’opération GetSpeakers, puis sélectionnez Envoyer.
La réponse d’API d’origine doit être similaire à la réponse suivante :
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.
Sélectionnez Demo Conference API>Conception>Toutes les opérations.
Dans la section Traitement entrant, sélectionnez + Ajouter une stratégie.
Dans la fenêtre Ajouter une stratégie sortante, sélectionnez Définir les en-têtes.
Pour configurer la stratégie Définir les en-têtes, effectuez ces étapes :
- Sous Nom, entrez X-Powered-By.
- Laissez Valeur vide. Si une valeur apparaît dans la liste déroulante, supprimez-la.
- Sous Action, sélectionnez Supprimer.
- Cliquez sur Enregistrer.
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 :
Après la configuration, deux éléments de stratégie set-header s’affichent dans la section 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 :
Sélectionnez Demo Conference API>Tester.
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 :
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.
Sélectionnez Demo Conference API>Conception>Toutes les opérations.
Dans la section Traitement sortant, sélectionnez l’icône Éditeur de code (</>).
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.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.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.
Sélectionnez Demo Conference API>Conception>Toutes les opérations.
Dans la section Traitement entrant, sélectionnez l’icône Éditeur de code (</>).
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.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.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
Sélectionnez Demo Conference API>Tester.
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 :
Tester l’URL remplacé
Sélectionnez Demo Conference API>Tester.
Sélectionnez l’opération GetSpeakers, puis sélectionnez Envoyer.
Comme vous pouvez le voir, les URL sont remplacées.
Tester la limite de débit (limitation)
Sélectionnez Demo Conference API>Tester.
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.
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 :