Exercice - Supprimer les informations d’en-tête

Effectué

Les entreprises qui publient des API web doivent souvent contrôler soigneusement les en-têtes HTTP que retournent leurs API, de préférence sans réécrire leur code source.

Le gouvernement a décidé de partager les données de recensement avec ses différents organismes par le biais d’API RESTful. Condition requise : les données doivent être partagées de façon sécurisée et doivent pouvoir être facilement modifiées pour faciliter une intégration rapide. En tant que développeur en chef, vous avez besoin de créer une passerelle API. Vous utilisez la passerelle pour publier une API de recensement RESTful qui expose un point de terminaison OpenAPI en utilisant des normes de sécurité récentes.

Ici, vous allez :

  • Publier une API de recensement RESTful.
  • Déployer une passerelle Gestion des API.
  • Exposer l’API de recensement via le point de terminaison de la passerelle.
  • Supprimez un en-tête de la réponse.

Important

Vous avez besoin de votre propre abonnement Azure pour exécuter cet exercice et des frais pourraient vous être facturés. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Déployer l’API web de recensement

Vous avez développé une application .NET Core qui retourne des informations de recensement sensibles. L’application inclut Swashbuckle pour générer la documentation OpenAPI.

Pour gagner du temps, nous allons commencer en exécutant un script pour héberger notre API RESTful dans Azure. Le script effectue les étapes suivantes :

  • Il crée un plan Azure App Service dans le niveau de service gratuit.
  • Il crée une API web dans une instance Azure App Service, configuré pour le déploiement Git à partir d’un dépôt local.
  • Il définit les informations d’identification de déploiement au niveau des comptes pour notre application.
  • Il configure Git localement.
  • Il déploie notre API web sur notre instance App Service.
  1. Connectez-vous au portail Azure.

  2. Dans la barre des tâches Azure, sélectionnez l’icône Cloud Shell pour ouvrir Azure Cloud Shell.

    Screenshot of Cloud Shell icon in taskbar.

  3. Pour cloner le dépôt qui contient la source de notre application, exécutez la commande git clone suivante dans Cloud Shell :

    git clone https://github.com/MicrosoftDocs/mslearn-protect-apis-on-api-management.git
    
  4. Pour accéder au dossier du dépôt localement, exécutez la commande suivante :

    cd mslearn-protect-apis-on-api-management
    
  5. Comme son nom l’indique, setup.sh est le script que vous exécutez pour créer l’API de test. Ce script génère une application web publique qui expose une interface OpenAPI :

    bash setup.sh
    

    L’exécution du script dure environ une minute. Quand le script se termine, il affiche deux URL que vous pouvez utiliser pour tester le déploiement de l’application. Notez que pendant le déploiement, toutes les dépendances nécessaires à l’exécution de notre application sont automatiquement installées sur le service App Service distant.

  6. Pour tester si notre application a été déployée correctement, copiez et collez la première URL de la sortie Cloud Shell dans votre navigateur. Le navigateur doit présenter l’interface utilisateur Swagger pour notre application et déclarer les points de terminaison RESTful suivants :

    • api/census, qui retourne un recensement et les personnes associées
    • api/census/{censusYear}, qui retourne un recensement et les personnes associées pour l’année spécifiée
    • api/people/{reference}, qui retourne des informations détaillées sur une personne spécifique

    Screenshot of the Swagger page for the API, showing the RESTful endpoints.

  7. Pour finir, copiez la dernière URL de la sortie Cloud Shell. Cette URL correspond à l’URL JSON Swagger dont vous avez besoin ultérieurement dans cet exercice.

Déployer une passerelle API

L’étape suivante de cet exercice consiste à créer une passerelle API dans le portail Azure. Dans la prochaine section, vous allez utiliser cette passerelle pour publier votre API :

  1. Connectez-vous au portail Azure.

  2. Dans le menu du portail Azure ou dans la page Accueil, sélectionnez Créer une ressource. Le volet Créer une ressource apparaît.

  3. Dans le volet de menu de gauche, sélectionnez Intégration, puis entrez Gestion des API dans la zone de recherche Rechercher dans les services et la Place de marché. Sélectionnez la carte Gestion des API dans les résultats, puis sélectionnez Créer pour ouvrir le volet Créer un service Gestion des API.

  4. Sous l’onglet Informations de base, entrez les valeurs suivantes pour chaque paramètre.

    Paramètre Valeur
    Détails du projet
    Abonnement Sélectionnez votre abonnement
    Resource group Sélectionnez un nouveau groupe de ressources ou un groupe existant. Un groupe de ressources est un conteneur logique qui contient les ressources associées d’une solution Azure.
    Détails de l’instance
    Région Sélectionnez une région disponible.
    Nom de la ressource Entrez apim-CensusData<random number>, en remplaçant random number par votre propre série de nombres pour garantir que le nom est globalement unique.
    Nom de l’organisation Saisissez Government-Census. Nom de votre organisation à utiliser sur le portail des développeurs et pour les notifications par e-mails. (Le portail des développeurs et les notifications ne sont pas disponibles dans tous les niveaux de service.)
    E-mail de l’administrateur Adresse e-mail recevant toutes les notifications système.
    Niveau tarifaire
    Niveau tarifaire Sélectionnez Consumption (99.95% SLA) dans la liste déroulante.

    Screenshot of the completed settings on the Basics tab of the Create API Management service screen.

    Remarque

    Le niveau Consommation offre un déploiement rapide à des fins de test et présente un modèle tarifaire de paiement à l’utilisation. L’expérience de gestion des API globale est similaire à celles des autres niveaux tarifaires.

  5. Sélectionnez Revoir + créer. Une fois la validation réussie, sélectionnez Créer. Le déploiement peut prendre plusieurs minutes. Une fois le déploiement terminé, l’instance de Gestion des API est répertoriée dans les ressources Azure. Sélectionnez Accéder à la ressource pour voir le volet correspondant à votre service Gestion des API.

Importer l’API

À présent, importez l’API de recensement dans la passerelle Gestion des API :

  1. Dans le volet de menu gauche de votre Gestion des API instance, sous API, sélectionnez API, puis + Ajouter une API.

  2. Sous Créer à partir d’une définition, sélectionnez OpenAPI. La boîte de dialogue Créer à partir de la spécification OpenAPI s’affiche.

  3. Dans le champ Spécification OpenAPI, collez l’URL JSON Swagger que vous avez enregistrée précédemment dans l’exercice.

    Screenshot of the Create from OpenAPI specification dialog box with the swagger JSON URL entered.

    Remarque

    Notez que quand vous quittez la zone en appuyant sur la touche Tab, certains autres champs sont remplis pour vous. La raison en est que vous avez utilisé OpenAPI, qui spécifie la plupart des détails de la connexion nécessaire.

  4. Laissez les autres paramètres par défaut, puis sélectionnez Créer.

Tester l’API

Voyons les données qui sont retournées à partir de l’API par défaut :

  1. Dans le menu du portail Azure ou dans la page Accueil, sélectionnez Toutes les ressources, puis votre instance de Gestion des API.

  2. Dans le volet du menu de gauche, sous API, sélectionnez API, puis dans le volet central, sélectionnez Données Census.

  3. Dans la barre de menus du haut, sélectionnez l’onglet Test, puis sélectionnez l’opération GetLatestCensus.

  4. Sélectionnez Envoyer.

    Screenshot of the test results for the GetLatestCensus operation, showing the default Response content.

  5. Notez que x-powered-by apparaît dans la réponse et montre que le framework est ASP.NET.

Supprimer les en-têtes

Nous allons maintenant ajouter une stratégie pour supprimer l’en-tête x-powered-by des réponses envoyées par l’API :

  1. Sélectionnez de nouveau Données Census, puis dans la barre de menus du haut, sélectionnez l’onglet Conception.

  2. Sélectionnez Toutes les opérations, puis dans la section Traitement sortant, sélectionnez l’icône </>. L’éditeur XML de stratégie s’affiche.

    Screenshot of the Design tab with the Policies icon highlighted in the Outbound processing section.

  3. Remplacez la balise <outbound> par défaut par ce code :

    <outbound>
       <set-header name="x-powered-by" exists-action="delete" />
       <base />
    </outbound>
    
  4. Sélectionnez Enregistrer.

Tester la suppression des en-têtes

Vous devez maintenant pouvoir exécuter un test pour démontrer que les en-têtes sont supprimés :

  1. Sélectionnez de nouveau Données Census, puis dans la barre de menus du haut, sélectionnez l’onglet Test.

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

    Screenshot of the test results for the GetLatestCensus operation, showing the headers removed in the Response.

  3. L’en-tête x-powered-by ne doit pas figurer dans la réponse HTTP.