Bonjour,
Je cherche à mettre en place une architecture Microservices pour une solution applicative développée en C# / Asp.Net MVC.
Cependant, bien que j'arrives à conceptualiser (voir diagramme de séquence joint) les interactions entre mes services "métier", mon service d'authentification et mon service d'autorisation, je n'arrive pas a comprendre techniquement comment le mettre en œuvre.
Pour le service d'authentification, je suis parti sur une simple WebApi avec authentification par compte utilisateur individuels.
Je me doute que je peux le faire manuellement avec HttpClient pour chaque requête, mais le but de la manœuvre est d'automatiser tout ça.
Mais mon idée serai de pouvoir continuer à me servir de l'attribut "Authorize" en le personnalisant pour qu'il prenne en paramètre : "Contrôleur" et "Action".
Ainsi dans mon service d'autorisation, je regarde pour l'application appelante, si l'utilisateur fournit par le service d'authentification est autorisé à appeler l'action donnée du contrôleur donné.
En gros, toute la partie en rouge sur le diagramme, serait exécutée par la simple utilisation de l'attribut "Authorize" sur la méthode appelée.
Sauf que la dedans, je ne vois pas comment mes services métiers peuvent savoir que l'attribut Authorize doit aller vérifié si l'utilisateur est connecté dans un autre service.
Je pourrais créer un nouvel attribut Authorize qui hérite de celui du framework (c'est ce que j'ai fait pour avoir le contrôleur et l'action), mais je ne sais pas comment, depuis le code de cet attribut rediriger vers une page de connexion en cas d'échec de l'authentification.
D'ailleurs, je ne vois même pas où je dois implémenter mes vues d'inscription / connexion, pour ne pas avoir à les redévelopper pour chaque service métier.
Est-ce clair ? Je suis moi-même un peu perdu dans ma tête.
Peut-être que je me prends la tête et que AspNet Identity prévoit déjà la connexion multi-applications. Mais dans ce cas, avez-vous des tutos à me donner, je n'en trouve aucun.
A bientôt,
TL
Partager