1

angegeben Wenn ich wie URI in meinem OpenIdConnectAuthenticationOptions angeben umleiten soInfinite Umleitung Schleife nach Authentifizierung AAD wenn Umleitung

app.UseOpenIdConnectAuthentication(
      new OpenIdConnectAuthenticationOptions 
      { 
       ClientId = clientId, 
       Authority = Authority, 
       PostLogoutRedirectUri = postLogoutRedirectUri, 
       RedirectUri = redirectUri, 

       Notifications = new OpenIdConnectAuthenticationNotifications() 
       { 
        AuthenticationFailed = context => 
        { 
         context.HandleResponse(); 
         context.Response.Redirect("/Error?message=" + context.Exception.Message); 
         return Task.FromResult(0); 
        } 
       } 
      }); 

Dann bekomme ich eine unendliche Schleife Umleitung. Dies geschieht jedoch nur, wenn ich es anschließe und den eigenständigen IIS Server (unseren Testserver) einsetze. Wenn ich alle Replay-URLs in AAD entferne und es nur für den Testserver eingerichtet lasse und die "RedirectUri = redirectUri" entferne, geht mein Problem von oben weg.

Ich habe einen Fiedler lügt hier: https://drive.google.com/file/d/0B5Ap95E_wdyAa0RLLWloZ0dCaGM/view?usp=sharing

Es scheint, dass, wenn Anfrage von AAD zurück zu meiner App kommt, bevor das Token gepackt und verwendet wird, wird die Middle Ware Prellt es nur gleich wieder mit einem 302. Was auch wichtig sein mag, ich habe das [Authorize] -Attribut über den mvc-Controller, auf den das Routing und die Return-Uri verweisen. Wenn ich es entferne, bekomme ich dieses Problem nicht.

[UPDATE] Ich habe versucht, die Anwendung auf meine Localhost-Installation von IIS zu verschieben, anstatt iisexpress zu verwenden, damit ich mich als SubApplication einrichten konnte, so wie es auf meinem IIS-Server ist. Auf meinem localhost tut es die gleiche Endlosschleife. Ich habe einige benutzerdefinierte Telemetry-Ereignisse hinzugefügt, die das Attribut [Autorisieren] außer Kraft gesetzt haben, und konnte feststellen, dass die Seite nach der Authentifizierung erneut an die Anwendung weitergeleitet wird. HttpContext.user.identity.IsAuthenticated = false. Irgendwie setzt die OWIN Middleware das nicht auf True?

Danke für jede Hilfe!

+0

ich versuchen, Ihr Problem zu reproduzieren, aber nicht, könnten Sie mehr Details liefern uns, dass reproduzieren zu helfen, wenn Sie keinen Wert von RedirectUri Parameter angeben, wird der Parameter weggelassen und AD Azure wird derjenige bei der Registrierung registriert Pick Zeit . –

+0

@ NanYu-MSFT Danke für den Kommentar. Ich habe vergessen hinzuzufügen ist, dass diese Anwendung als Sub-App von einer Haupt-Website in IIS, so "Mainsite.com/thisApp" eingerichtet ist. Wenn es lokal ausgeführt wird, wird es als eigenständige App ausgeführt, und ich erhalte den Re-Direct-Fehler nicht. Denken Sie, dass das ein Teil des Problems sein könnte? Das erste URI, das registriert wurde, war die localhost-Version. Dann fügte ich meinen URL-Pfad für den Testserver für eine zweite Antwort-URL manuell in AAD ein. Hilft das überhaupt? – Mike

+0

@ NanYu-MSFT Ich konnte ein bisschen mehr Tests durchführen und fand mehr Details heraus (siehe oben). Hauptsache, die IsAuthenticated-Eigenschaft wird nach der Authentifizierung auf false gesetzt, wenn sie wieder zur Anwendung kommt, aber ich verstehe nicht warum funktioniert perfekt auf meinem lokalen! – Mike

Antwort

1

konnte ich eine Lösung für mein Problem finden. Ursprünglich habe ich meine Antwort URL angegeben, um auf den Stamm der Website zu verweisen. Meine Router-Konfiguration sieht so aus:

Wenn ich "Willkommen" an das Ende meiner Antwort URL anfügen funktioniert es. Aus irgendeinem Grund, wenn ich die Antwort-URL zum Root der Site belasse und die Standardroute aufgenommen habe, geht sie einfach in eine Endlosschleife.

fand ich auch darauf hin, dass dies nur zu einer Unter Anwendung einer Website. Ich habe versucht, meine Anwendung zu verschieben, um eine eigenständige Website in IIS zu sein, anstatt, und ich musste den Controller-Namen in der Antwort-URL nicht hinzufügen.

Beispiel:
Ursprüngliche Antwort url: mysite.mydomain.com/CustomApp

Neue Antwort url: mysite.mydomain.com/CustomApp/Welcome

Hoffnung jemand anderes kann finde das nützlich!

+0

Ich fand heraus, dass der Grund des Problems immer noch von diesem mvc5-Fehler verursacht wurde: https://katanaproject.codeplex.com/workitem/197. Ich dachte, es wurde behoben, aber es hat nicht, also werde ich weiterhin den bekannten Kentor Owin Cookie Saver verwenden: https://github.com/Sustainsys/owin-cookie-saver – Mike