2016-07-07 13 views
2

Nun, der Titel ziemlich erklärt alles, aber hier ist das, was ich zu tun versucht:OpenIddict mit Zwei-Faktor-Authentifizierung

ich arbeite auf einer ASP.NET-Core-1.0-Anwendung, die Authentifizierung mit JWT unterstützen muss . Dies ist sehr einfach mit OpenIddict, aber OpenIddict ist eines dieser "magisch im Hintergrund" Frameworks.

Ich möchte die Einfachheit von OpenIddict beibehalten, aber das Standardverhalten ändern, indem ich Identity und seine Zwei-Faktor-Authentifizierungsfunktionen statt nur eine Benutzername/Passwort-Anmeldung verwende.

Ich habe keine Möglichkeit gefunden, einen benutzerdefinierten Login-Manager für OpenIddict bereitzustellen. Gibt es jemanden, der Erfahrung damit hat?

Antwort

2

Dies ist sehr einfach mit OpenIddict, aber OpenIddict ist einer dieser "magisch im Hintergrund" Frameworks.

Yep es ist, weil es entworfen wurde, von Leuten, die keine Ahnung haben, verwendet werden, wie OAuth2 oder OpenID Connect Arbeit, weshalb die meisten die Protokolldetails absichtlich versteckt sind (und damit, warum die Klassen, die den Griff OIDC-Anfragen/-Antworten sind absichtlich nicht ersetzbar).


Ich mag die Einfachheit der OpenIddict halten, aber ändern Sie es von der Verwendung von Identity Standardverhalten und es ist die Zwei-Faktor-Authentifizierung anstelle von nur ein Benutzername/Passwort Login verfügt.

Wenn Sie es einfach finden, ich nehme an, Sie verwenden die „Ressourceneigentümer Kennwortdaten Grant“ in einer Reihe von Blog-Posts demonstriert (zB http://capesean.co.za/blog/asp-net-5-jwt-tokens/ oder http://kerryritter.com/authorizing-your-net-core-mvc6-api-requests-with-openiddict-and-identity/)

Leider ist diese (einfache) OAuth2 grant ist nicht mit 2-Faktor-Authentifizierung kompatibel.


Stattdessen würde ich zu einem interaktiven Fluss wie impliziter oder Autorisierungscode Schale empfehlen, dass Sie dieses Szenario unterstützen kann (da Sie in diesem Fall verantwortlich des Login-Teils sind).

Weitere Informationen finden Sie unter this sample. Es stützt sich einfach auf die AccountController, die mit den Standard-VS-Vorlagen für den Login-Schritt kommt und enthält eine spezielle AuthorizationController, die den Autorisierungsteil behandelt.

2-FA wird nativ von AccountController unterstützt, daher sollten Sie nichts implementieren, um dies in Ihrer Anwendung zu aktivieren.

+1

Oh ja, das ist eine ziemlich gute Probe, um mich zu starten, danke. Es fällt mir schwer, dies für ASP.NET Core herauszufinden. Normalerweise gibt es eine Million Blogposts und Beispiele, die genau das tun, was Sie wollen, aber seit .NET Core noch in der Startphase ist, ist dies nicht der Fall. – larzz11

+0

Danke @Pinpoint, die Vergangenheit, mit der du mir wieder geholfen hast. –