![Signes et sens Webzine](https://www.signesetsens.com/bannieres-forums-blogs/signes-et-sens-media-web-en-ligne-communiques.gif)
L'architecture microservices est un modèle moderne de conception d'applications que les développeurs utilisent pour concevoir de grands projets logiciels. Cette architecture vous permet de séparer une application étendue en de nombreuses parties indépendantes, chaque partie étant chargée d'exécuter une seule fonction ou opération. Ensuite, lorsqu'un utilisateur demande un service, l'application appelle chacun des composants de microservices concernés. Une approche basée sur les microservices offre d'innombrables avantages, notamment une vitesse de développement accrue, une sécurité applicative renforcée, une mise à l'échelle rapide et efficace et une meilleure isolation des pannes. Cependant, le fait de compartimenter les logiciels de cette manière peut également introduire des complexités, notamment en ce qui concerne l'authentification entre plusieurs services disparates.
La communication entre les composants des microservices nécessite des règles d'accès et des autorisations complexes, en particulier lorsque des services cloud sont utilisés pour héberger ces composants. La nécessité d'authentifier ces processus augmente considérablement la surface d'attaque d'une application, chaque segment du trafic intra-service restant vulnérable à l'interception par des acteurs de menaces externes.
Comment mettre en œuvre la sécurité dans les microservices ?
Les applications traditionnelles présentent une conception unifiée où les communications interprocessus s'effectuent au sein d'un seul exécutable. Par conséquent, vous pouvez accéder à toutes les fonctionnalités d'une application en utilisant un seul processus. En revanche, les communications entre les composants distribués d'une application microservice se font par le biais d'un réseau local, ou d'Internet en cas de connexion à des services cloud. Cela multiplie effectivement la complexité de la logique d'authentification et d'autorisation, car les microservices doivent exploiter les API internes pour gérer les relais de données entre leurs composants. Au lieu de s'authentifier une seule fois auprès d'une application, les microservices doivent garantir des autorisations appropriées à plusieurs étapes.
Les bonnes pratiques pour gérer la sécurité et l'authentification dans les microservices
La gestion de la sécurité dans les applications basées sur les microservices est complexe. Contrairement aux applications monolithiques avec un seul point d'entrée, les applications microservices peuvent avoir des centaines de points d'entrée qui introduisent de nombreuses zones de vulnérabilité dans le système. Cependant, il existe plusieurs recommandations de sécurité que vous pouvez suivre pour garantir la sécurité de vos microservices et minimiser leur vulnérabilité aux menaces :
· Développez un protocole d'autorisation personnalisé ou utilisez une solution facilement disponible pour gérer le contrôle d'accès de votre application et l'autorisation de ses différents services.
· Utilisez une bibliothèque de chiffrement existante pour sécuriser votre application. Evitez de développer des bibliothèques de code personnalisées. Il existe de nombreuses bibliothèques open-source pour la mise en œuvre de routines de chiffrement, et elles prennent en charge pratiquement tous les principaux langages de programmation.
· Documentez toutes les bibliothèques et les versions que votre application utilise. Souvent, les développeurs d'applications microservices utilisent plusieurs bibliothèques pour créer un seul service. Certaines de ces bibliothèques peuvent dépendre de bibliothèques externes, tierces. Votre application peut ainsi être exposée à des centaines de bibliothèques provenant de plusieurs fournisseurs, dont vous n'avez peut-être pas conscience. Une telle chaîne de dépendances ouvre votre système à de nombreuses vulnérabilités. Par conséquent, la documentation des bibliothèques de votre application constitue un point de référence crucial.
· Sécurisez toutes les communications de l'architecture de microservices avec TLS
· Veillez à ce que tous les composants des microservices, les bibliothèques dépendantes et les API restent à jour.
L'authentification unique dans l'architecture microservices
L'authentification unique (SSO) permet à une entité de se connecter à un service, une application ou un système et d'accéder automatiquement à d'autres applications sans avoir à se reconnecter. Par exemple, lorsqu'un utilisateur se connecte à son compte Gmail, il est également connecté à tous les autres services Google, notamment YouTube, AdSense et Google Drive. De nombreuses organisations se tournent de plus en plus vers le SSO car il offre une expérience transparente aux utilisateurs qui accèdent à plusieurs applications et services. Cela est particulièrement vrai pour les environnements cloud, car les utilisateurs n'ont besoin que d'un seul justificatif d'identité pour accéder à toutes les applications et à tous les systèmes connexes.
Dans une architecture de microservices, vous pouvez intégrer le SSO dans l'une de ces fonctions :
· L'authentification des utilisateurs lors de l'accès à l'application microservice.
· Authentification d'un composant de microservice lors de la communication avec d'autres composants de l'application
· Authentification des applications externes lorsqu'elles essaient d'accéder à l'application de microservices.
La gestion de l'authentification et de l'autorisation dans une architecture de microservices représente un défi permanent. Chaque composant de l'application microservices a besoin d'un code d'authentification pour gérer le processus d'authentification et d'autorisation. L'utilisation du même code dans tous les microservices constitue un risque pour la sécurité car une seule vulnérabilité dans le code d'authentification compromettra alors tous les composants partageant ce code. Pour ajouter à la complexité, des microservices spécifiques au sein de l'architecture peuvent utiliser un langage de programmation ou un framework web différent pour fonctionner. Heureusement, l'application du SSO à une architecture de microservices peut permettre à tous les composants de microservices, aux utilisateurs et aux applications externes de s'authentifier une fois et d'accéder à l'ensemble des services de l'application.
Protégez vos microservices avec le SSO
L'utilisation du SSO dans les applications microservices atténue de nombreuses complexités associées à la logique d'authentification traditionnelle mise en œuvre dans les applications monolithiques. Avec le SSO, un utilisateur peut fournir un justificatif d'identité pour accéder à une série de services disponibles, tandis que les parties externes peuvent utiliser des API pour accéder à des parties spécifiques de votre application. L'utilisation du SSO dans les microservices est la meilleure option pour protéger vos microservices et atténuer les nombreux défis et problèmes de sécurité associés à l'utilisation d'un justificatif d'identité différent pour accéder à chaque microservice.
Alexandre Cogné,
Expert Cyber,
Chez Ping Identity