ASP.NET 5 Web-API unterstützt soziale Logins, individuelle Konten, Kontoverwaltung, Autorisierungsbildschirme und ASP.NET-Identität. Existiert es?

8

Dies ist im Wesentlichen ein Update für Diese Frage von vor fast zwei Jahren antwortete sehr hilfreich von @Pinpoint von AspNet.Security.OpenIdConnect.Server fame.

Ich werde nur die Tirade für alle, die sich in die 4-Uhr-Gotteslästerungen eines frustrierten Entwicklers gönnen wollen, auf den Boden stellen.

Ich starte ein paar neue Projekte und aus meinen eigenen Gründen möchte ich die neuesten Versionen von ASP.NET-Technologien verwenden ( ASP.NET 5 vNext und MVC 6), um loszulegen.

Eine sehr beliebte moderne Anwendungsarchitektur

  • Sichere REST-API mithilfe von Token
  • Unterstützung für einzelne Logins
  • Unterstützung für soziale Logins

Neueste und großartigste techy .NET Sachen

Typischerweise kann OAuth2 für die Authentifizierung verwendet werden.

Das Problem

ASP.NET unterstützt die Erstellung von Token mit OAuth2 < a, aber es nicht mehr und wird nicht und anscheinend es war sowieso nicht sehr gut . Es gibt einige Hilfe , aber ich bin immer noch ein wenig Sie haben nicht mehr nach ASP.NET Identity und dem neuen Attribut Authorize gesucht.

Also zu meiner eigentlichen Frage.

Gibt es irgendwo in diesem welligen, windigen, gruseligen Internet ein Beispiel, das folgendes zeigt:

  • ASP.NET 5 / MVC 6-basierte REST-API, gesichert mit ASP.NET Identity und OAuth2, mit einem AccountController , der fröhlich Konten und Serving-Token für soziale Logins oder individuelle Logins mit einem schönen ASP.NET Identity-Benutzerspeicher erstellt um die Dinge sauber zu halten, eine Passwortwiederherstellung und eine Reihe von modernen Standardaccounts und Berechtigungsbildschirmen zur Bestätigung von Berechtigungsanfragen ("XXX möchte auf Ihr Konto zugreifen, ist das OK?" usw.)
  • (optional) Client-App (es ist mir egal, ob es WPF, Cordova, AngularJS ist, in Assembler geschrieben oder auf einem ZX81 mit Meccano Automatisierung der Tests), die das Einloggen unterstützt, sowohl sozial und mit individuellen Konten, zu einer REST-API und bekommt ein nettes kleines Token, um in der Luft wie ein Polaroid zu fächeln

Ich habe einige Dinge gefunden, die schließen , näher und so weiter . Aber keine, die passen.

Soweit ich das verstanden habe, kann ich die neuen Richtlinien-basierten Autorisierungs-Sachen von ASP.NET 5 nicht mit IdentityServer3 verwenden. Ich kann nicht der einzige Mensch sein, der diese Architektur will, hat jemand das geschafft?

Ich fühle mich jedes Mal, wenn ich komme, um meine App zu sichern, das Rad ein wenig erfunden.

Rant

Ich bin seit über einem Jahr von Autorisierungszeugnissen weg, aber ich bin wieder reingekommen und die Dinge haben sich geändert. Und es ist alles ziemlich verwirrend mit OWIN , Katana , ASP.NET Identity , IdentityServer3 , AspNet.Security.OpenIdConnect.Server . Es scheint, dass es nur (wenn auch sehr gute) Nebenprojekte gibt, die einen .NET-basierten sicheren Token-Server vollständig unterstützen. Durch "Nebenprojekte", meine ich nichts gegen diese tollen Projekte, nur dass es Microsoft nichts gibt und / oder bezahlt wird.

Ich möchte mit einer ganzen Menge Entwicklung beginnen, aber ich stehe immer auf die Implementierung der Authentifizierung in dem, was ich mir nicht vorstellen kann, ist eine unpopuläre Architektur.

Es scheint mir so unglaublich, dass ein solches Standard-Architekturszenario von Microsoft so geschickt in Betracht gezogen wird.

Wenn ich Logins in meiner REST-App implementieren möchte, finde ich mich in einem verwirrend lautstarken Orchester mit feuernden Informationen auf dem Kopf und drinnen.

Wenn jemand eine gepflegte Open-Source-Template-Lösung starten möchte, lassen Sie es mich wissen. Ich habe die Nase voll vom Start der Erstellung von REST, Token-basierte Anwendungen sind so unnötig komplex für etwas so grundsätzlich Standard.

    
joshcomley 11.12.2015, 02:51
quelle

1 Antwort

5
  

Gibt es irgendwo in diesem welligen, windigen, gruseligen Internet ein Beispiel, das folgendes zeigt:

     

ASP.NET 5 / MVC 6-basierte REST API, gesichert mit ASP.NET Identity und OAuth2, mit einem AccountController, der fröhlich Konten und Serving-Token für soziale Logins oder individuelle Logins erstellt, mit einem schönen ASP.NET Identity-Benutzerspeicher Dinge aufgeräumt, Passwort-Wiederherstellung und eine Reihe von modernen Standard-Accounts und Autorisierungs-Bildschirme zur Bestätigung von Berechtigungen Anfragen ("XXX möchte auf Ihr Konto zugreifen, ist das OK?" etc.)

Ich arbeite gerade an einem ganz neuen Identitätsserver namens OpenIddict : Er basiert auf < a href="https://github.com/aspnet/Identity"> ASP.NET Identity 3 (das mit ASP.NET 5 geliefert wird) und verwendet AspNet.Security.OpenIdConnect.Server intern, um den gesamten OIDC-Fluss zu steuern. Es soll den einfachsten Weg bieten, mit der Token-Authentifizierung zu beginnen und es ist sowohl mit dem vollständigen .NET Framework als auch mit dem neuen .NET Core kompatibel.

Natürlich ist es weder entwickelt noch von Microsoft gegründet (zögern Sie nicht, uns zu unterstützen), aber es entspricht Ihren Anforderungen: es kommt mit einem internen Controller, der die Autorisierungserfahrung steuert (dh den Einwilligungsteil) und verlässt sich auf das AccountController , das Sie Ihrer Anwendung hinzufügen, um den lokalen / externen Authentifizierungsprozess zu verarbeiten.

Es ist immer noch in den frühen Phasen und Sie brauchen die ASP.NET 5 / DNX RC2 nächtlichen Builds, um es zu verwenden , aber es ist ziemlich einfach zu konfigurieren. Sie müssen nur AddOpenIddict() von ConfigureServices aufrufen und UseOpenIddict() von Configure hinzufügen. Sie finden weitere Informationen im GitHub-Repository .

%Vor%     
Pinpoint 11.12.2015 04:56
quelle