Si vous lisez cet article c’est que vous avez été un fervent lecteur de notre Mois de l’API, si ce n’est pas le cas, je vous invite à retrouver dès à présent les 5 précédents articles que nous avons rédigés à ce sujet.

Et oui, comme vous pouvez le constater, notre mois de l’API arrive à sa fin. Maintenant que vous avez pris conscience de l’importance du rôle des API’s dans votre stratégie d’entreprise et que vous êtes prêts à innover au travers de ces dernières, découvrons ensemble comment faire rayonner votre plateforme d’API. 

Par conséquentnous allons le clôturer par ce billet de blog qui aborde les thématiques d’urbanisation, de gouvernance et d’industrialisation suivant une stratégie orientée API. Un article coécrit par Wael Amri et Adnan El Akkaoui.

 

Gérer l’exposition et le suivi de vos APIs 

Commençons tout d’abord par la gestion de l’exposition et le suivi de vos APIs. Dans cette première partie, je vous présente le portail développeur APIM qui vous permettra de gérer vos APIs, je vous explique aussi comment sécuriser l’accès à vos APIs pour enfin vous présenter la fonctionnalité Analytics qui vous sera utile pour monitorer le trafic de vos APIs.

 

Présentation du portail développeur APIM 

Le portail développeur de Azure API Management est l’endroit où les développeurs peuvent en savoir plus sur les APIs, afficher et appeler les opérations et s’abonner aux produits. Les clients potentiels, quant à eux, peuvent visiter le portail développeur, afficher les APIs et les opérations et enfin s’inscrire.

L’URL du portail développeur se trouve sur le tableau de bord du portail Azure, il permet d’accéder à l’instance de service API Management. Si l’API Management est encore un sujet vague pour vous, vous pouvez retrouver l’article dédié qui le définit très bien

capture portal overview service API Management

Globalement, nous avons pu constater que les solutions d’API Management couvraient correctement le portail d’API Management et le portail développeur. Découvrons ensemble leurs fonctionnalités.

Pour le portail d’API Management il y a :

  • L’attribution des rôles aux utilisateurs ou la validation de ces rôles, 
  • La publication des APIs et la gestion de leur versioning,
  • La supervision des statistiques d’usage de l’API par consommateur et par application,
  • La possibilité de positionner des quotas d’utilisation de l’API (Throttling) par consommateur et par application,
  • La monétisation de la consommation de l’API.

 

Et pour le portail développeur nous retrouvons :

  • La documentation de l’API,
  • Une interface try-it qui implique la mise en œuvre d’un environnement de test,
  • La possibilité de suivre la consommation de l’API management par application.

 

Voici à quoi ressemble le portail développeur à travers lequel sont exposés nos différentes APIs :

capture écran du portail développeur des différentes API

 

 

Sécuriser l’accès de l’APIM

Il existe plusieurs options permettant la sécurisation de l’accès à l’APIM, nous allons dès à présent détailler les 3 manières de sécuriser son accès.  

  • Tout d’abord l’autorisation par clé : 

Ici, chaque requête envoyée à L’APIM doit inclure dans le header une clé Ocp-Apim-Subscription-Key. La clé identifie la souscription à L’APIM du développeur et peut être trouvée et gérée dans le portail Azure. Selon la norme, la clé doit être régénérée périodiquement. 

Capture écran autorisation par clé

 

  • Ensuite la sécurisation via OAuth2/JWT : 

schéma de sécurisation du backend API avec un serveur d'autorisation

Le schéma présent ci-dessus montre comment sécuriser le backend API à l’aide d’un serveur d’autorisation. Notre exemple utilise volontairement le serveur Azure Active Directory, chaque en-tête des requêtes clientes doit contenir un jeton valide OAuth2/JWT, sinon un code 401 unauthorized sera retourné.  

Le client Web doit donc d’abord obtenir un jeton d’accès JWT du serveur d’autorisation.  

Cela peut être réalisé selon deux manières :

  • La première consiste à fournir un ClientID (Aka: ApplicationID) et ClientSecret dans la demande de jeton.  
  • La deuxième façon consiste à fournir une combinaison de nom d’utilisateur / mot de passe.  

Il est important de savoir que ces deux demandes doivent être exécutées via HTTPS. 

Si le backend API implémente OAuth2, alors on pourra en plus implémenter une policy dans l’APIM qui nécessite qu’un jeton JWT soit fourni par l’application cliente dans l’en-tête de la requête. 

La sécurisation via un certificat ressemblera à ça :

schéma sécurisation via un certificat

 

 

Nous constatons donc qu’une policy APIM supplémentaire peut être configurée en comparant un certificat client entrant à un certificat transmis à l’APIM.  

Cela ne fonctionne pas sur HTTP, car il nécessite HTTPS, par conséquent, un certificat doit être installé à la fois sur l’application Web et sur APIM. L’application Web nécessite que le paramètre «clientCertEnabled» soit défini à true. Malheureusement, ce paramètre nécessite un appel via l’API Azure REST, car il n’est pas encore disponible sur le portail. 

 

La fonctionnalité Analytics pour monitorer le trafic des APIs

Cette fonctionnalité nous aide à comprendre le trafic généré par nos APIs, à analyser les éléments qui génèrent ce trafic et à constater sur quel niveau de performance cela se produit

Par exemple, la capture d’écran ci-dessous montre le nombre de requêtes effectuées par zone géographique :

capture d'écran fonctionnalité analytics

Quant à la figure ci-dessous, elle détaille le nombre d’appel effectué sur l’APIM :

capture écran nombre d'appel effectué sur l'APIM

 

 

Finalement, grâce à Azure Analytics, le modèle de facturation mesuré peut être mis en place pour permettre la facturation des frais aux clients qui consomment les différentes APIs exposées. Par conséquent, les clients seront facturés par rapport aux nombres d’appels effectués pour chaque API. Si le client effectue 8 000 appels API à 0,01  par appel, la facture à la fin du mois sera de 8. Avec ce modèle de facturation, les clients seront facturés une fois par mois, le seul élément à avoir est le nombre d’appels effectués pendant cette période. Cette information est d’ailleurs disponible à travers les statistiques remontées par Azure Analytics. 

 

 

L’exploitation de vos APIs

Maintenant que vous avez les bases pour gérer vos APIs comme il se doit, vous devez vous demander comment les exploiter correctement ? Dans cette dernière partie je vous explique comment mettre en place votre stratégie inter-domaine, mais aussi comment se servir de la méthode du caching pour augmenter la rapidité de réponse à l’utilisateur. Enfin, je vous présente aussi le service Application Insight pour vous aider à monitorer les performances de votre site suite à l’implémentation de votre stratégie d’API.

 

La stratégie du Cross-domain policies 

Cette stratégie se manifeste généralement dans des applications SPA (pour Single Page Application).  

En effet, tout le code est exécuté du coté navigateur. Cela signifie que le navigateur communique directement avec l’APIM. Dans la majorité des cas, les applications de type SPA sont des clients non fiables, contrairement aux applications côté serveur qui sont considérées comme des clients de confiance.  

En effet, une application de type SPA est considérée comme non fiable car le fournisseur de service n’a aucun moyen de contrôler l’appareil exécutant le code. Cela a donc un effet énorme sur les risques de sécurité et sur la manière de les atténuer. Voici les trois fonctionnalités à activer pour mettre en place votre stratégie de cross-domain policies :

  • Autoriser les appels cross-domain : cela permet de rendre l’API accessible depuis des navigateurs exécutants de l’Adobe Flash et/ou Microsoft Silverlight. 
  • CORS : il permet d’ajouter le support de CORS pour une opération ou une API et ainsi autoriser des appels entre différents domaines depuis le navigateur. 
  • JSONP : il ajoute la prise en charge de JSONP à une opération ou à une API pour autoriser des appels inter domaines à partir d’un client Javascript. 

 

Voici le paramétrage que nous avons mis en place dans notre exemple d’APIM, ici nous avons opté pour le CORS policy :

code paramétrage CORS policy

 

La méthode du caching pour cacher les réponses d’une API backend

Caching est l’une des fonctionnalités ajoutées par Azure API Management. Ce mécanisme permet essentiellement de mettre en cache les réponses d’une API backend dans le storage natif de l’APIM. Elle permet notamment :

  • de réduire la latence api,
  • de diminuer la consommation de la bande passante,
  • de diminuer le temps de chargement des services Web.

On parle, ici, principalement des requêtes GET qui sont mises dans le cache. Ci-dessous, une capture d’écran d’un appel à notre API et la réponse relative à cette requête avant la mise en place du caching dans l’APIM. 

capture écran appel API et mise en place caching

capture écran inbound processing 

 

Suite à la mise en place du caching avec une durée de 3 secondes et un type de cache prefer-external (stockage externe dans Redis Cache s’il est configuré sinon le stockage interne de l’APIM), les requêtes GET envoyées par les utilisateurs pour une première fois auront des réponses qui seront retournées par notre API backend. Elles seront par la suite stockées dans le storage interne de l’APIM. 

La prochaine fois que l’utilisateur envoie la même requête, la réponse qui est déjà mise en cache est renvoyée, sans réellement interroger l’API backend, et ce tant que la durée du cache n’est pas écoulée. L’avantage se trouve dans la réduction du nombre d’allers-retours entre le client et l’API backend, la réponse à l’utilisateur est donc fournie à une vitesse fulgurante. Il en résulte aussi une amélioration globale des performances des réponses et de la latence des APIs. Dans ce qui suit, la réponse est similaire à celle qui avait été exécutée au début pour récupérer le produit avec son identifiant passé en paramètre. Cette réponse montre bien l’utilisation du cache dans l’APIM. 

capture écran http response suite à la request

 

Monitoring avec Application Insights 

Monitorer les performances des sites Web représente aujourd’hui un élément clé pour mieux comprendre les demandes des clients et des utilisateurs et ainsi garder un œil sur les performances du site. C’est dans ce contexte que s’inscrit le service Microsoft Azure Application Insights qui est un service de gestion de performance des applications. Son objectif est d’aider à diagnostiquer les problèmes et à comprendre comment les clients utilisent les application Web. 

A travers la capture d’écran ci-dessous, nous allons activer le service Application Insights au niveau de l’APIM.  

capture écran activation du service Application Insight

 

Ensuite nous récupérons l’instrumentation key situé au niveau du service Application Insights, pour le lier à notre Function App et ceci va nous permettre de tracer les logs des appels à notre backend API.  

capture écran récupération de l'instrumentation key

capture écran traçabilité requête

Cette figure ci-dessus montre la traçabilité de la requête qui attaque l’APIM ainsi que toutes ses dépendances.

 

 

Gestion de la gouvernance  

Nous vivons maintenant à l’ère de l’intégration, où divers domaines technologiques interagissent entre eux. La gestion des services informatiques (ITSM) et l’automatisation ne peuvent donc pas être une exception dans la planification de solutions technologiques à service complet.  

La planification de la capacité suit d’autres domaines de l’informatique comme la conformité, la sécurité et l’IoT en interagissant avec l’ITSM. On permet d’étendre les limites de la gestion informatique de manière plus efficace, tout en éliminant simultanément les risques et en augmentant l’efficacité opérationnelle. 

 

Gouvernance

Pour conclure 

Vous avez maintenant toutes les clés entre vos mains pour faire de votre plateforme d’API une force différenciatrice et innovante face à vos concurrents. N’oubliez pas que l’API représente un rôle central dans votre stratégie d’entreprise. Il est, plus de jamais, temps de vous pencher sur ce sujet qui ne saura être qu’au service de votre performance.

Comme vous avez pu le constater, la stratégie d’API qu’on a pu percevoir tout au long de notre série d’articles du mois de l’API, reste capitale dans l’IT et exige d’aborder différents aspects. En effet, ces aspects rassemblent les besoins IT pour le métier, le design d’API et le catalogue, l’implémentation de l’API management ainsi que la gouvernance, etc.

La prise en compte de ces éléments permet véritablement de construire une plateforme globale, robuste et performante. 

 

Le dernier mot de la fin

Sachez que ça a été un véritable plaisir de partager cette série de 6 articles avec vous ! Bien que ces articles nous ont coûté cher en dose de café, nous espérons de tout cœur avoir réussi à partager notre vision sur la culture de l’innovation et sur l’importance de mettre l’accent sur les APIs pour valoriser votre organisation humaine.

Si ce sujet a attisé votre curiosité, vous pouvez contacter les rédacteurs de chaque article en laissant un commentaire ou en nous envoyant un message sur nos réseaux sociaux Linkedin ou Twitter.

👉 Un dernier grand merci à nos experts, sans qui ce Mois de l’API n’aurait pas existé : Lauren YIN, Khaled BOUDRAA, Wael AMRI, Adnan EL AKKAOUI, Adil BENMEKKI.

 

Recevez notre livre blanc "Comprendre et intégrer les APIs dans son entreprise"