Was ist die Beziehung zwischen owin und oAuth2.0?
Ich studiere externe login-Strategien und die Terminologie verwirrt mich. Was ist der Zusammenhang zwischen der folgenden.
- Owin
- OauthWebSecurity
- OAuth 2.0
- Owin Katana
- ASP.NET Identität
Du musst angemeldet sein, um einen Kommentar abzugeben.
Owin
Owin ist nicht mehr als ein Spezifikation. Es steht für " Open Web Interface for .Net.
In sehr einfachen Begriffen es basiert auf der Idee, dass mit ein paar Sprachkonstrukte (Delegierte und ein Wörterbuch) Sie können einen Rahmen für die Behandlung von web-Anfragen, die-unabhängig davon, wo Sie gehostet wird (Sie können sogar eine "owin-Anwendung" aus einer console app).
Die Umsetzung der Owin-Spezifikation genannt Katana.
OAuth
OAuth 2.0 ist ein Genehmigung Protokoll. Die Idee hinter OAuth ist, dass Sie (die Besitzer der Ressource) kann delegieren von Zugriffsrechten an Dritte. Ein Beispiel dafür ist eine Web app in der Lage, auf Ihre Facebook Wand für Sie.
Wieder, sehr vereinfacht ausgedrückt, dadurch zustande, durch Zusendung einer 302-Umleitung an den Benutzer, wenn Sie auf eine geschützte Ressource. Dass die 302 Weiterleitungen der Benutzer, zum Beispiel auf Facebook die oauth-login-Seite (https://www.facebook.com/dialog/oauth?client_id=...&redirect_url=[yourwebapp]&scope=[permissionsrequiredfromuser]).
Nachdem Sie sich anmelden, auf facebook, akzeptieren Sie die Berechtigung anfordern, facebook sendet eine 302-Weiterleitung auf die redirect_url Sie mit einem access_token, die Sie dann verwenden können, um die Anfragen im Namen des Benutzers, der den Anmeldeinformationen. Zum Beispiel, um Informationen über die Benutzer, die Sie durchführen würden eine Anfrage an https://graph.facebook.com/me?access_token=%5Baccess_token%5D.
Es gibt Variationen für diesen workflow. Sie alle sind erklärt in den links am Ende der Antwort.
ASP.NET Identität
ASP.NET Identität hat nichts zu tun mit ASP.NET. Sprechen Sie über die schlechte Namensgebung... Es stellt Funktionen zum speichern und abrufen von Daten aus einer Datenquelle. Es bietet Ihnen auch mit der Fähigkeit zu verknüpfen, Ansprüche und Rollen der Benutzer, weitere login-Anbieter" (das wäre der Fall, wenn Sie "login mit facebook" und Ihre user_id von facebook bekommt im Zusammenhang mit Ihrer lokalen user-id, diese Informationen werden in der AspNetUserLogins Tabelle).
Wie Sie sehen, wird im MVC-Projekt die Vorlage ist in der Konto-controller und die CookieAuthenticationMiddleware.
Referenzen
Owin/Katana:
http://odetocode.com/blogs/scott/archive/2013/07/09/getting-started-with-owin-katana-and-vs2013.aspx
http://odetocode.com/blogs/scott/archive/2013/11/11/writing-owin-middleware.aspx
http://odetocode.com/blogs/scott/archive/2013/11/12/simple-logging-middleware-katana-part-4.aspx
http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana
http://www.asp.net/aspnet/overview/owin-and-katana/owin-startup-class-detection
OAuth
https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.1
http://blogs.msdn.com/b/webdev/archive/2013/07/03/understanding-owin-forms-authentication-in-mvc-5.aspx
http://www.asp.net/web-api/overview/security/external-authentication-services
ASP.NET Identität
http://brockallen.com/2013/10/20/the-good-the-bad-and-the-ugly-of-asp-net-identity/
http://curah.microsoft.com/55636/aspnet-identity
http://typecastexception.com/post/2014/04/20/ASPNET-MVC-and-Identity-20-Understanding-the-Basics.aspx
https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server (neueste Ansatz - technisch müssen Sie feststellen, nur wenige Methoden. es gibt nur wenige Beispiele, als alternative können Sie prüfen, wie es realisiert wird, in IdentityServer4 für .net-core)