Exercice : Créer des abonnements dans Gestion des API Azure

Effectué

Vous pouvez utiliser l’interface utilisateur Gestion des API Azure dans le portail Azure pour créer des abonnements et obtenir des clés d’abonnement à utiliser dans les applications clientes.

Supposons que votre société de météorologie a décidé de mettre ses données météo à la disposition des clients qui s’abonnent et paient pour ce service. Il est essentiel d’autoriser uniquement l’accès aux clients qui ont reçu une clé. En tant que développeur en chef, vous avez besoin de créer une passerelle API. Vous allez utiliser cette passerelle pour publier une API RESTful Weather qui expose un point de terminaison OpenAPI. Ensuite, vous allez sécuriser le point de terminaison et allouer une clé client.

Dans cette unité, vous allez :

  • Publier une API RESTful Weather
  • Déployer une passerelle Gestion des API
  • Exposer l’API Weather par le biais du point de terminaison de la passerelle
  • Restreindre l’accès en fonction d’une clé d’abonnement

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éployez l’API web Weather

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

Pour gagner du temps, commençons par exécuter un script pour héberger notre API dans Azure. Le script effectue les étapes suivantes :

  • Créer un plan Azure App Service dans le niveau gratuit
  • Créer une API web dans Azure App Service, configuré pour le déploiement Git à partir d’un dépôt local
  • Définir les informations d’identification de déploiement au niveau du compte pour notre application
  • Configurer Git localement
  • Déployer 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. Exécutez la commande git clone suivante dans Azure Cloud Shell pour cloner le dépôt qui contient la source pour notre application, et notre script d’installation de GitHub.

    git clone https://github.com/MicrosoftDocs/mslearn-control-authentication-with-apim.git
    
  4. Accédez au répertoire du dossier de dépôt local en exécutant la commande cd suivante.

    cd mslearn-control-authentication-with-apim
    
  5. Comme son nom l’indique, setup.sh est le script que vous allez exécuter pour créer notre API. Il va générer une application web publique qui expose une interface OpenAPI.

    bash setup.sh
    

    Le script a sept parties et prend environ une minute pour s’exécuter. Notez que, pendant le déploiement, toutes les dépendances nécessaires à l’exécution de notre application sont automatiquement installées sur l’instance App Service distante.

    Une fois le script terminé, il génère deux URL, une URL Swagger et un exemple d’URL. Vous pouvez utiliser ces URL pour tester le déploiement de l’application.

  6. Pour vérifier que notre application est correctement déployée, copiez et collez l’URL Swagger de la sortie Azure Cloud Shell dans votre navigateur par défaut. Le navigateur doit présenter l’interface utilisateur Swagger pour notre application et déclarer les points de terminaison RESTful suivants :

    • api/weather/{latitude}/{longitude}, qui retourne les données météorologiques du jour pour la latitude et la longitude spécifiées (valeurs doubles).
    • api/weather/{date}/{latitude}/{longitude}, ce qui permet de retourner les données météorologiques du jour spécifié (valeur de date) pour la latitude et la longitude spécifiées (valeurs doubles).

    Swagger view.

  7. Enfin, copiez et enregistrez l’exemple d’URL de la sortie Azure Cloud Shell. Cet emplacement est l’URL JSON de Swagger. Vous en aurez besoin plus loin 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 l’exercice suivant, vous utiliserez cette passerelle pour publier votre API.

  1. Connectez-vous au portail Azure.

  2. Dans le menu de ressources Azure ou dans la page d’accueil, sous Services Azure, sélectionnez Créer une ressource. Le volet Créer une ressource apparaît.

  3. Dans le menu de ressource, sélectionnez Intégration puis, dans les résultats, sélectionnez Gestion des API. Le volet Installer la passerelle Gestion des API s’affiche.

  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-WeatherData<random number>. Le nombre aléatoire est destiné à garantir que le nom est globalement unique. Prenez note de ce nom de ressource, car il s’agira du nom de passerelle API dont vous aurez besoin plus loin dans cet exercice.
    Nom de l’espace de travail Entrez Weather-Company.
    E-mail de l’administrateur Adresse e-mail recevant toutes les notifications système.
    Niveau tarifaire
    Niveau tarifaire Dans la liste déroulante, sélectionnez Consumption.
  5. Sélectionnez Vérifier + créer puis, une fois la validation réussie, sélectionnez Créer.

    Notes

    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.

Vous pouvez voir la progression du déploiement, ainsi que les ressources qui sont en cours de création.

Importer l’API

Une fois le déploiement terminé, importez l’API Weather dans la passerelle Gestion des API à l’aide de la procédure suivante.

  1. Sélectionnez Accéder à la ressource. Le volet Vue d’ensemble du Service Gestion des API pour votre ressource s’affiche.

  2. Dans le volet du menu de gauche, sous API, sélectionnez API. Le volet API de votre service Gestion des API s’affiche, avec des choix de modèle pour créer/afficher une API.

  3. 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.

  4. Dans le champ Spécification OpenAPI, collez l’URL JSON Swagger que vous avez enregistrée précédemment dans l’exercice. Quand vous appuyez sur Entrée ou sélectionnez une autre zone de la boîte de dialogue, d’autres champs sont renseignés pour vous. Ces données sont importées à partir de la spécification OpenAPI que Swagger a créée.

  5. Acceptez les valeurs par défaut pour tous les autres paramètres, puis sélectionnez Créer.

     Screenshot of dialog box with swagger.json url highlighted.

L’onglet Conception de l’API Weather Data affiche toutes les opérations, qui sont deux opérations GET.

Ajouter une clé d’abonnement pour accéder à l’API Weather

La dernière étape est l’ajout d’une clé d’abonnement pour l’API Weather Data.

  1. Dans le volet du menu de gauche, sous API, sélectionnez Abonnements. Le volet Abonnements s’affiche pour votre service Gestion des API.

  2. Dans la barre de menus supérieure, sélectionnez Ajouter un abonnement. Le volet Nouvel abonnement s’affiche.

    Screenshot showing how to add a new subscription.

  3. Entrez les valeurs suivantes pour chaque paramètre.

    Paramètre Valeur
    Name weather-data-subscription
    Nom complet Weather Data Subscription
    Autoriser le suivi Aucune coche
    Étendue Dans la liste déroulante, sélectionnez API.
    API Dans la liste déroulante, sélectionnez Weather Data (Données météorologiques).
  4. Sélectionnez Create (Créer). Le volet Abonnements liste deux abonnements, un abonnement accès total intégré et votre abonnement Weather Data.

  5. À la fin de la ligne Weather Data Subscription, sélectionnez les points de suspension, puis dans le menu contextuel, choisissez Afficher/masquer les clés. Les valeurs de clé primaire et secondaire sont affichées.

  6. Copiez la Clé primaire de l’abonnement aux données météorologiques dans votre Presse-papiers et enregistrez-la dans un éditeur de type Bloc-notes. Vous utilisez cette clé à l’étape suivante.

Tester la clé d’abonnement

L’API est sécurisée avec une clé. Nous testons maintenant l’API avec et sans la clé pour montrer que l’accès est sécurisé.

  1. Effectuez une demande sans passer une clé d’abonnement. Dans Azure Cloud Shell, exécutez la commande cURL suivante. Remplacez l’espace réservé [Nom de la passerelle] par le nom de ressource de la passerelle API (apim-WeatherDataNNNN) que vous avez créée dans la tâche précédente.

    curl -X GET https://[Name Of Gateway].azure-api.net/api/Weather/53/-1
    

    Cette commande n’a pas de clé d’abonnement et doit retourner une erreur 401 Accès refusé, semblable à la suivante.

    { "statusCode": 401, "message": "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." }
    
  2. Exécutez à présent la commande suivante. Remplacez l’espace réservé Nom de la passerelle par le nom de ressource de la passerelle API (apim-WeatherDataNNNN). En outre, remplacez l’espace réservé Clé primaire par la clé primaire que vous avez copiée à partir de l’étape afficher/masquer.

    curl -X GET https://[Name Of Gateway].azure-api.net/api/Weather/53/-1 \
      -H 'Ocp-Apim-Subscription-Key: [Primary Key]'
    

    Si vous avez ajouté le guillemet fermant, cette commande doit aboutir à une réponse de réussite similaire au code suivant.

    {"mainOutlook":{"temperature":32,"humidity":34},"wind":{"speed":11,"direction":239.0},"date":"2019-05-16T00:00:00+00:00","latitude":53.0,"longitude":-1.0}