2017-08-02 1 views
0

J'ai créé une application Web NET Core pour mon entreprise à l'aide de l'authentification Azure AD à locataire unique. L'application est un outil d'administration pour la définition des variables utilisées par d'autres applications (anciennes). L'URL racine est comme "https://mycompanyadmintool.azurewebsites.net". Il fonctionne très bien..NET Core: Comment changer l'authentification en fonction de la structure de l'URL?

Maintenant, on m'a demandé d'ajouter ce que nous pouvons appeler «l'authentification héritée» à l'application. Ceci est une solution temporaire et nous espérons qu'elle sera bientôt abandonnée. Fondamentalement, cela signifie que lorsque l'application est appelée avec une URL comme celle-ci: "https://mycompanyadmintool.azurewebsites.net/<some Guid or string or number or whatever>", la connexion Azure AD doit être ignorée. Ensuite, la dernière partie de l'URL sera vérifiée et l'authentification réussira ou non.

Peu importe ce que j'essaie, je ne peux pas contourner l'authentification Azure AD (sauf de la désactiver totalement!) Et faire ce travail sans beaucoup de hacks et astuces bon marché (beaucoup de mauvais code).

Je suis assez nouveau pour .NET Core et middleware +++ et j'ai besoin de conseils ici. J'ai essayé d'examiner le routage MVC, j'ai le sentiment qu'une partie de la solution pourrait avoir quelque chose à voir avec le routage.

Quelqu'un at-il une suggestion sur la façon de le faire de la "bonne" manière? Reconnaissant pour toute aide ou conseil.

Répondre

0

Vous pouvez essayer d'ouvrir une branche distincte dans le pipeline de requêtes avec une authentification distincte. Cela devrait fonctionner en utilisant les méthodes app.Map ou app.MapWhen: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware

app.Map("/subpath", sub_app=> { 
    sub_app.UseWhateverAuth(); // <= custom auth 
    // ... 
    sub_app.UseWhateverMiddleware(); 
    sub_app.UseMvc(); 
}); 
+0

Merci de m'avoir indiqué cette documentation. Je n'étais pas au courant de "app.Map" - semble prometteur. Je vais essayer cela et revenir avec le résultat. – JorgenH