2017-05-18 2 views
1

Ich beginne mit Identity Server 4 (unter ASP.NET Core) mit dem Implicit-Flow, um ein Angular 2-Frontend (für Web-API-Dienste) zu sichern.Identity Server 4/OpenID Connect-Standard-Weiterleitungs-URL

Mit der oidc-client JS library kann ich erfolgreich von der Standardseite des Beispiels auf meine Anmeldeseite umleiten, den Benutzer authentifizieren lassen und anschließend den Rückruf der Angular-Site umleiten (via/connect/authorize).

Wenn ein Benutzer direkt meiner Authentifizierung Login-Seite (und nicht die Winkel Startseite) blättert, kann ich dann authentifizieren, haben aber nirgendwo zu umleiten. Wenn ich manuell auf die/connect/authorize-Seite des Authentifizierungsservers umleite, meldet der OIDC-Client "Kein übereinstimmender Status im Speicher gefunden". (Vermutlich speichert der OIDC-Client lokal etwas, um die Antwort auf die ursprüngliche Anfrage zu überprüfen?).

Eine offensichtliche Lösung ist, dass der Auth-Server alle Anfragen umleitet, ohne dass eine Umleitung auf den Angular-Client festgelegt ist, die dann wie gewohnt zum Auth-Server zurückgeleitet werden kann. Das fühlt sich an wie viele Rundreisen.

Antwort

2

Ja - weil das nicht funktioniert. Der Authentifizierungsablauf beginnt bei der Client-Anwendung - nicht beim Identity-Provider.

Ein OpenID Connect-Anbieter verfügt normalerweise über mehrere Clients. Daher benötigt er kontextabhängige Informationen (eine gültige OIDC-Autorisierungsanforderung).

Wenn Sie möchten, dass die Reise beim Anbieter beginnt, müssen Sie etwas tun, wie Sie vorgeschlagen - aber wenn Sie einen zweiten Client haben, müssen Sie schlauer darüber sein (z. B. einen Auswahlbildschirm usw.).

+0

Danke, dass Sie sich die Zeit genommen haben zu bestätigen, dass ich mir nicht allzu sehr bewusst war. (Die Realität ist, einige Benutzer werden immer die Login-Seite mit einem Lesezeichen versehen, so funktioniert es zumindest gelegentlich). Google (zum Beispiel) macht so ziemlich das, was Sie sagen und leitet zu einem Account-Administrator um Seite als Standard Wirklich schätzen Sie Ihre Kommentare; Vielen Dank. –