OWIN Die OpenID-Verbindungsautorisierung kann gesicherte Controller / Aktionen nicht autorisieren

9

Ich arbeite an einem Projekt, bei dem ein Drittanbieter als Oauth2-basierter Autorisierungsserver fungiert. Ein Asp.net MVC 5-basierter Client, der den Benutzer zum Autorisierungsserver sendet, um sich zu authentifizieren (unter Verwendung von Login / Passwort), und der Authentifizierungsserver wird ein Zugriffstoken an den MVC-Client zurückgeben. Alle weiteren Aufrufe an Ressourcenserver (APIs) erfolgen über das Zugriffstoken.

Um dies zu erreichen, verwende ich Microsoft.Owin.Security.OpenIdConnect und die UseOpenIdConnectAuthentication-Erweiterung. Ich bin in der Lage, das Zugriffstoken vom Authentifizierungsserver erfolgreich umzuleiten und zu erhalten, aber der Client erstellt kein Authentifizierungs-Cookie. Jedes Mal, wenn ich versuche, auf eine gesicherte Seite zuzugreifen, erhalte ich die Rückrufseite mit dem Zugriffstoken.

Was fehlt mir hier? Mein aktueller Code ist unten.

Die gesicherte Controlleraktion:

%Vor%

Die Startup-Klasse:

%Vor%     
TejSoft 03.12.2015, 06:05
quelle

1 Antwort

3

TL; DR: benutze ResponseType = "id_token token" und es sollte funktionieren.

In OpenID Connect wird response_type=token nicht als zulässiger Wert betrachtet: Ссылка .

Manchmal aus Gründen der Abwärtskompatibilität implementiert, wird response_type=token von der von MSFT entwickelten OIDC-Middleware nicht unterstützt: Es wird immer eine Ausnahme ausgelöst, wenn vom OpenID Connect-Provider keine id_token zurückgegeben wird (was auch die gültige code ausschließt). fließen). Sie können weitere Informationen zu diesem anderen SO-Post finden.

(Anmerkung: In SecurityTokenValidated ersetzen Sie das von der OIDC-Middleware erstellte Ticket mit n.AuthenticationTicket = new AuthenticationTicket(...) : Dies ist nicht der empfohlene Ansatz und führt dazu, dass ClaimsIdentity die wesentlichen Ansprüche nicht enthält Zuweisung und fügen Sie einfach neue Ansprüche wie Sie für die access_token -Anspruch)

    
Pinpoint 13.12.2015, 01:17
quelle