.NET en action : la passerelle - ACSEO

.NET en action : la passerelle

De nos jours, nombre de systèmes sont basés sur les APIs, et notamment les microservices, qui permettent un découpage optimal des traitements. Pour autant, la multiplication des points d’entrée rend également plus difficile la sécurisation d’un système, chacun représentant une vulnérabilité potentielle.
Pour parer à ce problème, il n’est pas rare de mettre en place une passerelle, chargée de faire le lien entre un système interne et les appelants externes.
En combinant .NET et Azure, il est plus facile que jamais de mettre en place ce type d’architecture.

Nous allons ici en explorer les 3 points cruciaux :

  • L’authentification
  • La passerelle
  • Les APIs de traitement
Schéma de l’architecture
.net
Schéma de l’architecture

Authentification

En amont de toute communication, il est nécessaire de sécuriser la passerelle via un système d’authentification.

Dans ce but, Azure met à disposition Microsoft Entra ID (anciennement Azure AD), basé sur OAuth2, facilitant grandement la gestion de l’authentification.

Clients

Dans Entra ID, il est possible de créer un client, possédant notamment un identifiant (client ID) et un mot de passe (client secret).

L’appelant, comme l’API appelée, se verront chacun attribuer un client qui leur permettra de s’identifier.


Il suffira ensuite de paramétrer, dans Azure, les permissions des clients.

L’on pourra ainsi autoriser le client de l’appelant à requêter le client de l’API.

Identification

L’API Entra ID nous permet de récupérer un token JWT, en fournissant les informations suivantes :

  • Client ID
  • Client secret
  • Scope (client ID de l’API cible)

Ce token, contenant les données d’identification de l’appelant, sera à transmettre à l’API cible.
Il lui permettra d’identifier l’appelant, et donc de refuser automatiquement toute requête provenant d’une source non autorisée.

Passerelle

Une fois la requête acceptée par la passerelle, elle peut être transmise aux APIs internes en toute sécurité.

Un choix s’offre alors quant au type de routage à développer, pour répondre au mieux aux besoins.

Routage générique

Dans le cas le plus simple, où la passerelle n’est là que pour centraliser la communication vers l’extérieur dans un but de sécurité, un routage générique est suffisant.

Via un paramétrage en base ou en configuration de l’application, l’on liste les correspondances entre URL entrante et URL sortante.
La passerelle n’aura alors plus qu’à vérifier si l’URL appelée est configurée en tant que route entrante, et à appeler l’URL sortante correspondante le cas échéant.

Routage spécifique

Pour des besoins plus complexes, la passerelle peut effectuer un pré-traitement de la requête avant de la transmettre.

L’on pense notamment au cas de route spécifique par client, dont le traitement serait commun.
Il suffit d’implémenter une traduction des requêtes spécifiques, en fonction de la route, vers une requête générique qui sera transmise à l’API de traitement.

De manière similaire, il est également envisageable de prévoir une consolidation des données, afin d’assurer un traitement optimal.

En cas de traduction et/ou de consolidation, la réponse de l’API de traitement devra également être traitée avant d’être transmise à l’appelant.

Traitement

Une fois la requête validée par la passerelle, elle est transmise aux APIs de traitement, chacune spécialisée dans un domaine.

Dans le cas d’un système naissant, chaque API s’occupe de tous les traitements.
Au contraire, si la passerelle s’inscrit dans la refonte de l’existant, particulièrement dans le cas d’un écosystème ancien/complexe, ces APIs peuvent être amenées, durant leurs traitements, à interroger d’autres systèmes internes.

Une fois un traitement terminé, l’API répond à la passerelle, qui s’occupe de faire le lien avec l’appelant.

ACSEO est une agence digitale qui vous accompagne dans le développement de vos projets avec la technologie .NET, grâce à une équipe d’experts en interne maîtrisant les solutions web et applicatives sur mesure. Spécialistes du développement .NET, nous concevons des plateformes performantes, évolutives et sécurisées, adaptées à vos besoins. Contactez-nous pour donner vie à votre projet avec une expertise technique de pointe !

Publié le 16/01/2025 à 19:04
.NET en action : la passerelle

Les tendances tech de Janvier : quitter X, salon CES 2025, voeux 2025, Daily dose of DS et plus…

En Janvier, on vous présente les tendances tech et on commence, bien sur avec nos meilleurs voeux via un générateur ACSEO-made ; on vous parle aussi d'autres sources d'inspiration et veilles techno / Data science et on vous raconte comment faire si, comme nous, vous pensez quitter X...

La recherche Typesense avec Sylius

L’intégration de Typesense dans Sylius via le plugin acseo/sylius-typesense permet d’obtenir une recherche rapide, tolérante aux fautes et personnalisable. Le processus inclut l’installation du plugin, la configuration Docker et l’indexation des données Doctrine pour une recherche optimale.


.NET en action : la passerelle

Les tendances tech de Janvier : quitter X, salon CES 2025, voeux 2025, Daily dose of DS et plus…

En Janvier, on vous présente les tendances tech et on commence, bien sur avec nos meilleurs voeux via un générateur ACSEO-made ; on vous parle aussi d'autres sources d'inspiration et veilles techno / Data science et on vous raconte comment faire si, comme nous, vous pensez quitter X...

La recherche Typesense avec Sylius

L’intégration de Typesense dans Sylius via le plugin acseo/sylius-typesense permet d’obtenir une recherche rapide, tolérante aux fautes et personnalisable. Le processus inclut l’installation du plugin, la configuration Docker et l’indexation des données Doctrine pour une recherche optimale.

Une idée, un projet ? Nous sommes à votre disposition pour discuter. Contactez-nous