Announcing the Cloudflare API Gateway

Au cours de la dernière décennie, l'Internet a connu un changement tectonique. Il était auparavant constitué de sites web statiques comprenant du texte, des images et, parfois, un film intégré. Mais l'Internet s'est énormément développé. Nous comptons désormais sur des applications basées sur des API pour nous aider dans pratiquement tous les aspects de la vie. Au lieu de simplement télécharger des fichiers, nous sommes capables d'interagir avec des applications en échangeant des données riches. Nous suivons nos séances d'entraînement et nous envoyons les résultats dans le Cloud. Nous utilisons des serrures intelligentes et toutes sortes d'appareils IdO, et nous interagissons avec nos amis en ligne.

Tout cela est fantastique, mais implique une explosion de la complexité au niveau du back-end. Pourquoi ? Les développeurs doivent gérer des API pour prendre ces fonctionnalités en charge. Ils doivent surveiller et authentifier chaque requête. Et parce que ces tâches sont si complexes, elles sont généralement externalisées pour être traitées par un fournisseur de passerelle pour API.

Malheureusement, les passerelles actuelles laissent beaucoup à désirer. D'abord, elles ne sont pas bon marché. Ensuite, elles ont un impact sur les performances et enfin, elles comportent un risque pour les données et la confidentialité, puisque plus de 50 % du trafic est transmis aux API (et est vraisemblablement transmis par une passerelle tierce). Quelle pagaille !

Aujourd'hui, nous annonçons la passerelle Cloudflare API Gateway. Nous allons remplacer entièrement votre passerelle existante pour un coût bien moindre. Et notre solution utilise la technologie sur laquelle reposent Workers, Bot Management, Access et les Règles de transformation pour offrir la suite d'outils pour API la plus évoluée du marché.

Qu'est-ce que la passerelle pour API ?

En résumé, il s'agit d'un ensemble de fonctionnalités qui feront tout pour vos API. Nous la divisons en trois catégories :

Sécurité

Il s'agit des produits que nous avons déjà présentés dans nos articles de blog : des outils tels que Découverte, Validation de schéma, Protection contre l'utilisation abusive et d'autres. Nous avons passé beaucoup de temps à appliquer notre expertise en matière de sécurité au monde des API.

Gestion et surveillance

Il s'agit des outils fondamentaux qui assurent le bon fonctionnement de vos API. Quelques exemples : l'analyse des données, le routage et l'authentification. Nous sommes déjà en mesure d'accomplir ces tâches avec des produits existants comme Cloudflare Access, et d'autres fonctionnalités sont en cours de développement.

Tout le reste

Ce sont ces petits éléments cruciaux qui permettent à l'ensemble de fonctionner. Cloudflare propose déjà des services de terminaison SSL/TLS, d'équilibrage de charge et de proxy qui peuvent être exécutés par défaut.

L'article de blog d'aujourd'hui décrit chaque fonctionnalité dans le détail. Nous sommes ravis d'annoncer que toutes les fonctionnalités de sécurité sont désormais généralement disponibles, alors commençons par parler de celles-ci.

Découverte

Nos clients sont désireux de protéger leurs API. Malheureusement, ils n'ont pas toujours documenté ces points de terminaison – ou pire, ils pensent que tout est documenté, mais certains points de terminaison ont été perdus ou modifiés à leur insu. Ces points de terminaison cachés sont parfois appelés « API fantômes ». Nous devons commencer notre voyage par une représentation exhaustive (et précise) de la surface des API.

C'est ici que la Découverte entre en jeu. Rendez-vous sur le tableau de bord de Cloudflare, sélectionnez l'onglet Sécurité, puis choisissez « API Shield ». Activez la fonctionnalité et indiquez-nous comment vous souhaitez identifier votre trafic d'API. La plupart des utilisateurs fournissent un en-tête (disponible aujourd'hui), mais nous pouvons également utiliser le corps de la requête ou le cookie (disponible prochainement).

[alt text: L'onglet Cloudflare API Shield, qui présente les différents points de terminaison qui ont été découverts, ainsi qu'un ensemble de seuils recommandés de limitation du taux.]

Nous fournissons une liste exhaustive de vos points de terminaison d'API. Cloudflare répertorie chaque méthode et chemin et fournit des métadonnées supplémentaires pour vous aider à comprendre votre surface. Nous réduisons même les points de terminaison qui incluent des variables (par exemple, /account/217) afin qu'ils deviennent généralement applicables (par exemple, /account/{var1}).

Découverte est une puissante contre-mesure à l'entropie. Nos clients s'attendent souvent à trouver 30 points de terminaison, mais sont surpris de découvrir qu'ils ont plus de 100 points de terminaison actifs.

Validation de schéma

Peut-être avez-vous déjà un schéma pour vos points de terminaison d'API. Un schéma s'apparente à un modèle : il fournit les chemins, les méthodes et les données supplémentaires que vous vous attendez à trouver dans les requêtes d'API. De nombreux développeurs se conforment à la norme OpenAPI pour générer (et maintenir) un schéma.

Pour renforcer votre sécurité, nous pouvons valider le trafic entrant par rapport à ce schéma. Il s'agit d'un excellent moyen d'arrêter les attaques simples. Cloudflare refusera les requêtes non conformes et écartera le trafic incohérent qui ignore le code vestimentaire. Il suffit de télécharger votre schéma sur le tableau de bord, de sélectionner les actions que vous voulez entreprendre, puis de déployer :

[alt text: Une étape du processus de téléchargement du schéma, après qu'un schéma ait déjà été fourni. Cloudflare répertorie chaque point de terminaison avec le chemin, la requête, l'en-tête, les cookies et le corps fournis sous forme de métadonnées.]

La Validation de schéma a déjà contrôlé le trafic de certains des plus grands sites de cryptomonnaies, services de livraison et plateformes de paiement du monde. Elle est disponible dès maintenant, et nous ajouterons prochainement la validation du corps.

Protection contre l'utilisation abusive

Une approche performante de la sécurité utilisera conjointement la Validation de schéma et la Découverte afin d'assurer que le trafic correspond au format attendu. Mais qu'en est-il du trafic abusif qui passe à travers les mailles du filet ?

À mesure que Cloudflare découvre de nouveaux points de terminaison d'API, nous suggérons des limites de taux pour chacun d'eux. C'est le rôle de la Protection contre l'utilisation abusive, et elle ouvre la porte à un type de sécurité plus sophistiqué.

Prenons l'exemple d'un point de terminaison API qui renvoie des informations météorologiques. Plus précisément, le point de terminaison renvoie « oui » s'il est probable qu'il neige dans l'heure qui suit, et « non » sinon. Notre algorithme pourrait détecter que l'utilisateur moyen demande ces données une fois toutes les 10 minutes. En revanche, un petit groupe de bots d'extraction de données transmet 37 requêtes toutes les 10 minutes. Cloudflare préconise automatiquement un seuil intermédiaire, pondéré de manière à laisser un peu de répit aux utilisateurs normaux. Ce seuil empêchera les services d'extraction de données abusifs de récupérer trop fréquemment les données météorologiques.


Nous offrons la possibilité de créer une règle avec notre nouveau moteur Advanced Rate Limiting. Vous pouvez utiliser des cookies, des en-têtes, etc. pour définir précisément les seuils. Nous utilisons la protection contre l'utilisation abusive pour protéger api.cloudflare.com depuis des mois, maintenant.

Notre aspect préféré de cette fonctionnalité : elle s'appuie sur l'approche de l'apprentissage automatique que nous utilisons pour Bot Management. Une autre façon pour nos produits de s'enrichir mutuellement et progresser.

La Protection contre l'utilisation abusive est disponible dès maintenant. Si vous êtes intéressé par la protection séquentielle contre l'utilisation abusive, que nous utilisons pour signaler les flux de requêtes anormaux, consultez notre précédent article de blog. La composante séquentielle est disponible en accès anticipé et nous continuons à l'améliorer avant un lancement officiel.

mTLS

Le protocole TLS à authentification réciproque élève la sécurité au niveau supérieur. Vous pouvez utiliser des certificats pour valider le trafic entrant à mesure qu'il atteint vos API – ce qui est particulièrement utile pour les appareils mobiles et IdO. Il s'agit en outre d'un excellent modèle de sécurité positive qui peut (et devrait) être adopté pour la plupart des écosystèmes d'appareils.


À titre d'exemple, revenons à notre API météorologique. Ce service comprend peut-être un deuxième point de terminaison, qui reçoit la température actuelle d'un thermomètre. Il y a un problème, toutefois : n'importe qui peut transmettre de fausses requêtes en fournissant des relevés inexacts au point de terminaison. Pour éviter cela, utilisez mTLS pour installer un certificat client sur le véritable thermomètre, puis permettez à Cloudflare de valider ce certificat. Toute autre requête sera rejetée. Problème résolu !

Nous offrons déjà un ensemble de certificats gratuits à chaque client de Cloudflare. Cela va continuer. À partir d'aujourd'hui, toutefois, les clients utilisateurs de la passerelle pour API reçoivent par défaut un nombre illimité de certificats.

Authentification

De nombreuses API modernes nécessitent une authentification. En réalité, l'authentification permet d'accéder à toutes sortes de capacités : elle permet l'ouverture de sessions (avec connexion) et l'échange de données personnelles et améliore l'efficacité de l'infrastructure. Et, bien entendu, Cloudflare protège le trafic authentifié pendant qu'il transite sur notre réseau.

Avec la passerelle pour API, toutefois, Cloudflare joue un rôle plus actif dans l'authentification du trafic, en facilitant l'émission et la validation des éléments suivants :

  • Clés d'API
  • Jetons JSON Web Token (JWT)
  • Jetons OAuth 2.0

Nous utilisons les listes de contrôle d'accès pour vous aider à gérer différents groupes d'utilisateurs avec des autorisations variables. Et c'est important, car votre fournisseur actuel introduit une latence élevée et de nombreux échanges de données inutiles. Si une requête doit transiter vers l'extérieur de l'écosystème Cloudflare, elle voyage plus loin qu'elle ne le devrait :

[description de l'image : Latence supplémentaire due à l'envoi de requêtes hors du réseau Cloudflare aux fins de l'authentification.]

Cloudflare peut s'authentifier sur notre réseau mondial et traiter beaucoup plus rapidement les requêtes. Ce type de technologie est difficile à mettre en œuvre, mais nous avons estimé qu'elle était trop importante pour être ignorée. Comment l'avons-nous construite si rapidement ? Cloudflare Access. Nous avons puisé dans notre expérience de la collaboration avec les fournisseurs d'identité et, une fois encore, nous l'avons transposée dans le monde des API. Notre passerelle inclut une authentification illimitée et l'échange de jetons. Ces fonctionnalités seront disponibles prochainement.

Routage et gestion

Parlons brièvement des microservices. Les applications modernes sont des mastodontes, c'est pourquoi les développeurs les scindent en fragments appelés « microservices ».

Prenons l'exemple d'une application qui vous permet de réserver une chambre d'hôtel. Elle peut utiliser un microservice pour récupérer les disponibilités, un autre pour récupérer les tarifs et un autre encore pour récupérer les types de chambres. Une équipe différente peut gérer chaque microservice, mais ils doivent tous être disponibles à partir d'un point d'entrée public unique :

[description de l'image : Les différentes étapes d'une architecture reposant sur des microservices. Un visiteur transmet une requête à l'API d'un hôtel, qui est ensuite acheminée vers les dates, les tarifs ou les types de chambres disponibles.]

Ce point d'entrée unique, traditionnellement géré par une passerelle pour API, gère le routage de chaque requête vers le microservice correspondant. Un grand nombre de nos clients paient, depuis des années, des services autonomes pour remplir ce rôle. Ce n'est plus nécessaire. Nous avons étendu les Règles de transformation de Cloudflare pour réécrire et réacheminer dynamiquement à la périphérie. Le produit est facile à configurer, rapide à déployer et nativement intégré dans la passerelle pour API. Cloudflare peut désormais être le point d'entrée unique de votre API.

Ce n'est que la partie émergée de l'iceberg. La passerelle pour API peut en réalité remplacer vos microservices via l'intégration avec notre produit Workers. Comment ? Prenons l'exemple de l'écriture d'une instance Workers qui exécute une action donnée – peut-être la récupération de prix d'hôtels, stockés avec Durable Objects sur notre réseau. Avec la passerelle pour API, les requêtes arrivent sur notre réseau, sont acheminées vers le microservice correspondant avec les Règles de transformation, puis sont entièrement servies par Workers (toujours sur notre réseau !). Ces instances Workers peuvent contacter votre serveur origine pour obtenir des informations supplémentaires, si nécessaire.

[Description de l'image : L'architecture d'API simplifiée de Cloudflare. L'authentification, le routage, la gestion et le stockage étant gérés à la périphérie, plusieurs sauts sont éliminés].

Les instances Workers sont plus rapides, moins coûteuses et plus simples que les autres microservices. Cette intégration sera disponible prochainement.

API Analytics

Nos clients nous disent qu'il est parfois plus important de voir le trafic des API que de le traiter. En réalité, cette tendance n'est pas spécifique aux API. Nous avons publié aujourd'hui un autre article de blog, dans lequel nous expliquons comment un client utilise l'intelligence de nos bots pour enregistrer passivement des informations sur les menaces.


Avec API Analytics, nous avons puisé dans nos autres produits pour afficher des données utiles en temps réel. Vous pouvez afficher les points de terminaison populaires, filtrer en fonction des connaissances fournies par l'apprentissage automatique, afficher les histogrammes des seuils d'utilisation abusive et capturer les tendances.

API Analytics sera disponible prochainement. Quand ce sera le cas, vous pourrez également exporter des rapports personnalisés et partager des informations au sein de votre organisation.

Journalisation, gestion des quotas et bien davantage

Toutes nos fonctionnalités établies, telles que la mise en cache, l'équilibrage de charge et les intégrations de journaux collaborent nativement avec la passerelle pour API. Ces fonctions ne doivent pas être considérées comme des fonctions primitives de la passerelle ; elles sont essentielles. Et puisque Cloudflare exécute toutes ces fonctions au même endroit, vous bénéficiez des avantages en termes de latence sans devoir faire quoi que ce soit.

Nous étendons également la fonctionnalité Journaux d'entreprise, afin d'assurer la journalisation en temps réel. Si vous choisissez de vous authentifier sur le réseau de Cloudflare, vous pouvez consulter les journaux détaillés de chaque utilisateur ayant accédé à une API. De même, nous suivons la durée de vie de chaque requête au fur et à mesure de sa réception, sa validation, son acheminement et de la réponse donnée à celle-ci. Tout est journalisé.

Enfin, nous développons actuellement Quota Management, une fonctionnalité qui compte les requêtes d'API sur une période plus longue (un mois, par exemple) et vous permet de gérer les seuils pour vos utilisateurs. Nous avons également lancé Advanced Rate Limiting pour vous aider à gérer les scénarios plus sophistiqués (notamment l'inspection du corps pour GraphQL).

Conclusion

Toutes nos fonctionnalités de sécurité (Découverte, Validation des schémas, Protection contre l'utilisation abusive et mTLS) sont disponibles dès maintenant  ! Nous appelons ces fonctions API Shield, car elles forment le bouclier qui protège les autres fonctions de la passerelle. Les clients entreprises peuvent dès aujourd'hui demander l'accès à leurs équipes de gestion des comptes.

Plusieurs autres parties de la passerelle pour API sont maintenant disponibles en accès anticipé. Selon Gartner®, « d'ici 2025, moins de 50 % des API pour entreprises seront gérées, car la croissance explosive des API dépasse les capacités des outils de gestion des API. » Notre objectif est de proposer une passerelle abordable, qui permettra de lutter contre cette tendance. Si vous souhaitez tester une fonctionnalité spécifique, informez-en votre équipe de gestion de compte, afin que nous puissions vous intégrer dans les meilleurs délais.