Depuis quelques années, les entreprises innovent et migrent plus rapidement vers le Cloud en utilisant les technologies Cloud-native de Microsoft Azure. Azure Integration Services, une plateforme d’intégration en tant que service (iPaas) leader du secteur, propose plusieurs offres telles que Logic Apps, Service Bus, API Management, Event Grid et Azure Functions & Data Factory pour répondre aux scénarios d’intégration d’applications.

En 2020, Microsoft a annoncé qu’une énorme quantité de nouvelles fonctionnalités Azure avaient été ajoutées. La gestion des APIs Microsoft Azure en fait partie et représente l’un des points clés pour créer une culture du Cloud et considérer le Cloud public comme une partie intégrante de votre centre de données. Le service APIM permet de prendre vos capacités (par exemple, le service On-Premises, les services mobiles, les services Cloud), de créer une API virtuelle et de l’exposer de manière contrôlée.

 

Azure API Management : mises à jour & nouveautés

 

Vue globale d’Azure API Management

Vous trouverez ci-dessous une présentation des nouvelles fonctionnalités dans et autour de l’Azure API Management (APIM) :

  • Qu’est-ce que l’APIM ?
  • Quelle est sa structure ?
  • Quels sont les cas d’utilisation ?

L’accent est mis sur l’APIM englobant le cycle de vie complet de plusieurs APIs, de la conception à la publication en passant par le monitoring et l’analyse.

 

Cycle de vie API

Web Socket

Parmi les nouvelles fonctionnalités et services, on note la prise en charge du WebSocket dans APIM. WebSocket est une technologie évoluée permettant d’ouvrir un canal de communication interactif (bi-directionnel) permanent entre un navigateur (côté client) et un serveur, afin de résoudre certains problèmes posés par le caractère unidirectionnel et déconnecté du protocole HTTP. Avec cette API vous pouvez envoyer des messages à un serveur et recevoir ses réponses de manière événementielle sans avoir à aller consulter le serveur pour obtenir une réponse. La spécification permettant d’utiliser les WebSockets est développée par le W3C, tandis que le protocole de communication est standardisé par l’IETF.

Dans une telle API, l’instance API Management fonctionne comme un proxy pour la communication entre l’utilisateur et le backend.

Au moment de la rédaction de cet article, cette fonctionnalité était encore en preview : il peut donc s’écouler encore plusieurs semaines avant qu’elle ne soit déployée sur toutes les instances de service.

La prise en charge des passerelles auto-hébergées (Self-Hosted Gateways) a également été introduite, permettant ainsi le déploiement des passerelles API (API Gateways) sur des clusters Azure Arc Kubernetes.

Support websocket API

Source : Integrate 2021

 

Nouvelles politiques de validation

De nouvelles politiques de validation des données de gestion des API pouvant aider à se défendre contre une gamme d’attaques malveillantes potentielles ont été mises en place.

Deux d’entre elles ont été mises en évidence :

  • la politique de validation des en-têtes, qui empêche que les en-têtes du backend pouvant contenir des données sensibles ne soient accidentellement exposées ;
  • la politique de validation de contenu, qui peut se défendre contre les injections SQL, la modification des champs qui ne doivent pas être réinscriptibles et la limitation par l’envoi de messages trop volumineux. En dehors de ces cas, la validation des paramètres et du statut code est également possible.

 

<validate-content />

<validate-parameters />

<validate-headers />

<validate-status-code />

 

API

Le portail d’API

L’ « API Portal » est construit au-dessus du portail des développeurs dans API Management. Désormais, de nouvelles options ont été rajoutées pour améliorer le peaufinage du portail API dans APIM, notamment l’utilisation des API open source :

  • Un éditeur visuel glisser-déposer (drag and drop) pour personnaliser le portail sans écrire de code ;
  • Un écosystème d’API basé sur GitHub comprenant des déploiements automatisés avec GitHub Actions et un hébergement gratuit avec GitHub Pages.

Ce projet open source est disponible sur GitHub et est sous licence MIT. Il emploie les mêmes technologies clés que le portail de développement d’Azure API Management, qui est utilisé par des milliers de clients Azure.

 

portail API AzureSource : Integrate 2021

 

Sécuriser nos APIs avec Azure API Management

Une des méthodes pour sécuriser les APIs elles-mêmes sera la sécurité Azure Frontdoor. Vous disposez pour cela d’un certain nombre d’options. En vous basant sur Azure Frontdoor, qui inclut des fonctionnalités pour un WAF (Web Application Firewall) et des fonctionnalités pour l’équilibrage de charge (load balancing), vous pouvez appeler votre API à partir de plusieurs régions.

 

Azure Frontdoor

Sur le schéma ci-dessus, on peut modifier l’API pour n’accepter que les appels venant de Frontdoor, en utilisant une policy globale APIM.

Désormais, on peut ajouter l’authentification et l’autorisation à l’API en utilisant OAuth2 en configurant les entrées Active Directory nécessaires : une pour l’API et une pour le consommateur. Maintenant, lorsque l’API est appelée, non seulement le consommateur doit acquérir un jeton d’accès (token), mais il doit également donner son consentement avant de pouvoir réellement traiter la demande.

 

API management et OAuth2

 

Imaginons qu’au lieu d’utiliser un mock de réponse, l’appel à l’API soit transmis à une Logic App (y compris la transmission du contexte de l’application et de l’utilisateur à cette Logic App). Pour cela, on peut configurer un backend dans APIM, où tous les détails du point de terminaison de la Logic App sont stockés. De cette façon, l’API n’a besoin de se référer qu’à ce backend.

Néanmoins des failles de sécurité provenant du « Backdoor » (le Backend Frontdoor) peuvent arriver : vous devez alors vous assurer que l’API Backend ne peut pas être appelée directement, mais uniquement via l’APIM. Pour cela, vous disposez à nouveau de plusieurs options d’isolement, notamment l’utilisation d’un réseau virtuel, private link, etc.

A noter : pour les Logic Apps standard, vous pouvez configurer un point de terminaison privé “Private Link”. Cette option n’est disponible que pour les Logic Apps standard, pas pour les « anciennes » basées sur le plan de consommation, et uniquement pour APIM Premium.

 

Biztalk 360 securité API managementSource : Documentation Biztalk 360

 

En fin de compte, si vous voulez vraiment sécuriser votre API, vous devez vous assurer de cocher toutes les bonnes cases (cf image ci-dessus) !

 

Pour aller plus loin

Vous souhaitez en savoir plus sur les nouveautés d’APIM ? Vous avez envie de partager vos retours sur l’utilisation de cet outil ? N’hésitez pas à laisser un message en commentaire !