Les API managers, des éléments essentiels pour garantir la sécurité des architectures microservices

Les applications modernes, en particulier celles basées sur des architectures Angular pour le front-end et Java pour le back-end, sont confrontées à un défi majeur : sécuriser les échanges entre un navigateur, par essence non sécurisé, et les serveurs qui doivent garantir des accès sécurisés. 

Le navigateur web, étant facilement accessible et modifiable par l’utilisateur ou par des tiers malveillants, représente un point de vulnérabilité. Les applications doivent donc implémenter des mécanismes robustes pour authentifier les utilisateurs et sécuriser les données échangées sur ce canal potentiellement compromis. 

Dans une architecture de microservices, où les multiples points de terminaison augmentent la surface d’attaque, sécuriser les communications entre les services devient un défi majeur. 

La fréquence et le nombre de ces échanges (souvent plusieurs par action utilisateur) nécessitent la mise en place d’une solution efficace pour que la solution reste exploitable par les utilisateurs. 

Dans les développements mettant en œuvre ce type d’architecture pour ses clients, Nat System a recommandé l’utilisation d’un API Manager (par exemple WSO2) couplé avec une solution de gestion des identités (Keycloak) afin de relever le défi de la sécurité. 

WSO2 API Manager joue un rôle crucial dans l’adressage de cette problématique. En agissant comme une passerelle sécurisée entre les clients (navigateurs) et les services backend Java, WSO2 offre plusieurs fonctionnalités clés pour renforcer la sécurité des échanges.

Gestion centralisée des API 

WSO2 API Manager est une plateforme open-source qui permet la création, la gestion, la sécurisation et l’analyse des API. Dans un environnement Angular/Java, où les applications front-end Angular consomment des services backend Java exposés via des API, WSO2 offre une passerelle API sécurisée qui centralise la gestion des API. Cette centralisation facilite la surveillance, le contrôle des accès, la limitation de débit, et assure une sécurité cohérente à travers toutes les API. 

Intégration avec Keycloak pour le SSO 

L’intégration de WSO2 avec Keycloak, un serveur d’identité open-source pour la gestion de l’authentification et l’autorisation, permet de mettre en place un système de Single Sign-On (SSO). Le SSO simplifie l’expérience utilisateur en permettant aux utilisateurs de s’authentifier une seule fois pour accéder à plusieurs applications et services. Cette intégration renforce la sécurité en centralisant la gestion des identités et en réduisant le risque de fuites de mots de passe. 

L’utilisation d’une librairie Keycloak pour Angular permet d’éviter que le mot de passe transite par l’application Angular ou le backend Java : la saisie du mot de passe et sa validation sont assurées exclusivement par Keycloak.

Authentification et Autorisation 

WSO2 permet d’implémenter des systèmes d’authentification robustes tels que OAuth2, JWT (JSON Web Tokens), et SAML (Security Assertion Markup Language). Ces mécanismes assurent que seuls les utilisateurs authentifiés peuvent accéder aux ressources protégées, et ce, en validant l’identité des utilisateurs de manière sécurisée. 

L’utilisation de token entre le navigateur et WSO2 permet d’éviter la circulation du mot de passe ou son stockage dans le navigateur. 

Le renouvellement régulier des tokens (sur une base d’une durée de vie de 1 à 2 minutes) protège des risques d’interception et de compromission des tokens.

Validation de l’Identité de l’Utilisateur  

Grâce à son intégration avec des solutions de gestion des identités telles que Keycloak, WSO2 API Manager peut valider l’identité des utilisateurs de manière fiable et sécurisée. Cela permet aux services Java en aval de s’assurer que les demandes proviennent d’utilisateurs légitimes, avec une assurance d’identité fournie par WSO2. Cette validation de l’identité est cruciale dans les scénarios où les droits d’accès et les opérations autorisées dépendent de l’identité de l’utilisateur. 

Dans une application de gestion, où la quasi-totalité des services ne sont accessibles qu’à des utilisateurs identifiés et autorisés, c’est une garantie de sécurité en évitant qu’un service ne soit accessible à une personne non autorisée.  

Le positionnement par WSO2 d’un header valorisé avec l’identifiant de l’utilisateur, permet aux développeurs du backend java de ne pas se préoccuper de la validation de l’identité de l’utilisateur : dans des projets à plus d’une centaine de services et faisant intervenir plusieurs développeurs, c’est une garantie appréciable de sécurité et de cohérence. 

Sécurisation des Échanges 

WSO2 assure la sécurité des données échangées entre le navigateur et les serveurs en utilisant le chiffrement SSL/TLS, garantissant ainsi que les données sensibles sont transmises de manière sécurisée sur Internet. De plus, en appliquant des politiques de sécurité au niveau de la passerelle API, WSO2 minimise le risque d’attaques telles que le cross-site scripting (XSS), le cross-site request forgery (CSRF), et d’autres vulnérabilités web courantes. 

Contrôle d’Accès Basé sur les Rôles (RBAC) 

En définissant des rôles et des permissions spécifiques pour les utilisateurs et en contrôlant l’accès aux API en fonction de ces rôles, WSO2 permet une gestion fine des droits d’accès aux ressources. Cela garantit que les utilisateurs peuvent uniquement accéder aux données et effectuer les opérations pour lesquelles ils ont été explicitement autorisés. 

Conclusion

L’authentification et la sécurisation des échanges entre les navigateurs et les serveurs sont des aspects critiques du développement des applications web modernes. En utilisant WSO2 API Manager en conjonction avec des solutions de gestion des identités comme Keycloak, les développeurs peuvent construire des applications Angular/Java non seulement sécurisées mais aussi capables d’offrir une expérience utilisateur fluide grâce au SSO. WSO2 joue ainsi un rôle indispensable en garantissant la sécurité et l’intégrité des échanges dans un écosystème web par essence vulnérable, tout en assurant une gestion efficace de l’identité et des accès utilisateurs. 

Au-delà des bénéfices en matière de sécurité, ces outils offrent des fonctionnalités intéressantes pour assurer la scalabilité et la maintenance efficace des services. 

Rédacteur : 

Jean-Luc THOLOZAN
Directeur Technique

Vous souhaitez avoir plus de renseignements sur nos produits ou nos offres ?

0Shares