Ich stoße auf einige Probleme mit der Authentifizierungspipeline in ASP.NET Core. Mein Szenario ist, dass ich eine Anfrage an einen Benutzer stellen möchte, der bereits mit OpenID Connect und Azure AD authentifiziert wurde. Es gibt mehrere Szenarien, in denen Sie dies tun möchten, beispielsweise wenn Sie zusätzliche Bereiche in einem AAD v2-Endpunktszenario anfordern.
Dies funktioniert wie ein Zauber in ASP.NET MVC, aber in ASP.NET Core MVC wird der Benutzer auf die Seite Zugriff verweigert weitergeleitet, wie in der Cookie-Authentifizierungs-Middleware konfiguriert. (Wenn der Benutzer nicht angemeldet ist, funktioniert die Aufgabe wie erwartet.)
Nachdem ich ein paar Stunden im Internet gesucht und verschiedene Parameter für meine Middleware-Optionen ausprobiert habe, beginne ich zu vermuten, dass entweder etwas Offensichtliches fehlt oder dieses Verhalten von Entwurf ist und ich meine Anforderung einige andere lösen muss Weg. Irgendwelche Ideen dazu?
EDIT: die relevanten Teile meiner Startup.cs sehen so aus:
%Vor%Und die Aktion sieht so aus:
%Vor%Ich habe einen Hinweis und die Lösung hier gefunden: Ссылка . ChallengeBehavior.Unauthorized ist der "Schlüssel".
Dieser Beitrag enthält die aktuelle Problemumgehung (November 2016 - ASPNet 1.0.1): Ссылка
Sie benötigen ein neues ActionResult, um AuthauctionManager.ChallengeAsync mit dem ChallengeBehavior.Unauthorized-Verhalten aufrufen zu können.
Sobald das Problem Ссылка erfolgreich geschlossen wurde, sollte dies integriert werden.
Ich habe es getestet und es hat sehr gut funktioniert (mein Ziel war es einfach, Google-Bereiche pro Benutzer zu erweitern).
Tags und Links asp.net-core azure-active-directory openid-connect