WSO2 API Manager 4.1.0

Gregory EVE
Smile with WSO2
Published in
6 min readApr 14, 2022

Cette nouvelle version apporte de la profondeur dans les fonctionnalités après avoir profondément remanié le cœur du produit dans les 2 précédentes versions.

Politiques d’API

API Policies

C’est probablement la fonctionnalité qui va le plus sauter aux yeux des habitués du produit. C’est d’abord un changement sémantique en s’éloignant du monde ESB pour rejoindre le monde de la gateway comme ses concurrents. Les API Policies sont ce que nous appelions précédemment des séquences de médiations dont l’usage est facilité.

1/ Les médiations se trouvaient auparavant dans la section “Runtime” ils passent dans un menu dédié appelé “Policies”.

2/ Vous définissez vos politiques en fonction de l’exposition à travers la gateway embarquée, Synapse, ou de la micro gateway Choreo Connect.

3/ La définition des politiques se fait maintenant par opération, ce qui permet d’être beaucoup plus fin dans ces actions.

4/ Vous retrouvez la bibliothèque de politiques disponibles dans un panneau dédié en lieu et place de l’ancienne liste déroulante.

5/ Par simple glisser-déposer, vous pouvez mettre en place de 1 à N politiques par opération et par sens des messages.

6/ Quand vous ajoutez une politique, un panneau s’ouvre vous demandant de paramétrer celui-ci.

7/ Et si cela ne suffit pas, comme précédemment, il vous suffit d’ajouter votre propre politique en fournissant un fichier de séquence de médiation synapse (.xml ou .j2) ou un intercepteur Choreo (.gotmplg) et en pouvant définir les paramètres renseignables.

Petit bonus, vous pouvez définir ces politiques au niveau local, par API, ou au niveau global, partagées entre toutes les APIs.

OPA Policy

Si l’on reste dans la question des politiques, l’Open Policy Agent Policy fait son apparition. WSO2, après avoir intégré OPA dans l’Identity Server, fait la même chose avec WSO2 API Manager. Il vous permet de mettre en œuvre des politiques d’autorisation avancés. (Le moteur XACML embarqué dans l’Identity Server et intégré à l’API Manager depuis de nombreuses années a le même objectif)

Gouvernance

API Tierces

Il est maintenant possible d’intégrer des APIs exposées par un système tiers au sein du portail développer du produit. Cela vous permettra de rassembler au sein d’un même catalogue l’ensemble des API que vous utilisez ou exposez.

Cette nouvelle possibilité permettra également de composer des API Products avec celles-ci.

Lecture seule du publisher

Il est à présent possible de donner un accès complet au Publisher à un observateur qui ne pourra faire aucune modifications. L’usage des scopes apim:api_view et apim:publisher_settingsont été ajoutés pour cela.

Cycle de vie pour les API Products

Les API Products ne bénéficiait pas pour le moment de gestion de leur cycle de vie. Cette limitation vient d’être corrigé. Il vous est dorénavant possible de gérer le cycle de vie des révisions de vos API Products comme les APIs classiques.

API Évènementiels

GraphQL suscriptions

L’éditeur a ajouté la dernière brique manquante au support complet de GraphQL, avec l’ajout de la notion de souscription permettant d’être notifié de manière asynchrone d’opération ayant lieu sur le système.

Solace Event Broker

WSO2 API Manager s’intègre désormais avec la solution Solace disponible en SaaS ou on-premise pour exposer des APIs AMQP, JMS, MQTT, OpenMAMA ou REST. Seule la partie throttling fera défaut dans cette intégration.

Intégration

Le Micro Integrator permet à présent de générer une API REST à partir d’un contrat SOAP et de générer un Data Service CRUD automatiquement à partir d’une connexion base de données.

APIs SOAP intégrés au catalogue de services

Dans la version 4.0, WSO2 à introduit un catalogue de service qui permet de visualiser et d’exposer par simple clique au sein de l’API Manager des APIs web implémenté au sein du Micro Integrator. L’éditeur vient d’étendre cette fonctionnalité en y ajoutant le support des “Proxy Service SOAP”.

Micro Integrator API First

Si vous êtes dans une logique API First, il est à présent possible de définir une API au sein de la partie API Manager et d’importer son contrat du côté intégration Studio pour créer son implémentation.

Sécurité

Key Manager externe avec échange de jeton

L’API Manager supporte maintenant le standard OAuth 2.0 urn:ietf:params:oauth:grant-type:token-exchange ce qui vous permet d’échanger un jeton de votre Serveur d’autorisation externe contre un jeton local. Ce standard permet en autre le support de la délégation et de l’imperforation pour accéder à des ressources.

On rappellera que le Key Manager interne supporte également l’échange de jeton JWT, SAML et Kerberos.

Configuration OAuth2 avancée au sein du Dev Portal

Il est maintenant possible de configurer directement au sein du portail développeur l’activation de PKCE pour sécuriser les échanges avec vos applications mobiles et de déclarer votre client comme public, c'est-à-dire n’étant pas capable de configurer un secret.

À quand toutes les autres options accessibles dans l’interface Carbon ?

Déploiement

Serveur de cache Redis

Petit à petit, WSO2 est en train de décommissionner son système de clustering reposant sur un cluster Hazelcast embarqué (mal intégré donc peu performant). Avec cette nouvelle version, la limitation des rafales d’appel et des quotas d’API Backend verront leur compteur géré par un serveur Redis externe pour centraliser les informations entre gateway en lieu et place d’Hazelcast.

On rappellera que tous les autres systèmes de gestion de quotas sont quant à eux pilotés par le Traffic Manager.

Logs par API

WSO2 vient enfin d’ajouter la possibilité de logguer les appels d’API sans impacter l’usage des APIs. Cette fonctionnalité est activable via un nouveau service d’administration REST.

On regrettera qu’une interface de pilotage et de visualisation n’ait pas été prévu au sein du portail d’administration. C’est un gros manque par rapport à d’autres solutions du marché.

[2022-02-08 15:09:45,235]  INFO {API_LOG} pizzashack - {"headers":["accept=application/json","Accept-Encoding=gzip, deflate, br","Accept-Language=en-US,en;q=0.9","activityid=64b0b90d-7c24-4b7b-9000-1d0b78eb04c4","Connection=keep-alive","Content-Length=185","Content-Type=application/json","Host=localhost:8243","Internal-Key=eyJraWQiOiJnYXRld2F5X2NlcnRpZmljYXRlX2FsaWFzIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJhZG1pbkBjYXJib24uc3VwZXIiLCJpc3MiOiJodHRwczpcL1wvbG9jYWxob3N0Ojk0NDNcL29hdXRoMlwvdG9rZW4iLCJrZXl0eXBlIjoiUFJPRFVDVElPTiIsInN1YnNjcmliZWRBUElzIjpbeyJzdWJzY3JpYmVyVGVuYW50RG9tYWluIjpudWxsLCJuYW1lIjoiUGl6emFTaGFja0FQSSIsImNvbnRleHQiOiJcL3Bpenphc2hhY2tcLzEuMC4wIiwicHVibGlzaGVyIjoiYWRtaW4iLCJ2ZXJzaW9uIjoiMS4wLjAiLCJzdWJzY3JpcHRpb25UaWVyIjpudWxsfV0sImV4cCI6MTY0NDM3MjgyNywidG9rZW5fdHlwZSI6IkludGVybmFsS2V5IiwiaWF0IjoxNjQ0MzEyODI3LCJqdGkiOiI4OTJkODEwZS0xZmUxLTQ4OTItOTVjOS0xMDE5M2I3MzYwM2YifQ.Uvh6a11Cs3RakrvT0G8IvGm78-I512AeJ0r4N4xFydEVdAbGKZRkA_Z6Ox2U2pEClNPnvm8lXCwuIGtAQfmApl5bRGmOJtj-5UjiEYNUnPcefewOZc7ObJ6ct3hHK0jbHrlVwP1OREf5yyRQJdBxT9EImOQjz4uDe0gGD8jydyODE51_d-6hPLa4qkAQijlsGlKyqw1-j5YHfFWBpb3an3et5tvNTTdM428QyFPBvB7K-aLVrNaZdpwmv3F3T-F394SgyiN0sdyeDBomZm_x0JQWrN_AGJ7WIlcNGJ0Y4NCKXQjPI2i0LmRRtpCs4WMJGkovDYTxeWpQpm3lA2ksEw","Origin=https://localhost:9443","Referer=https://localhost:9443/","sec-ch-ua=\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"97\", \"Chromium\";v=\"97\"","sec-ch-ua-mobile=?0","sec-ch-ua-platform=\"Linux\"","Sec-Fetch-Dest=empty","Sec-Fetch-Mode=cors","Sec-Fetch-Site=same-site","User-Agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"],"sourceIP":"127.0.0.1","payload":"{\n  \"customerName\": \"customer\",\n  \"delivered\": true,\n  \"address\": \"address\",\n  \"pizzaType\": \"regular\",\n  \"creditCardNumber\": \"0000-0000-0000-0000\",\n  \"quantity\": 1,\n  \"orderId\": \"001\"\n}","verb":"POST","correlationId":"64b0b90d-7c24-4b7b-9000-1d0b78eb04c4","apiTo":"pizzashack/1.0.0/order","flow":"REQUEST_IN"}

Analytics on-premise

Après une remontée très critique de la communauté sur le passage à un service SaaS, Choreo Analytics, très léger en terme fonctionnel, WSO2 avait ajouté une page de documentation sur la 4.0 pour s’intégrer avec une suite ELK.

Dans cette nouvelle version, il n’y a malheureusement pas de révolution, WSO2 à simplement pré-intégré son exemple d’extension pour publier les données analytics dans un fichier de log au lieu de les envoyer à Choreo. Ils fournissent également un dashboard Kibana minimaliste pour visualiser les métriques remontées.

Smile peut vous aider sur ce sujet ;)

--

--

Gregory EVE
Smile with WSO2

Solution Architect at Smile, french lover and open source supporter. Integrate, Search, Leverage and Secure your data what else?