Aspnetcore: 2.2 Roadmap-Diskussion

Erstellt am 25. Juni 2018  ·  117Kommentare  ·  Quelle: dotnet/aspnetcore

Diskussion zur Ankündigung der 2.2 Roadmap: https://github.com/aspnet/Announcements/issues/307

Hilfreichster Kommentar

Roadmap sieht gut aus, insbesondere Health Checks und HTTP 2.0. Auf die freundlichste Art und Erstanbieter- Microsoft-Autorisierungsserver zu erstellen. IdentityServer4 füllt diese Lücke gut und die Zeit, die für die Neuimplementierung einer einfacheren Version aufgewendet wird, könnte besser an anderer Stelle verwendet werden. Ich verstehe, dass das Ziel darin besteht, eine einfache Lösung bereitzustellen, aber die Authentifizierung ist schwierig und IdentityServer bietet eine API, die so einfach wie möglich ist. Wenn es Ideen für eine einfachere Abstraktion gibt, könnte sie auf IdentityServer aufbauen, damit die Benutzer die einfache Abstraktion verwenden können, aber die Leistung haben, wenn sie sie benötigen.

Aktualisieren

Im Standup der ASP.NET-Community wurde erwähnt, dass das ASP.NET Core-Team mit dem Identity Server-Team über die Optionen spricht, einschließlich des Aufbaus von etwas auf Identity Server. Ich denke, das wollen wir alle, gut gemacht!

Alle 117 Kommentare

Was ist mit der EF Core 2.2-Roadmap?

Was ist mit der EF Core 2.2-Roadmap?

https://github.com/aspnet/Announcements/issues/308

Roadmap sieht gut aus, insbesondere Health Checks und HTTP 2.0. Auf die freundlichste Art und Erstanbieter- Microsoft-Autorisierungsserver zu erstellen. IdentityServer4 füllt diese Lücke gut und die Zeit, die für die Neuimplementierung einer einfacheren Version aufgewendet wird, könnte besser an anderer Stelle verwendet werden. Ich verstehe, dass das Ziel darin besteht, eine einfache Lösung bereitzustellen, aber die Authentifizierung ist schwierig und IdentityServer bietet eine API, die so einfach wie möglich ist. Wenn es Ideen für eine einfachere Abstraktion gibt, könnte sie auf IdentityServer aufbauen, damit die Benutzer die einfache Abstraktion verwenden können, aber die Leistung haben, wenn sie sie benötigen.

Aktualisieren

Im Standup der ASP.NET-Community wurde erwähnt, dass das ASP.NET Core-Team mit dem Identity Server-Team über die Optionen spricht, einschließlich des Aufbaus von etwas auf Identity Server. Ich denke, das wollen wir alle, gut gemacht!

Was sind die aktuellen Pläne für ASP.NET Core WebHooks ?

Was den Dispatcher angeht, ist das dann in der Middleware möglich? 😱
C# public async Task Invoke(HttpContext context, [FromRoute] SomeModel someModel)
[FromQuery]?

Simple Auth Server, aber denken Sie auch daran, was mit dem einfachen Auth Server von Katana passiert ist

Ich möchte die Bedenken von @RehanSaeed wiederholen und um einige Klarstellungen bitten, welche genauen Anwendungsfälle dieser neue Server erfüllen soll. Wenn dies in erster Linie so ist, dass Web-APIs eine Möglichkeit haben, ihr Inhaber-Token zu erhalten, das innerhalb der vorhandenen Authentifizierung der App gültig ist, dann wäre das in Ordnung. Aber alles darüber hinaus sollte wohl besser den bestehenden Lösungen überlassen werden, die mit Produkten wie IdentityServer, OpenIddict und AspNet.Security.OpenIdConnect.Server bereits viele Optionen unterschiedlicher Komplexität und Flexibilität bieten.

Was ist mit IIS In-Process-Hosting ?

Könnten Sie den TypeScript-Teil von "API-Client-Generierung (C# & TypeScript)" näher ausführen?

Das wäre wirklich etwas, worauf ich mich freuen würde. Derzeit verwende ich NSwag zum automatischen Generieren meiner Angular Client API-Dienste. Aber es sind einfach so viele verschiedene Kombinationen für Client-Konfigurationen möglich, dass ich denke, dass dies problematisch sein könnte, um alle zufrieden zu stellen.

Gerade aus dem Kopf, etwas, das beachtet werden sollte (und wenn möglich konfigurierbar sein sollte):

  • Nur ein TypeScript-Client mit fetch oder ein Angular Service mit HttpClient?
  • Wenn es Angular ist, welche Versionen unterstützen Sie (auch wichtig für RxJS)?
  • null/undefinierte Behandlung
  • Aufzählungsbehandlung
  • JS date oder momentjs für Datumstypen?
  • Ausnahmebehandlung, Validierungsfehlerbehandlung
  • Wie erweitere ich den generierten Code im Client?
  • Möglichkeit zur Beeinflussung der Namensgenerierung (zB Streichen des DTO-Teils aus xxxDTO für die generierten Client-Klassen oder bereits bei der OpenAPI-Definition)

Wenn es möglich wäre, für Funktionen abzustimmen, wären diese Verbesserungen/Fixes an bestehender Middlware auf meiner Wunschliste:

Ich stimme auch dafür, das Autorisierungsserver-Produkt zu überspringen. Sicherheit ist kompliziert und es gab einen großen Schub, auf Cloud-Dienste umzusteigen, um die Wartung zu entfernen, und jeder, der mehr Kontrolle möchte, kann bereits den gut entwickelten, getesteten, dokumentierten und unterstützten IdentityServer4 verwenden . Eine einfache Einrichtung dauert 5 Minuten und es gibt viele Startbeispiele, Videos und Tutorials.

Ich kann nicht mehr erkennen, wie Sie die Sicherheit als "Null-Konfiguration" zum Laufen bringen können, genauso wenig wie sie es können. Es scheint, als würde dies nur noch mehr Verwirrung (bei der Benennung und Verwendung) verursachen, während es zu einer weiteren Sache wird, die jahrelang unterstützt und gewartet werden muss und die Arbeit anderer Funktionen kontinuierlich abnimmt. Bitte überdenken Sie dies.

Ich bin auch neugierig, warum In-Process-Hosting von IIS nicht in dieser 2.2-Roadmap enthalten ist. Dies ist ein wichtiges Merkmal und ist ein wichtiger Faktor in unserer Release - Strategie und Zeitpläne hier auf Stack - Überlauf und es wurde bereits letzten Minute vor dem 2.1 Release entfernt, stattdessen ein 2,2 Zeitraum viel versprechend . Bitte sagen Sie mir, dass dies nur ein Versehen ist und keine weitere Planänderung.

Bearbeiten: @DamianEdwards antwortete auf Twitter, dass dies tatsächlich ein Versehen war (was bedeutet, dass es für 2.2 geplant ist). Puh!

Ich werde andere Kommentare wiederholen. Wenn Sie in Authorization/Policy investieren möchten, insbesondere um es einfacher zu machen, würde ich persönlich viel lieber eine Partnerschaft mit OpenIddict und IdentityServer für Dokumente und Investitionen in Gerüste sehen. Ich kann nicht umhin, das Gefühl zu haben, dass jede Arbeit, egal wie einfach sie auch sein mag, am Ende dazu führen wird, großartige Bemühungen von Drittanbietern zu duplizieren und unnötige Wartungskosten für das aspnet-Team zu verursachen.

Es ist vielleicht eine unpopuläre Ansicht, aber ich würde gerne einen Microsoft Auth-Server sehen, der in der Öffentlichkeit gebaut wird, mit unserem Beitrag und unserer Unterstützung.

Die aktuellen - Id4, OpenIddict - sind offensichtlich ausgezeichnete OSS-Projekte, und ich kann des Gefühls nicht umhin, dass eines mit der Unterstützung von MS dahinter jemals eine schlechte Sache sein könnte...?

Es gibt eine Grenze dafür, wie viel Unterstützung von einer kleinen Gruppe von Personen zur Verfügung steht, und dies sind schließlich geschäftskritische Produkte.

Ich finde es schade, dass der MS OSS-Verhaltenskodex keine Zeile enthält, die besagt: "Bewerben Sie keine Funktionen, die etwas duplizieren, das mit einer Nuget-Anfrage eingebracht werden kann und das ein Zwei-Mann-Unternehmen beiläufig zerschmettern wird trägt zu unserem Ökosystem bei".

Der Zyniker in mir fragt sich, ob es für einige Insider eher ein Merkmal dieses Vorschlags war als ein Fehler, Brock und Dominick eine blutige Nase zu verpassen. Geschieht das mit kleinen Unternehmen, die jemals die Kühnheit haben, alles zu kritisieren, was das ASP-Team tut?

Ich frage mich auch, ob es darum geht, andere Authentifizierungsfunktionen zu duplizieren, als etwas darauf aufzubauen, wie z. B. Benutzeroberflächen und Dokumentation.

Außerdem wäre eine gut getestete JSON-LD 1.1-Bibliothek eine schöne, spezifische Ergänzung der Roadmap. :)

Um das zu wiederholen, was andere gesagt haben - ich würde es viel lieber sehen, dass Autorisierungsarbeit von etwas wie IdentityServer4 eingebracht wird, als von Ihnen neu implementiert zu werden. Wenn es Lücken gibt, wäre es sicherlich der bessere Weg, diese durch Beiträge, Stichproben und die Verfeinerung von Integrationspunkten zu überbrücken. Achten Sie vielleicht auch auf Ihr Cloud-Angebot in diesem Bereich (B2C), der sich in einem erschreckenden Zustand befindet.

Darüber hinaus, während Sie sagen, dass das Ziel nicht darin besteht, die Funktionalität in bestehenden Open-Source-Angeboten zu replizieren und die Dinge einfach zu halten, entspricht dies in gewisser Weise der klassischen Rewrite-Falle: "Diese Lösung ist zu komplex und ein bisschen chaotisch, lass es uns neu schreiben! ". Es ist naiv und in n Versionen würde ich Geld dafür ausgeben, dass Sie sich mit den vielen Grenzfällen beschäftigt haben, die reale Lösungen erfordern und mit denen sich so etwas wie IdentityServer bereits befasst.

Im Allgemeinen hat es mit der Übernahme von GitHub in letzter Zeit viele Diskussionen über die Haltung von Microsoft gegenüber Open Source gegeben. Es ist großartig, dass Microsoft so viel Open Source leistet, aber ein Teil eines guten Open Source-Bürgers ist es, vorhandenes Open Source zu nutzen, wenn es existiert.

Dies ist besonders wichtig für Plattforminhaber wie Sie selbst - ein Plattforminhaber, der Funktionen in bestehenden Open-Source-Angeboten dupliziert, _von Beiträgen abhält_, während er sich mit diesen Angeboten beschäftigt, _ermutigt_ Beiträge.

Auch ich kann den Aufwand für die Autorisierung nicht erkennen, möchte aber, dass die _Verwaltung_ von ASP.NET Core Identity verbessert wird. Damian Edwards war auf live.asp.net ziemlich klar, dass wir unsere eigene Sicherheit nicht rollen sollten, aber - sofern ich es nicht übersehen habe - ASP.NET Core Identity enthält keine Benutzerverwaltungstools und daher müssen wir rollen unser eigenes. Das finde ich ein bisschen erschreckend, da ich kein Sicherheitsexperte bin und Todesangst habe, eine selbstgemachte Sicherheitslücke zu hinterlassen.

Wie wäre es mit dem Verschieben von Inhaltsformatierern von MVC-Ebene in AspNetCore.Http-Abstraktionen in 2.2?

Vielleicht könnte der verantwortliche PM eine detailliertere Beschreibung dieses Identity Server Lite verfassen, um genau zu verdeutlichen, welche Mängel in den bestehenden Open-Source-Lösungen von Drittanbietern das ASP.NET-Team beheben möchte. Denn so wie es aussieht, redest du davon, ein Rad neu zu erfinden, aber vielleicht ein paar Speichen zu entfernen, und das macht nicht viel Sinn. Wie jemand anderes gesagt hat, wäre es großartig, AAD B2C zu reparieren und eine erstklassige Integration damit bereitzustellen, und es wäre für MS wirtschaftlich sinnvoll.

Haben Sie sich auch schon überlegt, wie schwierig es sein wird, ein neues, grundlegendes Auth-Serverprodukt nach @blowdart zu bekommen?

Gibt es Pläne für eine integrierte RESTful-API-Unterstützung wie die von Django?
Denn es ist etwas, das alle Entwickler jedes Mal schreiben!

Ich habe kürzlich etwas gebaut, das als Generic RESTful API Controller geschrieben werden könnte:

https://github.com/0xRumple/dorm-portal/blob/master/DormPortal.Web/Controllers/StudentsController.cs

Stimmen Sie auch zu "Ich sehe nicht, wie Sie Sicherheit als "Null-Konfiguration" zum Laufen bringen können, genauso wenig wie sie es können" und "Sie sprechen davon, ein Rad neu zu erfinden, aber vielleicht einige Speichen zu entfernen", Identitätsserver ist ein großartiges Produkt, sehr einfach zu starten und bietet Erweiterbarkeit für kompliziertere Szenarien. Ich bin mir nicht sicher, warum wir eine "vereinfachte" Version benötigen.

Warum brauchen wir in einem viel viel kleineren Maßstab eine weitere Implementierung des Gesundheitschecks? Es gibt bereits mehrere Open-Source-Lösungen, zB

Was wird der Funktionsunterschied zu diesen sein und was wird in 2.2 bereitgestellt?

@0xRumple Die Verbesserungen am ApiController sollten dazu beitragen, dass dies im Allgemeinen weniger ausführlich wird. Aber nein, Sie werden wahrscheinlich nichts sehen, das Ihnen standardmäßig nur eine CRUD-API für Ihre Entitäten bereitstellt. So etwas müsste viel zu viele Annahmen über Ihre DAL und Autorisierung machen.

Wenn Sie in Ihrer Anwendung bestimmten Mustern folgen, ist es nicht verkehrt, in 2.2 eigene Basistypen oder Konventionen zu erstellen, die die Arbeit für Sie verallgemeinern.

@kieronlanning

Die aktuellen - Id4, OpenIddict - sind offensichtlich ausgezeichnete OSS-Projekte, und ich kann des Gefühls nicht umhin, dass eines mit der Unterstützung von MS dahinter jemals eine schlechte Sache sein könnte...? Es gibt eine Grenze dafür, wie viel Unterstützung von einer kleinen Gruppe von Personen zur Verfügung steht, und dies sind schließlich geschäftskritische Produkte.

Da Sie gefragt haben, ob es etwas Schlechtes sein könnte:

Das ASP.NET-Team ist ebenfalls relativ klein und dient Millionen von Entwicklern mit begrenzter Kapazität, sodass jedes neue Projekt Zeit und Mühe für andere Dinge erspart. Das bedeutet, dass wir alle länger warten müssen, um brandneue Funktionen zu erhalten, die wahrscheinlich mehr Wert bieten würden.

Viel schlimmer ist, dass es dem Ökosystem von Drittanbietern schadet und von neuen Produkten abschreckt, weil Microsoft ein "offizielles" Paket veröffentlicht, das viele Unternehmen nur deshalb auswählen, weil es von Microsoft ist, auch wenn es technisch (und in diesem Fall angeblich) weniger ist fähig. ASP.NET integriert bereits Json.NET, Polly, AutoMapper und viele andere Bibliotheken, daher scheint es ein Fehltritt zu sein, ein so komplexes Sicherheitsprodukt (das 80% des gleichen Basiscodes benötigt) neu zu erstellen, wenn bereits großartige Optionen vorhanden sind, und mit so viele weitere interessante Dinge auf der Roadmap, an denen gearbeitet werden muss.

@Sack
Sie haben Recht, das Schreiben von Basisklassen meiner Apps ist eine gute Idee.

Eigentlich glaube ich, dass diese nicht in die Rahmenverantwortung fallen:

CRUD resources (repository responsibility)

Manipulating data (sieve responsibility)
    Paging
    Filtering
    Searching
    Sorting
    Shaping

Aber es gibt viele Dinge, von denen ich dachte, dass AspNetCore besser hätte machen können (durch ein AspNetCore.RestFramework-Paket):

  1. HATEOAS (selbst auffindbare API)
  2. Medientypen (Einrichten benutzerdefinierter Medientypen)
  3. Versionierung (Medientypversion aktualisieren)
  4. Gepflegte Daten-Metadaten (Paginierung in X-Pagination-Header, Filter-Metadaten... etc).
  5. Ratenbegrenzung und Drosselung.

Ich weiß, dass es da draußen jede Menge Bibliotheken gibt, ich habe einige hier gefunden:

Gleiches gilt für das Sieb, wenn es ein OFFIZIELLES Paket für Paginierung, Filterung usw. gibt, werden Entwickler nicht dazu neigen, fehlerhafte oder nicht gewartete Bibliotheken zu schreiben, ich habe dieses Sieb in meiner oben erwähnten App verwendet: https:// github.com/Biarity/Sieve , aber diese Bibliothek kann jede Sekunde, in der der Autor beschäftigt ist , nicht mehr gewartet werden.

Ich denke, AspNetCore ist ausgereift genug, um über Out-of-the-Box-Lösungen wie in django nachzudenken. Auf diese Weise können wir den Luxus der asp-Leistung und die Agilität von django genießen .

Aber Bibliotheken von Drittanbietern sind keine wirklich gute Option für Unternehmensanwendungen!

^ Deshalb können wir keine schönen Dinge haben 😞

Aber Bibliotheken von Drittanbietern sind keine wirklich gute Option für Unternehmensanwendungen!

Ja, genau diese Einstellung muss sich hier ändern. ASP.NET Core und .NET Core sind Open Source und ihr Ökosystem umfasst die Open Source-Community und sollte dies auch weiterhin tun. Nicht nur mit Open-Source-Lösungen, die Teil der .NET Foundation sind, sondern wirklich mit allen Lösungen.

aber diese Bibliothek kann jede Sekunde nicht gewartet werden, wenn der Autor beschäftigt ist

Ebenso kann ein „offizielles“ Paket in jeder Sekunde, in der das Unternehmen sein Interesse ändert, nicht mehr gepflegt werden. Dies ist bei Microsoft-spezifischen Dingen schon einmal passiert, einschließlich mehrerer von ihnen veröffentlichter Open-Source-Pakete, ist aber für jedes Unternehmen wirklich selbstverständlich.

Wenn Sie sich für eine Abhängigkeit von einer anderen Bibliothek entscheiden, liegt es in Ihrer Verantwortung, damit leben zu können. Unabhängig davon, wer der Autor davon ist. Das Schöne an Open - Source ist , dass selbst wenn der Autor endet nicht reagiert, werden Sie in vollem Umfang selbst berechtigt , es zu ändern.

Ich bin vehement dagegen , offizielle Microsoft-Lösungen für alles zu erwarten, was Sie sich vorstellen können. Nicht nur, weil es nie eine Universallösung gibt, die dies sehr schwierig macht und gleichzeitig wahrscheinlich aus dem Ruder läuft, sondern vor allem auch, weil dies Teile des Frameworks, die wirklich Aufmerksamkeit benötigen, Ressourcen entzieht. Und gleichzeitig tut es dem Open-Source-Gedanken wirklich sehr weh.

Wenn Sie Unternehmensanwendungen erstellen und immer noch mit diesem NIH- Syndrom (oder „nicht erfunden bei <large-company>“) kämpfen, sollten Sie wirklich aufwachen, da es 2018 ist und Sie wahrscheinlich Open Source jetzt annehmen sollten.

Sie haben Recht, Microsoft kann die Wartung jedes Pakets einstellen, aber zumindest haben sie ein bestimmtes LTS: https://www.microsoft.com/net/support/policy

Zum Beispiel endet die Unterstützung für .NET Core 1.1 am 27. Juni 2019 ... auf diese Weise kann ich sicher sein, dass ich nicht mittendrin gelähmt werde, wenn ich diese Version verwende.

Ich habe einmal einen Paginierungs-Tag-Helper von Drittanbietern verwendet, und es war nicht angenehm, der Autor sagte mir im Grunde, er würde es nicht für .NET Core 1.1 reparieren, und ich sollte das Projekt aktualisieren, es war ein Universitätssystem in 2.0 (und er hat das Recht dazu, weil er das Paket KOSTENLOS geschrieben hat).

Hier ist das Problem, im Unternehmen funktioniert das nicht... Sie können nicht das gesamte Team davon überzeugen, dass Sie auf 2.0 umsteigen sollten, während die App läuft, nur weil der Paginierungs-Tag-Helfer nicht funktioniert nicht funktionieren!
Sie können also einfach anfangen, die Quelle zu hacken, wie ich es mit einem Dekorateur getan habe: https://github.com/cloudscribe/cloudscribe.Web.Pagination/issues/37

Und ja, wer hat gesagt, dass ich kein großer Open-Source-Fan bin :confused: ?

@0xRumple ist nicht die Idee von Open Source, um Beiträge zu leisten und zusammenzuarbeiten?

Wenn dieser Paginierungs-Tag-Helper von Drittanbietern nicht existierte, müssten Sie ihn selbst schreiben und ihn trotzdem "im Unternehmen" pflegen.

Hier ist das Problem, im Unternehmen funktioniert das nicht... Sie können nicht das gesamte Team davon überzeugen, dass Sie auf 2.0 umsteigen sollten, während die App läuft, nur weil der Paginierungs-Tag-Helfer nicht funktioniert nicht funktionieren!

Anstatt zu versuchen, "das gesamte Team davon zu überzeugen, dass Sie auf 2.0 umsteigen sollten", tragen Sie ein Update bei und helfen Sie, anstatt sich auf jemand anderen zu verlassen, der die Arbeit erledigt oder auf Microsoft wartet, um ein Äquivalent bereitzustellen. Wenn der Eigentümer Ihren Beitrag nicht annehmen möchte, fahren Sie mit einer Gabel für Ihre Bedürfnisse fort.

Ich denke, Ihre Denkweise (überhaupt nicht beleidigend) ist ein großer Teil der Diskussion über "Microsoft-Autorisierungsserver" vs. Identitätsserver. Wie wird Open Source jemals funktionieren, wenn Entwickler nicht teilnehmen wollen? Sollen wir warten, bis Microsoft den gesamten Code bereitstellt, den wir benötigen?

Ich stimme vielen hier zu, dass Microsoft aufpassen sollte, dass sie keine guten Open-Source-Projekte im Ökosystem zerstören, indem sie alles selbst ersetzen.

Ich bin eigentlich der Autor der von @0xRumple erwähnten Paginierungs-Taghelper-Bibliothek. Die ausgelagerte Liste war wirklich etwas, das Teil einer früheren Open-Source-Pager-Bibliothek war, die das Design meiner Bibliothek beeinflusste und auf einmal in den Demo-Seiten verwendet wurde, aber der Pager-Taghelper war nicht von der ausgelagerten Listenimplementierung abhängig und es gibt andere ausgelagerte list-Implementierungen da draußen, die er hätte verwenden können, während er noch den Pager-Taghelper verwendet. Tatsächlich habe ich die ausgelagerte Liste seitdem vollständig aus dieser Bibliothek entfernt, da sie nicht einmal Teil des Taghelpers ist und nie war.

Es ist wirklich nicht anders für die Verwendung von Nuget-Paketen von OSS-Entwicklern als von Microsoft, da Sie, wenn Sie bei aspnet core 1.1 festsitzen, keine Fixes und Verbesserungen von aspnet core 2.x erhalten können, es sei denn, Sie aktualisieren auf das neue Framework.

@joeaudette
Ich habe dieses Beispiel gerade erwähnt, um meinen Standpunkt zu integrierten und Drittanbieterlösungen zu veranschaulichen, ich bin immer noch dankbar für Ihre Arbeit an diesem Paginierungs-Taghelper ... die Universität verwendet Ihr Paginierungspaket und sie sind glücklich :heart:

@alhardy

Sollen wir warten, bis Microsoft den gesamten Code bereitstellt, den wir benötigen?

Dies ist das Hauptproblem, wir denken, dass Microsoft, wenn es eine offizielle Lösung bringt, jede andere Open-Source-Lösung bekämpfen oder jede einzelne Codezeile selbst schreiben wird :smile:

Natürlich nicht, wir können das Beste aus beiden Welten herausholen, eine offizielle Lösung und eine Community-basierte Lösung, wenn Microsoft die richtigen Lösungen übernimmt und die fehlenden Lösungen erstellt, damit sich Entwickler darauf konzentrieren können, einen Beitrag zu diesen zu leisten.

Die django-Community hat es richtig gemacht, sie bieten/verabschieden offiziell die erste einfache Lösung für ein bestimmtes Problem, z. B. das RESTful-Framework, und die Community baut darauf auf... Rahmen: https://www.djangoproject.com/weblog/2016/jun/22/django-rest-framework-funding/

Sie haben das ursprüngliche Projekt gestartet und die Community verbessert/aufbaut darüber hinaus, dies ist ihr Repo: https://github.com/encode/django-rest-framework... rund 800 Mitwirkende!
Und die Community ist bestrebt, Pakete zu bauen, die das Problem zusätzlich zu diesem Paket lösen, wie django-rest-auth oder django-rest-framework-jwt .

Zumindest bieten sie solche "offiziellen Lösungen", die die meisten Entwickler brauchen, wie django-admin-site oder django-debug-toolbar . Dies kommt auch von der Python-Philosophie von "Batterien enthalten", zuerst dachte ich, dass es schlecht ist, da es nach Lösungen mit dem kleinsten gemeinsamen Nenner strebt, und ich habe später erkannt, wie viel Wind es bringt.

*PS: Dapper (von StackExchange) und EFCore (von Microsoft) sind beides ORMs, aber sie zielen darauf ab, dasselbe Problem in unterschiedlichen Ansätzen zu lösen. Dapper wurde ursprünglich im Jahr 2011 erstellt, während EFCore 2014... Hat EFCore die Open-Source-Projekte schlecht beeinflusst? Natürlich nicht, und es ist eine offizielle Lösung!
Leute, die bereits auf diesem erstaunlichen Zeug aufbauen, wie folgt: https://github.com/crhairr/EntityFrameworkCore.MongoDb/

Hat EFCore die Open-Source-Projekte schlecht beeinflusst?

Uuuh, erinnert sich jemand an NHibernate (das EF in der Funktionalität am nächsten kommt)? Nein, wahrscheinlich nicht, denn nach der Veröffentlichung von EF ist es so gut wie tot

@0xRumple

Natürlich nicht, wir können das Beste aus beiden Welten, eine offizielle Lösung und eine Community-basierte Lösung, wenn Microsoft die richtigen Lösungen übernimmt und die fehlenden Lösungen erstellt,

In diesem Fall liegt es nicht daran, dass eine vorhandene Lösung neu erstellt wird, sondern mit absichtlich weniger Funktionalität.

Entity Framework und Dapper sind sehr unterschiedlich. EF wurde immer als voll funktionsfähiges ORM entwickelt, und beide kamen Jahre nach dem ursprünglichen Linq-To-SQL im Jahr 2007 .

Aber ich glaube auch nicht, dass du falsch liegst und wir scheinen alle aneinander vorbei zu reden. Der Thread besteht hauptsächlich aus Kommentaren zum Authentifizierungsserverprodukt, während Sie über REST-bezogene Bibliotheken sprechen, die klein und fokussiert genug erscheinen, um sie in ein Web-Framework aufzunehmen. Ich stimme zu, dass standardisierte search/paging/filter Parameter hilfreich wären, um einen integrierten Web-API-Code zu haben.

Diese Diskussion erkennt nicht die unangenehme Wahrheit an, dass Entwickler in einigen Organisationen für jedes einzelne Open-Source-Paket, das in ihre Lösung eingeführt wird, Rechenschaft ablegen müssen. In einigen Fällen ist dies ein automatischer Scan, der "Risikoberichte" erstellt, die häufig von einem nicht technischen Risikomanager überprüft werden müssen. Diese Tools kennzeichnen alles, was nicht aktiv gepflegt wird, und alles, was wie eine Copyleft-Lizenz aussieht.

Sie können sich auch vorstellen, dass in diesen Organisationen ein Beitrag zu Open Source als verrücktes Gerede angesehen wird.

Ja, Identity Server 4 ist erstaunlich. Aber für einen nicht technischen Risikomanager ist es etwas, für das wir keine Garantie haben, etwas, das von einer Handvoll Leuten unterstützt wird und noch schlimmer - etwas, bei dem der Quellcode für jeden sichtbar ist. Diese Person ist fehlgeleitet, aber der durchschnittliche Entwickler vor Ort wird diesen Kampf nicht gewinnen.

Ein "Identity Server Lite", wie @markrendle es treffend ausdrückt, der hauptsächlich von Microsoft-Mitarbeitern geschrieben wurde, könnte den Unterschied

@edandersen

Aber für einen nicht technischen Risikomanager ist es etwas, für das wir keine Garantie haben, etwas, das von einer Handvoll Leuten unterstützt wird und noch schlimmer - etwas, bei dem der Quellcode für jeden sichtbar ist.

Ich bin mir ziemlich sicher, dass die IdentityServer-Leute etwas Unterstützung bieten würden, wenn Sie sie dafür bezahlen - genau wie Sie Microsoft bezahlen würden. OSS ist nicht gleich kostenlos.

Was lässt Sie glauben, dass das ASP.NET Core-Team bei Microsoft keine „Handvoll Leute“ ist? Spoiler... das sind insgesamt 20-30 Leute. Nur ein Paar würde an einem solchen Produkt arbeiten.

Ich bin wirklich neugierig, warum "der Quellcode, der für alle sichtbar ist" eine schlechte Sache ist? Und was lässt Sie glauben, dass dieses Produkt bei Microsoft nicht Open Source sein wird? Es ist die neue Standardeinstellung.

@khellang "der Quellcode, der für alle

Und natürlich könnten die gleichen Entwickler dafür plädieren, dass ihr Arbeitgeber den Support für den Identity Server bezahlt, aber der Beschaffungsprozess wird ihnen wahrscheinlich den Lebenswillen rauben.

Nun, wenn wir anfangen, diese Argumente für Nicht-Tech-Manager zu verwenden, werden die Dinge verrückt. IMHO, Leute, die keine Techniker sind, sollten nicht vorschreiben, was verwendet werden soll oder nicht. Wenn sie etwas sagen wollen, sollten sie zumindest wissen, wovon sie sprechen und sagen, dass ein bekanntes Paket wie IdentityServer weniger Qualität hat als ein MS-Paket, für mich ist das schlichtweg falsch. Ich würde von so einer Firma weglaufen!

Aber der Punkt hier ist, dass so ziemlich jeder zustimmt, dass es ein bisschen seltsam ist, Zeit mit etwas zu verbringen, das bereits da ist, es ist solide und viele Leute benutzen es. Ich frage mich, was der wahre Grund dafür ist. Ich glaube nicht, dass es nur so war: Oh, lass uns unser eigenes Ding bauen, nur weil wir es können. Fragen Kunden tatsächlich danach, was uns vielleicht nicht bewusst ist?

Ich persönlich sehe einen anderen Konkurrenten im OAuth-Server-Bereich nicht als Problem, aber gut.

Es kann die Entwicklung in diesem Bereich vorantreiben oder einfach als schnelle und schmutzige Lösung für Leute dienen, die nichts mehr brauchen - eine schnelle und schmutzige Lösung.

Wenn Sie mehr von einem OAuth-Server wollen oder brauchen, dann steht einem von uns nichts im Wege, die bestehenden Lösungen zu nutzen. Oder wenn Sie möchten, dass eine Ein-Klick-Vorlage grundlegendes OAuth _und nichts mehr_ ausführt, dann scheint dies zumindest mir ein lohnendes Ziel zu sein.

Ich denke, dieser Thread hat sich zu einem Geizhals darüber entwickelt, was OSS ist, was MS gut kann und was MS nicht gut kann, anstatt sich darauf zu konzentrieren, was auf der Roadmap für .NET Core 2.2 steht, was wirklich ist zählt hier.

@khellang
"NHibernate ist tot", sagte wer? Ich sehe, das Projekt lebt noch und hat sogar eine bessere Dynamik als Dapper
https://github.com/nhibernate/nhibernate-core/graphs/contributors
https://github.com/StackExchange/Dapper/graphs/contributors

Ah, ich habe IdentityServer bis jetzt nicht erwähnt, um bei meinem Standpunkt zu bleiben, dass RESTful-Framework in den offiziellen aspcore-Paketen vorhanden ist ... hier sind meine Gedanken zu IdentityServer, es ist wirklich solide und großartig, ABER es ist ein 2-Mann-Projekt. Schau dir die Metriken an:
https://github.com/IdentityServer/IdentityServer4/graphs/contributors

Ungefähr 85% der Arbeit werden von 2 Leuten erledigt und es ist in Ordnung für ein sicherheitsrelevantes Projekt, aber im Unternehmen denken viele Unternehmen über die Wartbarkeit solcher Projekte in der Zukunft nach. Vor kurzem hat mir eine Firma gesagt, dass sie wollen, dass ich React anstelle von Vus.Js in ihrem Projekt verwende, nur weil sie sagten "vue.js ist so ziemlich Evan You" ... und ich denke, sie haben Recht. Und das versuche ich seit Beginn der Diskussion über das RESTful-Paket in den offiziellen Paketen

Gleiches gilt für die Datenmanipulation / -siebung (Paging, Shaping, Sorting ... etc), da fast jedes Projekt diese Anforderungen enthält, und ja, wie @manigandham sagte, sie sind standardisiert und unkompliziert.

@manigandham
Genau das finde ich richtig... die Lösungen offiziell anzupassen und zu unterstützen , sei es finanziell oder über Github beizutragen oder zumindest in ihren Dokumenten oder Kursen zu erwähnen (ich habe schon gesehen, dass Hanselman SwashBuckle in einem seiner Kurse bei Microsoft Virtual erwähnt hat Academy, die wirklich großartig ist, und es wäre besser, mehr Anpassungen an solche Projekte zu sehen!).

@kieronlanning
Sie haben Recht, wir sind zu weit vom Hauptthema entfernt... aber wie ich bereits erwähnt habe, ist asp core gerade sehr ausgereift (performant und zuverlässig), und ich denke, es ist an der Zeit, mit dem Außergewöhnlichen zu beginnen

Ich finde es ziemlich albern, ein Projekt abzuwerten, weil es zwei Hauptbeteiligte hat. IS4 ist sehr gut gepflegt und diese beiden Jungs verbringen viel Zeit damit, Fragen zu beantworten und Menschen zu helfen. Es wird auch weithin als eine der besten FOSS-Lösungen für einen OAuth2-Server auf dem Markt angesehen.

"NHibernate ist tot", sagte wer? Ich sehe, das Projekt lebt noch und hat sogar eine bessere Dynamik als Dapper

@0xRumple Ich sagte "so gut wie tot" 😉 Du scheinst einige sehr seltsame Metriken zum Zustand und zur Nutzung von OSS-Projekten zu haben. Ist es fair, die Anzahl der Commits für ein Projekt aus dem Jahr 2003 mit denen zu vergleichen, die seit 2011 laufen? Sie sind auch _sehr_ unterschiedliche Bestien (wie bereits im Thread erwähnt); Dapper ist seit einiger Zeit "vollständig" (das bedeutet nicht, dass es nicht gewartet, aufgegeben usw. wird), während NHibernate (und sein Funktionsumfang) zurückgeblieben sind.
Ich weiß, dass das Projekt noch läuft, aber ich kann mich nicht erinnern, wann ich in meinen letzten 7 Jahren als Berater im .NET-Bereich das letzte Mal NHibernate in freier Wildbahn begegnet bin (wo es nicht gerade dabei war wird auf Entity Framework migriert). Jeder, der diesen Bereich in den letzten Jahren verfolgt hat, weiß sehr gut, dass NHibernate hinterherhinkt und Marktanteile an Entity Framework verloren hat. Schauen Sie sich nur die NuGet-Downloadzahlen an: Entity Framework hat 45,8 Mio. gegenüber NHibernate mit 3,4 Mio.

Wie auch immer, der Punkt ist nicht Entity Framework vs NHibernate. Es war nur _ein_ Beispiel. Wir haben diese Diskussion immer und immer wieder geführt; zuletzt, als Microsoft eine eigene schlanke IoC-Container-Implementierung in ASP.NET Core einführte oder als Microsoft überlegte, einen eigenen Object Mapper einzuführen. Jedes Mal, wenn Microsoft einen Raum in der OSS-Community betritt, saugt es viel (das meiste?) der Luft aus dem Raum. Oft genug, damit die kleineren, gemeinschaftsgetriebenen Projekte mit der Zeit ersticken. Ich und der Großteil der Community kennen es nur zu gut; es ist unmöglich, mit Microsoft in Microsofts eigener (.NET) Welt zu konkurrieren. Ich verstehe voll und ganz, dass sie zahlende Kunden haben, die sie zufriedenstellen müssen, daher erwarte ich nicht, dass dieses Feedback ihre Meinung ändert :smile:

Tolle Funktionen :)

Wo erhalte ich weitere Informationen zur Systemdiagnosefunktion?

Verbessern Sie die Verwaltung selbstsignierter Zertifikate

Bei der Entwicklung von Web-Apps, die zugehörige Web-APIs aufrufen, ist es irgendwann sinnvoll, sie mit internen Benutzern über das lokale Netzwerk zu testen. Sie haben vielleicht alle Einheiten-, Funktions- und Integrationstests bestanden, aber nichts ist besser als ein Mensch, um Dinge wirklich kaputt zu machen.

Aus Gründen der Entkopplung rufen meine Web-Apps mehrere Web-APIs auf. In erster Linie entwickle ich diese Web-APIs mit https://localhost :. Sobald eine Web-API fertig ist (genug), veröffentliche ich sie dann auf IIS auf meinem lokalen Computer. Jede Site hat einen entsprechenden Hostnamen, den ich auf meinem internen DNS-Server eingerichtet habe. An dieser Stelle verwende ich Barry Dorrans' - @blowdart - gist https://gist.github.com/blowdart/1cb907b68ed56bcf8498c16faff4221c , um ein Serverzertifikat zu erstellen. Vorausgesetzt, ich importiere die Zertifikate in alle richtigen Stores, funktioniert alles auf meinem Computer ohne Alarm.

Dies ändert sich, wenn andere Personen im Netzwerk auf die Web-Apps zugreifen (die API-Aufrufe befinden sich alle in meiner Entwicklungsbox). Direkte Warnungen werden vom Benutzer empfangen. Ich rate ihnen, diese Warnungen zu ignorieren und die Zertifikate, soweit möglich und ausreichend einfach, zu importieren. Da diese selbstsignierten Zertifikate denselben Ausstellernamen und allgemeinen Namen haben, löst jede neue Web-App eine Warnseite aus

Ich kann nicht umhin zu denken, dass es eine schlechte Idee ist, Benutzer in der eigenen Organisation aufzufordern, Warnseiten durchzugehen.

Als Nicht-Spezialist für Sicherheit würde ich gerne ein paar Dinge sehen:

  • die Möglichkeit, ein lokales Root-Zertifikat für alle von mir erstellten Entwicklungszertifikate zu haben und dann eine autorisierte Methode zum Importieren dieses Zertifikats in PCs, Macs, Android-, iPad- und iPhone-Geräte zu erhalten, damit diese alarmierenden Seiten nicht mehr auftreten

  • eine einfachere Methode zum Generieren von Zertifikaten für APIs, die mit IIS und Kestrel verwendet werden können, die alle korrekten Zertifikatsspeicher korrekt auffüllt

@CrispinH Um ehrlich zu sein, wäre die Unterstützung einer Root-CA ein Anliegen, eine Root-CA einzurichten. Wenn Sie an diesem Punkt angelangt sind, sollten Sie erwägen, selbst eine Root-CA einzurichten und zu verwalten. Die selbstsignierte Unterstützung, entweder das globale Tool oder mein Skript, ist nur für die Entwicklung gedacht. Sobald Sie damit beginnen, Personen zuzulassen, sind Sie außerhalb des Bereichs für diese Funktion. Wenn Sie in einer Organisation sind und möchten, dass Personen auf Dienste zugreifen, muss die Organisation ihre Zertifikatsstrategie herausfinden, eine interne Zertifizierungsstelle über Windows oder OpenSSL ausführen und den Root über die AD-Richtlinie oder auf andere Weise herausschieben.

@blowdart Einer der Gründe für mein Gemecker war, dass ich ein paar Tage damit verbracht hatte, eine Root-CA aufzubauen und es trotz mangelnder Kompetenz in diesem Bereich nicht richtig hinbekommen hatte. Ich habe sogar versucht, herauszufinden, wie Sie Ihren Kern so ändern können, dass er eine lokale Root-CA akzeptiert.
Die gesamte Dokumentation, die ich fand, war viel zu allgemein - ich wollte nur einen Prozess zum Erstellen von Zertifikaten (idealerweise basierend auf einer Root-CA) ausschließlich zum Schutz von APIs und Web-Apps mit einem Serverzertifikat. Vielleicht ist nur eine Einzelfalldokumentation erforderlich.

@CrispinH Window Server wird mit einer Zertifizierungsstelle geliefert , die Sie einrichten können, wenn Sie den vollen Weg gehen möchten.

Zertifikate in der Regel nicht einfaches Thema und Sie haben ziemlich viel zu lernen , es richtig zu machen.

Für Entwicklungszwecke sind selbstsignierte Zertifikate völlig in Ordnung und einfach zu verwenden. Alles darüber hinaus, einschließlich der Einrichtung und Verwaltung einer CA, ist nicht mehr für Entwicklungszwecke gedacht und definitiv aus dem Rahmen und viel zu komplex für ein Webanwendungs-Framework.

@CrispinH Wie @poke sagte, ist es schwer, es richtig zu machen. Sobald Sie Maschinen haben, die einer Root-CA vertrauen, werden alle ausgestellten Zertifikate als vertrauenswürdig eingestuft. Betrachten Sie also etwas, das Ihre Root-CA stiehlt. Im wirklichen Leben neigen Root-CAs dazu, offline zu bleiben, sie signieren ein zweites Zertifikat, das in seiner Leistungsfähigkeit eingeschränkt ist, normalerweise Server- und Client-Zertifikate, und dann werden Zertifikate dadurch ausgestellt, dass viele Dev-CAs eingeschränkt sind Kompromiss würde die Möglichkeit bedeuten, vertrauenswürdige Codesignaturzertifikate auszustellen. Ohne die Absicht zu haben, eine Zertifizierungsstelle schrecklich beleidigend zu sein, sollte ein Entwickler sie nicht betreiben. Sie sollte am besten denen überlassen werden, die die Konsequenzen verstehen, und die Konsequenzen können gravierend sein. Dann gibt es Zertifikatsrotation, Widerruf, OCSP und mehr zu berücksichtigen. Ich benötige eine Testzertifizierungsstelle für meine Zertifikatauth-Middleware, und sie befindet sich in einer ausgeschalteten VM. Ich werde sehr nervös, wenn ich es einschalte, um mehr Testzertifikate zu erhalten.

Wenn Sie wirklich, wirklich, dieses Root (Wortspiel beabsichtigt) absteigen möchten, dann könnte https://infiniteloop.io/powershell-self-signed-certificate-via-self-signed-root-ca/ Ihnen den Einstieg in Powershell erleichtern. aber das gibt Ihnen keine CRL- oder OCSP- oder Widerrufsunterstützung. https://gist.github.com/Soarez/9688998 scheint OpenSSL abzudecken. Und wenn Sie CRLs benötigen, dann ist die CA in Windows integriert, die Einrichtung ist hier dokumentiert https://leastprivilege.com/2008/08/14/how-to-build-a-developmenttestdemo-ca/

_Beachten Sie, dass ich keinen der obigen Links verwendet habe (obwohl ich dem Autor des letzten vertraue), und dies ist in keiner Weise eine Art offizieller MSFT-Empfehlung. Die offizielle Empfehlung des ASP.NET-Sicherheitsteams lautet, dass jemand, der sich mit Infrastruktur und Risiken auskennt, eine Unternehmenszertifizierungsstelle für Sie einrichten lässt. Sprechen Sie mit Ihrer IT-Abteilung_

@blowdart Nein, ich möchte wirklich _nicht_ in diese 'Wurzel' gehen. Es ist schön, jetzt zu wissen, warum.

Es sieht so aus, als ob meine humanoiden Tests im öffentlichen Internet auf einem Testhost mit Let's Encrypt-Zertifikaten durchgeführt werden müssen, jedoch mit einer Authentifizierungswand, um neugierige Blicke fernzuhalten.

Je nach Bedarf und Budget bieten einige Unternehmen wie DigiCert Managed PKI-Dienste an. Das kann eine private Wurzel oder ihre öffentliche verwenden. Die Kosten kenne ich nicht.

Und wenn es nur HTTPS ist, denken Sie daran, dass Sie für jede azurewebsites.net-Subdomäne ein Zertifikat erhalten.

Abwägen der neuen OpenID-Implementierung anstelle einer weiteren Implementierung, um die Community-Bemühungen von IdentityServer4 zu erlernen, zu übernehmen und mit ihnen zu interagieren und dazu beizutragen, eine eigenwillige IdentityServer "Lite"-Version zu erstellen, die mit minimalem Aufwand von Nuget aufgenommen und eingerichtet werden könnte.

Ihr reagiert alle über.
Das ASP.NET-Team denkt bereits wie Sie alle. @DamianEdwards hat im letzten Community-Standup darüber gesprochen.

Hier ist der relevanteste Teil (aber ich ermutige Sie, sich alles anzuhören):

"Wir sprechen jetzt tatsächlich mit den Leuten von IdentityServer darüber."
https://youtu.be/Tzh2EXwgEk8?t=25m15s

Wirklich interessant zu sehen, wie leidenschaftlich die Diskussion um das Projekt "MSFT-Autorisierungsserver" geführt wird :smile:

Übrigens hat mich Vittorio Bertocci vor genau 2 Jahren kontaktiert, um über dieses Projekt zu plaudern, da sie erwägten, OpenIddict (den OIDC-Server, den ich entwickle und betreue) als Basis für dieses Projekt zu verwenden.
Letztes Jahr wurde mir gesagt, dass sie es vorziehen, mit ihrer eigenen Implementierung zu arbeiten, anstatt OSS von Drittanbietern zu nutzen, da es aus geschäftlicher Sicht als "zu strategisch" angesehen wurde (was ich verstehen konnte).

Ich freue mich zu sehen, dass sie ihre Meinung geändert haben und endlich erwägen, eine bestehende OSS-Lösung wie IdentityServer4 zu verwenden, anstatt etwas von Grund auf neu zu erstellen: Es ist ein sehr gutes Signal an die .NET-Community :clap:

Das geht ein bisschen vom Thread ab, aber @CrispinH , es sieht so aus, als ob Sie ein bisschen nach https://stackoverflow.com/questions/51123289/how-to-generate-a-response-to-a-csr- suchen

Ich würde gerne eine Middleware wie Unterstützung für LetsEncrypt sehen – das Arbeiten mit App Services in Windows, Linux und Docker in Azure.

@kieronlanning Ich stimme zu, zusätzlich zur DER-Codierung in Bezug auf die zuvor erwähnte CSR-Signierung (obwohl das Hinzufügen von Unterstützung ohne Certes , aber es ist abhängig von BouncyCastle . Es wäre schön, wenn jemand helfen würde, nur .NET Standard 2.0 zu sein. Ein Grund für mich ist, dass BouncyCastle mit Orleans TaskScheduler nicht gut funktioniert. :)

Was die Krypto-Erwähnung angeht, obwohl es nicht unbedingt ein ASP.NET Core-Problem ist, drängt MS anscheinend stark auf Blockchains, aber .NET fehlt es an Krypto-Fähigkeiten. _An der Oberfläche_ hat das auch viel mit dem ASP.NET-Kern zu tun (wie zum Beispiel die verschiedenen Blockchain-Explorer-Implementierungen wie https://etherscan.io/) und es wäre schön, mehr Unterstützung dafür zu bekommen Bibliotheken wie Inferno und einfach mehr Fähigkeiten, die in die Plattform integriert sind. Ein noch offenes Problem ist unter https://github.com/sdrapkin/SecurityDriven.Inferno/issues/10#issuecomment -395778931 (hier ein paar Augen zu leihen, wenn jemand das Zeug zum Helfen hat).

Dies von @kieronlanning wäre meine

"Ich würde gerne eine Middleware wie Unterstützung für LetsEncrypt sehen."

Hier ist das offene Problem: https://github.com/aspnet/Home/issues/1190. Bitte gehen Sie und stimmen Sie es ab.

Wird es als Messagepack angesehen, das auf asp.net Core für alle Frameworks und nicht nur für SignalR verfügbar ist? Da Http2 Framming binär ist, ziehen Sie dafür Messagepack in Betracht?

Autorisierungsserver auf Preview3 freigegeben?

Es existiert bereits. Https://IdentityServer.io

@leastprivilege
Ich mag und verwende IdentityServer
Aber ich bin sehr neugierig, die Microsoft-Implementierung zu sehen und zu verstehen, warum (Microsoft) den Identityserver nicht in Ihren Kern integriert hat

@danroth27 - kannst du das Neueste teilen?

Microsoft verwendet IdentityServer.

Wie funktioniert das? Microsoft verwendet IDS4-Code direkt? Microsoft kürzt IDS4-Funktionen? Was ist das Modell hier? Was sollten unsere Erwartungen sein? Gibt es einen möglichen Migrationspfad zwischen ihnen?

Microsoft wird unser Standard-Nuget-Paket verwenden und unsere Konfigurations-API verwenden, um Ihnen einige Standardeinstellungen zu geben, damit Sie mit der Vorlage und der ASP.NET-Identität gut spielen können. Das ist alles.

Genau das Gleiche können Sie heute schon erreichen.

Es liegt wahrscheinlich an mir, aber ich bin überrascht zu lesen, dass die Lücke des Microsoft-Autorisierungsservers von IdentityServer4 gefüllt wird. Nach meinem Verständnis ist das Hauptanliegen von IdentityServer die Authentifizierung, nicht die Autorisierung.

Für mich ist IdentityServer als Authentifizierungsserver in Ordnung, funktioniert aber nicht als Autorisierungsserver. Ich nahm an, dass dies der Grund war, warum PolicyServer erstellt wurde.

@leastprivilege Wird IdentityServer um so etwas wie PolicyServer erweitert?

@Ruard Also es ist verwirrend (und Dominick wird wahrscheinlich zusammenzucken oder auf meiner Erklärung

OAuth ist eine Authentifizierung, hat aber im ersten Schritt eine Autorisierung und gibt dann eine Erteilung basierend auf Bereichen usw ist immer erfolgreich, da wir den Standardbereich verwenden), übergeben Sie dann ein Token an den Aufrufer, das dann an die API gesendet wird, die es validiert, und dann können Sie optional mit Autorisierungsregeln innerhalb der API fortfahren. OIDC stellt OIDC bereit, es weiter zu verwechseln, indem es eine Möglichkeit bietet, die Identitätsinformationen eines Benutzers zu erhalten, einschließlich der Autorisierung, dass die App diese haben darf ...

Im Grunde gibt uns Identity Server also eine Identität und autorisiert, dass die App diese haben darf, und dann können Sie die Autorisierungsteile von ASP.NET verwenden, um den Zugriff weiter zu kontrollieren.

@MichelZ wird es eine Grow-Up-Story geben. Wir konfigurieren für einfache Szenarien, und sobald Sie diese verlassen, können Sie die volle Leistungsfähigkeit des IdentityServer-Konfigurationsmodells erkunden.

@blowdart Wir verwenden bereits IdentityServer (und sind von den Fähigkeiten beeindruckt!), aber es ist auch ein großes Plus für uns, von Microsofts Richtlinien für den "langfristigen Support" zu profitieren. Alle Synergien, die Sie hier einbringen können, sind daher sehr willkommen.
Wir lieben beide Produkte, ASP.NET Core und IdentityServer (4), auf die gleiche Weise. Es ist definitiv ein Schritt in die richtige Richtung IMHO.
Wir erkennen jedoch auch an, dass all diese Protokolle nicht gerade "einfach" sind. Sie sind keine Raketenwissenschaft, man versteht sie, aber trotzdem sind sie auch nicht geradlinig.

Ich wünschte, jemand würde ein WIRKLICH einfaches Protokoll erfinden, ALLE Legacy-Implementierungen hinter sich lassen und sich auf die Zukunft konzentrieren.

Wenn Sie es bereits verwenden, wird sich Ihre Verwendung nicht wirklich ändern, Sie haben es funktioniert :)

Wir zielen auf Datei Neu > Web-API mit individueller Authentifizierung ab und fügen dann andere APIs hinzu, und alles basiert auf Konventionen. Das wird für bestehende Apps nicht funktionieren, da die Konventionen neu sein werden. Ich würde nicht vorhaben, deine Konfiguration durch unsere zu ersetzen :)

Ich wünschte, jemand würde ein WIRKLICH einfaches Protokoll erfinden, ALLE Legacy-Implementierungen hinter sich lassen und sich auf die Zukunft konzentrieren.

Das ist das Problem – Apps werden nicht weniger kompliziert. Um sie zu sichern, ist die Sicherheit auch kompliziert. Ich habe immer zurückgedrängt, wenn ich Leute sagen höre, dass IdentityServer kompliziert ist – ist es nicht. Kompliziert sind die Sicherheitsanforderungen Ihrer Anwendung. Oft haben die Leute nicht die Perspektive, das zu erkennen.

Ja, es funktioniert - und es funktioniert gut - aber dennoch ist diese zusätzliche Sicherheit, die es Ihnen geben (könnte), wenn Microsoft eine Technologie offiziell "befürwortet" und letztendlich "unterstützt", pures Gold.... !
Sie wurden auf eine ganz neue Ebene gehoben!

@brockallen Ja, Anwendungen komplizieren die Dinge wahrscheinlich

Ich sage nicht, dass das, was wir jetzt haben, "schlecht" ist, ich schätze das, was wir haben, und es ist für unsere Zwecke wirklich funktional, und ich hoffe, alle, die an der Entwicklung beteiligt sind, sind stolz auf die Arbeit, die sie geleistet haben!

@Mannschaft;
Könnten Sie für Vorschau 3 bitte einige detaillierte Dokumente zum "Autorisierungsserver" bereitstellen und wie er mit Web-API und clientseitigem JS wie Vue funktioniert?
Wir müssen eine Entscheidung treffen und diese Vorschau auf dem Autorisierungsserver ist eine kritische Vorschau und alle Detaildokumente geben uns Informationen zu unserer Entscheidung.

Vielen Dank!

Wie schon besprochen

https://identityserver.io

Gerade bemerkt, dass auch US Open Data APIs in JSON-LD sind: https://project-open-data.cio.gov/v1.1/schema/ . Dies scheint ein schnell wachsender Trend zu sein, daher wäre eine gut ausgestattete JSON-LD .NET-Bibliothek, die mit ASP.NET verwendet wird, schön. :)

@veikkoeeva So sind (zumindest ein Teil) die NuGet-APIs. Sie verwenden json-ld.net , keine Notwendigkeit für eine weitere Bibliothek.

@khellang Und es gibt auch andere Bibliotheken, diese spezielle Bibliothek könnte Betreuer verwenden (https://github.com/linked-data-dotnet/json-ld.net/issues/26). Mir ist klar, dass es Open Source ist und ich theoretisch einspringen könnte, um einen Beitrag zu leisten, aber im Moment bin ich zumindest zu dünn, um dabei zu helfen. Anders ausgedrückt möchte ich vielleicht darauf hinweisen, dass sich viele Datensätze in Richtung semantischer Formate zu bewegen scheinen und es nicht klar ist, wie man mit .NET effizient damit arbeiten kann.

IMHO, IdentityServer4 zum Kern von ASP.Net Core hinzuzufügen, ist eine schlechte Idee.
Bitte machen Sie .NetCore nicht als monolithisches Framework.
.NetCore ist da und IdentityServer4 ist da, die Leute machen die Architektur basierend auf den eigenen Authentifizierungs- und Autorisierungsbedürfnissen.

@mikeandersun Der Plan besteht nur darin, eine einfache Standardkonfiguration zu haben, die Sie Ihrem Projekt hinzufügen können, damit es

Sie können es immer noch nicht verwenden und es wird Sie nicht beeinträchtigen. Sie können IdSrv weiterhin verwenden und vollständig selbst konfigurieren. Sie können weiterhin auswählen, welche Komponenten in Ihr Projekt aufgenommen werden sollen. Nichts davon macht ASP.NET Core monolithisch.

ASP.NET Core != .NET Core übrigens.

Wird 2.2 eine LTS-Version sein? (Nachfragen, ob es bereits angekündigt wurde, nicht nach einer neuen Ankündigung.)

@yzorg nein, das wurde nicht angekündigt. Diese Feststellung wird oft nach der Freigabe aufgrund von Qualität/Stabilität getroffen.

@blowdart , würde diese Vorlage einen Identitätsserver mit einem Web-App-MVC-Client anstelle einer API bereitstellen?

@Ponant Nein. Es richtet sich nur an APIs. Wir werden das in der 3.x-Timeline neu bewerten.

Interessant... Diese Frage kam gestern in einem Meeting auf. Wenn wir ein vollständiges "MVC"-Projekt ohne die Verwendung der Web-API erstellen, können wir dann das neue ASP.Net 2.2 IS4-Template verwenden, das in 2.2 integriert ist?
Sieht so aus, als hätte der Big Boss (Barry) die Frage gerade beantwortet.

@blowdart allias big boss: Warum geht das nicht auf einen

@Ponant Weil wir keine unendlichen Ressourcen haben. Welche Funktionen hätten wir gerne weggelassen, um alle dazu zu bringen, einen großen Teil des MVC-Flows zu ändern, der keine neuen Funktionen bietet, sondern nur die Funktionsweise eines bestehenden ändert? Eine einzelne authentifizierte API war eine Lücke zwischen dem vollständigen Framework und ASP.NET Core. Der Fokus der Arbeit lag darauf, diese Lücke zu schließen. Identity Server verfügt bereits über funktionierende Vorlagen für MVC mit Identity Server als "Kern".

@CrispinH @blowdart Ich stimme dir - es gibt 7 Uservoice-Tickets, die sich alle über diese Hunderte von Entwicklern und Unternehmen

--> So viele Anfragen nach Benutzer-/Gruppen-/Mandantenverwaltung

image


--> WIEDER beschweren sich hier Leute ... es geht weiter, sogar auf Twitter und Facebook.. das ist der Grund - warum andere Plattformen wie WP und PHP einfacher sind!

image

Obwohl @manigandham der Meinung ist, dass Identitätsserver gut geeignet sind, verlangen sie VIEL für das GUI-Verwaltungstool und es ist für viele Länder und Entwickler nicht billig, aber es geht auch gegen die niedrigen TCO-Entwickler. Wie viele Menschen können sich das wirklich leisten. Es war ein RIESIGES Hindernis und ein Schritt zurück, eine grundlegende Vanilla-Funktionalität und eine GUI zur Verwaltung der Benutzer/Rollen/Rollen-Benutzergruppen/Tenants sind erforderlich , die dann vom Entwickler verbessert werden können

@papyr Warum

@papyr @poke keine Notwendigkeit für ein neues Open-Source-Projekt, es gibt ausgezeichnete bestehende Projekte.

Wenn Sie etwas Open Source von MS wollen, das mit WordPress konkurrieren soll, dann schauen Sie sich Orchard an:
https://github.com/OrchardCMS/OrchardCore

Wenn Sie eher einen Bibliotheksansatz anstelle eines Frameworks wünschen, schauen Sie sich Cloudscribe an, das Nugets für Mandantenfähigkeit und Benutzer- und Rollen- und Anspruchsmanagement-UI enthält, die mit einer optionalen Identityserver4-Integration und optionalem cms (cloudscribe.Simple/content) vorgefertigt sind zusätzliche Nugets.
https://www.cloudscribe.com/docs/introduction
https://github.com/cloudscribe/cloudscribe
https://github.com/cloudscribe/cloudscribe.SimpleContent

Wenn Sie etwas Open Source von MS wollen, das mit WordPress konkurrieren soll, dann schauen Sie sich Orchard an:
https://github.com/OrchardCMS/OrchardCore

Ich unterstütze diese Empfehlung.

Und Orchard Core ist extrem modular aufgebaut. So ist es beispielsweise möglich, nur dessen Multi-Tenancy-Modul zu

Sie können viele Demos der verschiedenen Funktionen auf ihrem Kanal ansehen.

Diese UI-Sache kann knifflig sein, ist aber hilfreich, um schnell grundlegende Dinge zu erhalten. Es scheint, dass ich in letzter Zeit auf Fälle gestoßen bin, dass das Erstellen der Benutzeroberfläche nicht die größte Aufgabe ist, aber herauszufinden, wie die "Prozessanforderungen" erfüllt werden können, z , von denen einige Joins in der Datenbank oder Aufrufe an eine andere Stelle usw. bedeuten können und dann zu Tokens und UI-Logik hinzugefügt werden.

Daher fühlt es sich wichtiger an, gute Tutorials wie https://mcguirev10.com/2018/01/28/login-identity-management-best-practices.html oder https://mcguirev10.com/page2/ zu haben als die Benutzeroberfläche ( vor allem, wenn man EF nicht nutzen kann oder will). Dann suchen Sie vielleicht nach der Benutzeroberfläche für die von Ihnen gewählte Technologie (Aurelia / Angular / Razor / React / Vue usw.) und wie sie eine Datenverarbeitung implementieren.

Bei der Benennung von Projekten und Namen fand ich es neben @scottbrady91 sehr lehrreich , https://github.com/abergs/fido2-net-lib ( @abergs , @aseigler), @TomCJones , @mackie1001 zu überprüfen (Gitter). Ich habe vergessen, einige Namen und Projekte hinzuzufügen. :)

Warum kann .net Core keine normalen Rasierer-Webseiten haben? Wenn ich komplexe Berichte erstelle, mache ich gerne alles von einer einzigen Rasiermesserseite (c#). Oder zumindest die Möglichkeit, zeitweise nur eine Ansicht ohne Modell oder Controller zu verwenden.

Mit anderen Worten, die grundlegende Fähigkeit, sich in der Ansicht mit SQL zu verbinden und GET- und POST-Anfragen zu erhalten, natürlich bereinigt, verwende ich derzeit eine Klasse namens Striptag.cs.

Warum kann .net Core keine normalen Rasierer-Webseiten haben?

Sie können dafür Razor-Seiten verwenden https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-2.1&tabs=visual-studio

Das Vorhandensein einer Modellklasse für die Hintergrundseite ist optional; Sie können nur eine einzige Seite haben

benaadams danke für die Antwort, wie würde ich GET- und POST-Anfragen direkt in einer Rasiererseite verwenden und eine grundlegende Verbindung zum SQL-Server herstellen. Die Verbindung für reguläre Abfragen, nicht für Ado-Entitäten oder linq oder ORM. Ich bevorzuge immer normale Abfragen.

Mögen:

var msql = "SELECT * FROM customerss WHERE lastname LIKE <strong i="7">@0</strong> ORDER BY lastname OFFSET " + thisoffset + " ROWS FETCH NEXT 5 ROWS ONLY";

Ich weiß, dass sich die Verbindungszeichenfolge jetzt in einer JSON-Datei befindet, weiß aber nicht, wie man sie in der Ansicht verwendet. Manche Dinge sind nicht genau dokumentiert.

Nun, es hat eine Lernkurve. Wenn Sie Daten _vor_ dem Laden der View abrufen möchten, tun Sie dies in der entsprechenden Aktion. Also, für HomeController.ViewReports Aktion und Views/Home/ViewReports.cshtml Seite schreiben Sie:

public class HomeController
{
  public ActionResult ViewReports()
  {
    // fetch data from the SQL using...something...
    return View(data);
  }
}

Wenn Sie Daten _nach_ dem Laden der Seite abrufen möchten, verwenden Sie normalerweise AJAX-Anforderungen an einen reinen GET/POST-Endpunkt, der JSON-formatierte Daten zurückgibt.

Kann dies immer noch auf einer Seite ohne Controller oder Aktion tun; etwas wie

<strong i="6">@page</strong>
<strong i="7">@using</strong> System.Data.SqlClient
<strong i="8">@using</strong> Microsoft.AspNetCore.Http
<strong i="9">@using</strong> Microsoft.Extensions.Configuration
<strong i="10">@inject</strong> IConfiguration Configuration

@{
    var lastname = Request.Query["lastname"];
    if (!string.IsNullOrEmpty(lastname))
    {
        var offset = 0;
        var count = 5;
        if (Request.Method == HttpMethods.Post)
        {
            int.TryParse(Request.Form["offset"], out offset);
            int.TryParse(Request.Form["count"], out count);
            count = Math.Min(count, 50);
        }

        var connectionString = Configuration.GetConnectionString("MyConnectionString");
        using (var conn = new SqlConnection(connectionString))
        {
            using (var cmd = new SqlCommand(@"
            SELECT * FROM customers
            WHERE lastname LIKE <strong i="11">@lastname</strong>
            ORDER BY lastname
                OFFSET (@offset) ROWS
                FETCH NEXT (@count) ROWS ONLY"))
            {
                cmd.Parameters.AddWithValue("@lastname", lastname);
                cmd.Parameters.AddWithValue("@offset", offset);
                cmd.Parameters.AddWithValue("@count", count);

                await conn.OpenAsync();
                using (var reader = await cmd.ExecuteReaderAsync())
                {
                    while (await reader.ReadAsync())
                    {
                        <div>@reader["lastname"]</div>
                    }
                }
            }
        }
    }
    else
    {
        <div>Nothing chosen</div>
    }
}

Ich habe mvc asp.net und Webforms und alte Rasiererseiten verwendet, also bin ich nicht neu in diesem Bereich. Ich habe 3 Stunden damit verbracht und kann immer noch keine einfache Test-Rasiererseite zum Laufen bringen. Ich habe:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <form id="petform" method="post" action="pets/razdb3">
        <input type="text" name="psearch" id="psearch" />
        <input type="submit" />
    </form>

</body>
</html>

Nur eine HTML-Seite und lädt.

Modell

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace petnewtry.Pages.pets
{
    public class razdb3Model : PageModel
    {
        public string myvar { get; set; }

        public void OnGet()
        {

        }

        public void OnPost()
        {
            myvar = Request.Form["psearch"];
        }
    }
}

Sicht:

<strong i="13">@page</strong>
<strong i="14">@model</strong> petnewtry.Pages.pets.razdb3Model
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>razdb3</title>
</head>
<body>
    <div>@Model.myvar</div>
    <div>hello</div>
</body>
</html>

3 Stunden und alles was ich bekomme ist eine leere Seite. Ich habe es mit einer Rückgabeanweisung versucht usw.

Wenn ich nur http://localhost :51307/pets/razdb3 eingebe, bekomme ich die zweite Division "Hallo", aber
beim @Model.myvar bekomme ich nichts.

Ich bin neu bei .net Core und hätte mir nie vorstellen können, dass es so schwer sein würde oder könnte, einfach eine Rasiermesserseite anzuzeigen.

In der VS-Community 2017

beim @Model.myvar bekomme ich nichts.

Sie setzen den myvar für eine Post-Anfrage ( OnPost ) mit dem Formularwert psearch ; Sie müssten also eine POST-Anfrage mit diesem Wert stellen, um ihn festzulegen?

In der GET-Anfrage ( OnGet ), die Sie erhalten, wenn Sie nur vom Browser zur URL navigieren; Anstelle eines Formular-Postbacks wird nichts festgelegt.

Versuchen Sie, es auf einen Standardwert einzustellen, damit es angezeigt wird, wenn Sie es nicht festlegen, um zu bestätigen, dass das Modell durchläuft:

public string myvar { get; set; } = "Not Set";

Gewechselt zu

public string myvar { get; set; } = "Not Set";

Und immer noch eine leere Seite. Ist @Model.myvar richtig?

sogar geändert zu

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace petnewtry.Pages.pets
{
    public class razdb3Model : PageModel
    {
        [BindProperty]
        public string psearch { get; set; }

        public void OnGet()
        {

        }

        public void OnPost(string psearch)
        {
            psearch = Request.Form["psearch"];
        }
    }
}
<strong i="12">@page</strong>
<strong i="13">@model</strong> petnewtry.Pages.pets.razdb3Model
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>razdb3</title>
</head>
<body>
    <div>@Model.psearch</div >
        <div>hello</div>
</body>
</html>

Es baut sich gut auf, kein Fehler, aber eine leere Seite, egal was ich versuche.

Höflicher Kommentar/Gedanken: Ich habe das Gefühl, dass diese Diskussion auf "normalen Rasiermesserseiten" in Bezug auf das Thema dieses Threads etwas vom Thema abweicht.

😊 😊

Sorry, mir ist klar, dass ich das Forum hätte benutzen sollen. Danke @benaadams, dein Code hat mich auf den richtigen Weg gebracht und ich habe das gefunden:

https://www.c-sharpcorner.com/article/razor-page-web-application-with-asp-net-core-using-ado-net/

So habe ich normalerweise sowieso Sachen gemacht, mit dem "neuen" Schlüsselwort, wie

EmployeeDataAccessLayer objemployee = new EmployeeDataAccessLayer();

Es war beruhigend zu sehen, dass Sie immer noch benutzerdefinierte Klassen in .net Core verwenden können.

Sie müssen zugeben, dass .net Core eine steilere Lernkurve hat als einige frühere asp.net-Frameworks. Vielen Dank.

Die Release Notes sprechen von einem "Authorization Server" Feature, das in den kommenden Monaten als Add-On erwartet wird. Gibt es weitere Informationen zu dieser Funktion? Ich versuche zu entscheiden, ob wir darauf warten sollen. Oder bauen Sie unsere eigene Lösung.

Die Release Notes sprechen von einem "Authorization Server" Feature, das in den kommenden Monaten als Add-On erwartet wird. Gibt es weitere Informationen zu dieser Funktion? Ich versuche zu entscheiden, ob wir darauf warten sollen. Oder bauen Sie unsere eigene Lösung.

Ich denke, der aktuelle Plan sieht vor, https://github.com/IdentityServer/IdentityServer4 "vorgefertigt" zu verwenden.

Den Notizen des IS4-Teams und des MS-Sicherheitsteams folgend, schien es, als würde MS einfach versuchen, IS4 schnell und schmutzig zu verpacken und es an den Tag zu legen. Aber sieht aus wie jemand mit mehr Weisheit, der beschlossen hat, sich zurückzuhalten und es richtig zu machen, da Sicherheit Wellen schlagen kann, wenn sie nicht richtig gemacht wird.

Ich hoffe, dass eine vollständige Integration zwischen IS4 und ASP erfolgt, um BEIDE Web-API und MVC zu unterstützen.

Heutzutage ist eine Authentifizierung/Autorisierung in Industriequalität als absolutes Minimum erforderlich. Open Source (OSS) ist für die meisten Dinge in Ordnung, aber es gab ernsthafte Bedenken bei einigen OSS-Sicherheitsprodukten, die auf keiner Unternehmenswebsite akzeptabel sind. 85 % der Projekte verwenden veraltete Bibliotheken, die ein inakzeptables Sicherheitsrisiko darstellen. Beispielsweise verwenden 45 % der Webserver Apache (https://www.cvedetails.com/vendor/45/Apache.html), der weitaus mehr Schwachstellen aufweist als IIS (https://www.cvedetails.com/product/3436/). Microsoft-IIS.html?vendor_id=26). Produkte wie Identity Server können in Ordnung sein, aber Entwickleroptimierungen können sie völlig unsicher machen. Wir brauchen eine in Net Core integrierte Lösung, die immer sicher ist...

Heutzutage ist eine Authentifizierung/Autorisierung in Industriequalität als absolutes Minimum erforderlich. Open Source (OSS) ist für die meisten Dinge in Ordnung, aber es gab ernsthafte Bedenken bei einigen OSS-Sicherheitsprodukten, die auf keiner Unternehmenswebsite akzeptabel sind. 85 % der Projekte verwenden veraltete Bibliotheken, die ein inakzeptables Sicherheitsrisiko darstellen. Beispielsweise verwenden 45 % der Webserver Apache (https://www.cvedetails.com/vendor/45/Apache.html), der weitaus mehr Schwachstellen aufweist als IIS (https://www.cvedetails.com/product/3436/). Microsoft-IIS.html?vendor_id=26). Produkte wie Identity Server können in Ordnung sein, aber Entwickleroptimierungen können sie völlig unsicher machen. Wir brauchen eine in Net Core integrierte Lösung, die immer sicher ist...

Dein Punkt ist absolut richtig. Aber in einigen Videos hatten MS-Mitarbeiter gesagt, dass sie die [Sicherheits-]Räder nicht neu erfinden und ein [IS4]-System von Drittanbietern verwenden würden. Ich hoffe also, dass dies eine Win-Win-Situation für uns alle wird.

Heutzutage ist eine Authentifizierung/Autorisierung in Industriequalität als absolutes Minimum erforderlich. Open Source (OSS) ist für die meisten Dinge in Ordnung, aber es gab ernsthafte Bedenken bei einigen OSS-Sicherheitsprodukten, die auf keiner Unternehmenswebsite akzeptabel sind. 85 % der Projekte verwenden veraltete Bibliotheken, die ein inakzeptables Sicherheitsrisiko darstellen. Beispielsweise verwenden 45 % der Webserver Apache (https://www.cvedetails.com/vendor/45/Apache.html), der weitaus mehr Schwachstellen aufweist als IIS (https://www.cvedetails.com/product/3436/). Microsoft-IIS.html?vendor_id=26). Produkte wie Identity Server können in Ordnung sein, aber Entwickleroptimierungen können sie völlig unsicher machen. Wir brauchen eine in Net Core integrierte Lösung, die immer sicher ist...

Nichts ist "immer sicher", schon gar nicht etwas von Microsoft ;)
Es liegt immer in der Hand des Benutzers dieser Dinge, sie herzustellen und sicher aufzubewahren.

IdentityServer wird in den neuen Templates enthalten sein, die nach 2.2 versendet werden. Der Fokus wird zunächst auf der API-Zugriffskontrolle liegen – es ist jedoch geplant, dies in Zukunft zu erweitern.

ASP.NET Core wird mit einer vereinfachten Konfigurations-API geliefert, die nur die Vorlagenszenarien abdeckt – aber der Einstieg sehr einfach ist. Sie können jederzeit zum systemeigenen IS-Konfigurationssystem wechseln, das Ihnen erweiterte Szenarien bietet.

IdentityServer wird in den neuen Templates enthalten sein, die nach 2.2 versendet werden. Der Fokus wird zunächst auf der API-Zugriffskontrolle liegen – es ist jedoch geplant, dies in Zukunft zu erweitern.

ASP.NET Core wird mit einer vereinfachten Konfigurations-API geliefert, die nur die Vorlagenszenarien abdeckt – aber der Einstieg sehr einfach ist. Sie können jederzeit zum systemeigenen IS-Konfigurationssystem wechseln, das Ihnen erweiterte Szenarien bietet.

Danke für die Informationen Dominick;
Ich denke, dieses "Sprungbrett" wird vielen helfen, anzufangen und dann zum vollständigen IS überzugehen. Guter Zug.

IdentityServer wird in den neuen Templates enthalten sein, die nach 2.2 versendet werden. Der Fokus wird zunächst auf der API-Zugriffskontrolle liegen – es ist jedoch geplant, dies in Zukunft zu erweitern.

ASP.NET Core wird mit einer vereinfachten Konfigurations-API geliefert, die nur die Vorlagenszenarien abdeckt – aber der Einstieg sehr einfach ist. Sie können jederzeit zum systemeigenen IS-Konfigurationssystem wechseln, das Ihnen erweiterte Szenarien bietet.

Gut zu wissen! Dankeschön.

Ich denke, diese API-Zugriffskontrolle basiert auf OAuth-Bereichen?
Keine direkte Unterstützung für volatilere Benutzerberechtigungen wie bei policyserver.io beschrieben?

IdentityServer wird in den neuen Templates enthalten sein, die nach 2.2 versendet werden. Der Fokus wird zunächst auf der API-Zugriffskontrolle liegen – es ist jedoch geplant, dies in Zukunft zu erweitern.
ASP.NET Core wird mit einer vereinfachten Konfigurations-API geliefert, die nur die Vorlagenszenarien abdeckt – aber der Einstieg sehr einfach ist. Sie können jederzeit zum systemeigenen IS-Konfigurationssystem wechseln, das Ihnen erweiterte Szenarien bietet.

Gut zu wissen! Dankeschön.

Ich denke, diese API-Zugriffskontrolle basiert auf OAuth-Bereichen?
Keine direkte Unterstützung für volatilere Benutzerberechtigungen wie bei policyserver.io beschrieben?

PolicyServer ist eine kommerzielle Lösung

Ich denke, diese API-Zugriffskontrolle basiert auf OAuth-Bereichen?
Keine direkte Unterstützung für volatilere Benutzerberechtigungen wie bei policyserver.io beschrieben?

"Nur" IdentityServer. ASP.NET Core verfügt über eine integrierte API für die Benutzerautorisierung – und wenn PolicyServer (das Produkt) für Sie interessant erscheint, lassen Sie es mich wissen.

Schließen dieses Problems, da ASP.NET Core 2.2 ausgeliefert wurde.

sollte dies nicht auf ASP 3.0 aktualisiert werden

Gibt es ein Update, wann die Erweiterungen des Autorisierungsservers ausgeliefert werden?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen